ES6学习记录

 

1.var 和 let  const的区别:

    var:声明会成为全局作用域或函数作用域头部,并且会存在变量提升现象,即先使用后声明,值为undefined;

    let:声明仅在块级作用域内部有效,在一个作用域内仅能声明一次相同的参数,不存在变量提升的现象,在声明之前使用都是暂时性死区范围,typeof运算符使用会报错抛出一个ReferenceError。在ES5中规定块级作用域不能声明函数,但是浏览器厂商没有遵守,到了ES6明确规定了块级作用域可以声明函数,但是不可在作用域之外被调用。

  const:设置一个静态的常量,这个常量为只读模式,重新定义const所声明的参数会引起报错,并且const声明的时候就要初始化赋值不然也会报错。const也是块级作用域,不存在变量提升,不能在块级作用域之外引用。

2. [...]运算符

2.1:函数的调用:(...function)的方式,运算符将一个数组,变为参数序列;和函数结合使用:var args = [0, 1],f(-1, ...args, 2, ...[3]);

2.2:数组合并:newArr = [20,...arr1,...arr2]; ,此举会将运算符后的数组合并成一个新的数组返回。

2.3:代替apply方法:  ES5 的写法: function f(x, y, z) { // ... }

var args = [0, 1, 2];

f.apply(null, args);

/ES6 的写法:

function f(x, y, z) { // ... }

var args = [0, 1, 2];

f(...args);

2.4:求最大值Math.max()

Math.max(...[14, 3, 77])

 2.5:通过push函数,将一个数组添加到另一个数组的尾部 

arr1.push(...arr2);   

2.6:新建Date类型

new Date(...[2015, 1, 1]);  

2.7:将字符串转为真正的数组

[...'hello']  

3.变量的解构赋值

ES5为变量赋值只能进行对应单一变量赋值,let x = 1;而ES6可以进行模式匹配进行赋值,赋值号两边只要相等,左边的变量就会被赋予对应的值,

完全解构即变量左边变量与右边值进行对应变量的解构,而解构匹配不成功,即为解构失败,值为undefined;

还有一种情况为不完全解构,即等号左边的模式,只匹配一部分的等号右边的数组,但是必须保证右边的值必须是可遍历结构,并且所匹配值是大于当前左边变量的个数;

解构赋值默认值:就是初始状态下左边变量可以设置默认值,但是这个默认值要在右边为undefined的时候才会生效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值