箭头函数
简化了函数定义的语法结构
let fn3 = (a,b) => {
return a + b
}
this指向
箭头函数中 this 指向
let f1 = () => {
console.log(this); //window
}
f1();
一般我们定义对象的方法,不适用箭头函数,由于我们更希望对象的方法内部this指向该对象本
身。
(1) ES5中,函数内部this指向谁,就看函数是被谁调用的。
(2) ES5严格模式下,普通函数内部this指向 undefined。
(3) ES6的箭头函数中,通过判断箭头函数所在作用域中的this,来确定箭头函数中的this 指向。
解构赋值
let people = { name: jon ,age:18,
other:{ a:10, b:20 },
hobbies:[{x:11,y:22}]
}
直接从people对象中,解构出 name属性 和 age属性。解构的变量名必须和对象的属性名保持一
致。
let {name,age} = people; console.log(name,age);
如果需要重新给变量命名,以下边的语法格式为准:
let {name:newName,age:newAge} = people;
console.log(newName,newAge);
数组解构
let arr = [ a ,true,{m:10,n:20},1];
let [name1,sex,num1,num2] = arr;
console.log(name1,sex,num1,num2);
立即执行函数(function(){ })()
封装函数。是为了复用,但是立即执行的函数并不能复用,他只能使用一次,立即执行函数
的意义,是为了隔离作用域,构建私有变量,防止污染全局命名空间,他弥补了js在作用域方面的
缺陷,即ES6之前,js只存在全局作用域和函数作用域


