变量
var
1.作用域:全局作用域,函数作用域
2.可以重复声明
3.不能定义常量
let
1.作用域:块级作用域
2.不可以重复声明
3.不能定义常量
4.不会提前声明
const
1.定义常量
2.不能修改常量,如果他的值是一个引用类型的话,可以修改引用对象的属性
解构解析
1.分解一个对象结构
let arr = [1,2,3]
let [a,b,c] = arr
console.log(a,b,c) //1,2,3
let arr2 = [{name:'zfpx',age:9},[1,2],3]
let [{name,age},[d,e],f] = arr2
let [json,arr3,f] = arr2
//省略赋值
let [,,z] = arr2
解构的时候,“=”两边类型相似,右边必须是一个真实的值
模板字符串
模板字符串可以折行 换行
let users = [{id:1,name:'zfpx1'},{id:2,name:'zfpx2'}];
映射,把老数组里的每一个元素映射为新数组的每一个元素
let newLis = users.map(function(user,index){
return `<li>${user.id}:${user.name}</li>`;
}).join('');
let ul = (
`
<ul>
${newLis}
</ul>
`
);
startsWith(),endsWith()
startsWith(xx):以“xx”为开始
endsWith(xx):以“XX”为结尾
let address1 = 'http://www.baidu.com';
let address2 = 'ftp://www.baidu.com';
if(address1.startsWith('http')){
console.log('http网址');
}else if(address2.startsWith('ftp')){
console.log('ftp服务器');
}
let filename = 'avatar.jpg';
if(filename.endsWith('jpg')||filename.endsWith('png')){
console.log('是一张图片');
}
判断一个字符串是否包含另一个字符串
let content = 'abc';
content.includes('b')
content.indexOf('b') !=-1
将一个字符串重复n次
let x = 'xx';
console.log(x.repeat(3));