ES6注意事项
箭头函数注意事项
- 函数体内的this是指定义时所在的对象,而不是使用时所在的对象
- 不可用作构造函数,即不能使用new命令。
原因:箭头函数本身没有this对象,除此之外arguments、super和new targrt也不能使用
<!--ES6的箭头函数-->
function foo(){
setTime(()=>{
console.log('id',this.id);
},100);
}
<!--箭头函数转换为ES5的语法如下-->
function foo(){
var _this = this;
setTime(function(){
console.log('id',_this.id);
},100);
}
- 可以用rest参数代替argumens对象。
- 不可以使用yield对象。即不用用作Generator函数
Symbol
- Symbol类型的数据可以避免属性名重复,确保每个属性名都是独一无二的。但Symbol值是一种基本数据类型,不可以用new方法,即不能创造对象。
- Symbol值作为属性名时,该属性仍是公开属性,不是私有属性。
- 可以用来消除代码中的“魔术字符串”,便于后期的修改和维护。
魔术字符串:即代码中多次出现的一个具体字符串或数字,与代码形成强耦合,不便于代码后期的修改和维护。解决方法通常是把代码中所有此类数据都写为变量,集中管理。
let s = Symbol()
数组对变量赋值时,优先使用解构赋值。
//数组
const arr = [1,2,3,4,5,6,7];
const [first,second] = arr; //first:1 second:2
//对象
const person = {name:'Jay',age:19,number:68};
const {name,age} = person; //name:Jay age:19
使用 Array.from 方法,将类似数组的对象转为数组。
let arrayLike = {
0: 'tom',
1: '65',
2: '男',
3: ['jane','john','Mary'],
'length': 4
}
const arr = Array.from(arrayLike);
使用扩展运算符(...)拷贝数组。
const arr = [1,2,3,4,5,6,7]; const arr1 = [...arr];

浙公网安备 33010602011771号