14.1 includes()
console.log('abc'.includes('a'));
console.log('abc'.includes('ab'));
console.log('abc'.includes('bc'));
console.log('abc'.includes('ac'));
console.log('abc'.includes('a'));
console.log('abc'.includes('a',0));
console.log('abc'.includes('a',1));
let url = 'https://www.imooc.com/course/list?';
const addURLParam = (url,name,value)=>{
url += url.includes('?')?'&':'?';
url += `${name}=${value}`;
return url;
};
url = addURLParam(url,'c','fe');
console.log(url);
url = addURLParam(url,'sort','pop');
console.log(url);
14.2 padStart()和padEnd()
console.log('x'.padStart(5,'ab'))
console.log('x'.padEnd(5,'ab'));
console.log('xxx'.padStart(2,'ab'));
console.log('abc'.padStart(10,'0123456789'));
console.log('abc'.padEnd(10,'0123456789'));
console.log('x'.padStart(4));
console.log('x'.padEnd(4));
console.log('10'.padStart(2,0));
console.log('1'.padStart(2,0));
14.3 trimStart()和trimEnd()
<input type="text" id="username">
<input type="submit" value="提交" id="btn">
// 清除字符串的首或尾空格,中间的空格不会清除
// 基本用法
const s = ' a b c ';
console.log(s);
console.log(s.trimStart());
console.log(s.trimEnd());
console.log(s.trim()); // 首尾空格一起去除
const usernameInput = document.getElementById('username');
const btn = document.getElementById('btn');
btn.addEventListener('click',()=>{
console.log(usernameInput.value);
// 验证
// console.log(usernameInput.value.trim());
if(usernameInput.value.trim()!==""){
// 可以提交
console.log('可以提交');
}else{
// 不能提交
console.log('不能提交');
}
// 手动提交
})
15.1 includes()
console.log([1,2,3].includes('2'));
console.log([1,2,3].includes(2));
console.log([1,2,3].includes(2,2));
console.log(NaN === NaN);
console.log([1,2,NaN].includes(NaN));
const arr = [];
for(const item of [1,2,1]){
if(!arr.includes(item)){
arr.push(item);
}
}
console.log(arr);
15.2 Array.from()
console.log(Array.from('str'));
console.log(Array.from(new Set([1,2,1])));
const obj = {
'0':'a',
'1':'b',
'2':'c',
name:'alex',
length:3
}
console.log(Array.from(obj));
console.log(
[1,2].map(value=>{
return value * 2;
})
);
console.log(Array.from('12',value=>value * 2));
console.log(Array.from('12').map(value=>value*2));
Array.from(
'12',
value => {
console.log(this);
},
document
);
Array.from(
'1,2',
function(){
console.log(this);
},
document
)
15.3 find()和findIndex()
console.log(
[1, 5, 10, 15].find((value, index, arr) => {
return value > 9
})
);
console.log(
[1, 5, 10, 15].findIndex((value, index, arr) => {
return value > 9
})
);
const students = [
{
name:'张三',
sex:'男',
age:16
},
{
name:'李四',
sex:'女',
age:22
},
{
name:'王二麻子',
sex:'男',
age:32
}
]
console.log(students.find((value=>value.sex==='女')));
console.log(students.findIndex((value=>value.sex==='女')));
16.1 Object.assign()
const apple = {
color:'红色',
shape:'圆形',
taste:'甜'
};
const pen = {
color:'黑色',
shape:'圆柱形',
use:'写字'
}
console.log(Object.assign(apple,pen));
Object.assign直接合并到了第一个参数中,返回的就是合并后的对象
console.log(Object.assign({},apple,pen));
console.log(apple);
const apple = {
color:['红色','黄色'],
shape:'圆形',
taste:'甜'
};
const pen = {
color:['黑色','银色'],
shape:'圆柱形',
use:'写字'
}
console.log(Object.assign({},apple,pen));
const logUser=userOptions => {
const DEFAULTS = {
username:'ZhangSan',
age:0,
sex:'male'
}
const options = Object.assign({},DEFAULTS,userOptions);
console.log(options);
}
logUser({username:'alex'})
16.2 Object.keys()、Object.values()、Object.entries()
const person = {
name:'alex',
age:18
}
console.log(Object.keys(person));
console.log(Object.values(person));
console.log(Object.entries(person));
console.log([1,2].keys());
console.log([1,2].values());
console.log([1,2].entries());
const persons = {
name:'alex',
age:18
}
for(const key of Object.keys(person)){
console.log(key);
}
for(const values of Object.values(person)){
console.log(values);
}
for(const entries of Object.entries(person)){
console.log(entries);
}
for(const [key,value] of Object.entries(person)){
console.log(key,value);
}