var、let、const
-
var是函数级作用域,let是块级作用域 -
let不允许在相同作用域内,重复声明同一个变量: -
const声明一个只读的常量,且声明后,常量的值是不能改变的 -
const命令声明的常量也是不提升,只能在声明的位置后面使用。 -
const与let一样不可重复声明 -
复合类型的变量,变量名不指向数据,它是指向数据所在的地址,
const只保证变量名指向的地址是不变的,并不能保证它地址的数据是不变的,所以将一个对象声明为常量必须非常小心.const n = {};   n.prop = aaa;   console.log(n.prop); // aaa   n = {}; // 报错
解构赋值
-
数组解构
-
数组的拼接
// 数组的拼接 let a = [0,1,2] let b = [3,4,5] let c = a.concat(b) console.log(c) // [0,1,2,3,4,5] let d = [...a,...b] console.log(d) // [0,1,2,3,4,5] -
数组的克隆
let a = [0,1,2,3] let b = [...a] b.push(4) console.log(a) // [0,1,2,3] console.log(b) // [0,1,2,3,4]
-
-
拓展运算符
// 使用扩展运算符 let name = { name:"zcf" } let age = { age:28 } let person = {...name,...age} console.log(person) // { name: 'zcf', age: 28 }0相当于
let name = { name:"zcf" } let age = { age:28 } let person = {} Object.assign(person,name,age) console.log(person) // { name: 'zcf', age: 28 }
箭头函数中的this
-
箭头函数没有自己的this, 它的this是继承而来;
-
默认指向在定义它时所处的对象(宿主对象),而不是执行时的对象,
-
定义它的时候,可能环境是window;
-
箭头函数可以方便地让我们在 setTimeout ,setInterval中方便的使用this
总而言之,由于箭头函数不绑定this, 它会捕获其所在(即定义的位置)上下文的this值, 作为自己的this值