ES6注意事项

箭头函数注意事项
  1. 函数体内的this是指定义时所在的对象,而不是使用时所在的对象
  2. 不可用作构造函数,即不能使用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);
}
  1. 可以用rest参数代替argumens对象。
  2. 不可以使用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];
 
posted @ 2022-07-18 14:09  Arica-ss  阅读(39)  评论(0)    收藏  举报