1. 解构
- null和undefined 区别
let [a,b="world"]=['hello',undefined];
console.log(a+b); //控制台显示“helloworld”
此时undefined被认为是空,因此b在打印时则使用默认值world。
let [a,b="world"]=['hello',null];
console.log(a+b); //控制台显示“hellonull”
此时,null被认为是一个值,因此b则打印出null。
- 解构之前就定义了变量
let a;
{a} ={a:'hello'};
console.log(a);//控制台报错 Unexpected token '='
let a;
({a} ={a:'hello'});
console.log(a); //控制台输出hello
2. 单引号压缩后程序运行更快
3. for of 比 for(var i=0;i<a;i++) 效率高
4. 字符串模版(`${}`)支持空格和html标签集及运算
5. Symbol是对对象元素的保护,不让别人知道属性名
- 无保护形式
var obj={name:'wang',skill:'web',age:18};
for (let item in obj){
console.log(obj[item]);//"wang" "web" "18"
}
- 保护形式
let obj={name:'wang',skill:'web'};
let age=Symbol();
obj[age]=18;
for (let item in obj){
console.log(obj[item]);//"wang" "web"
}
console.log(obj);//{name: "wang", skill: "web", Symbol(): 18}
6. 箭头函数
箭头后超过两句话要用{}
{return a+b}<=>a+b/(a+b)
7. 箭头函数
===为同值相等,is()为严格相等
console.log(+0 === -0); //true
console.log(NaN === NaN ); //false
console.log(Object.is(+0,-0)); //false
console.log(Object.is(NaN,NaN)); //true
参考:技术胖https://www.jspang.com/detailed?id=40#toc27