一、let命令

1.具体操作

用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

上面代码在代码块之中,分别用letvar声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错

var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。

for循环的计数器,就很合适使用let命令。

计数器i只在for循环体内有效,在循环体外引用就会报错。

结果如下:

下面的代码如果使用var,最后输出的是10

 

结果如下:

如果使用let,申明的变量在块级作用域内有效,结果为6,原因是量ilet声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,

所以最后输出的是6

2.不存在变量提升

var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。

为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。

二、变量的解构

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。

假如用let申明a,b,c,d四个变量,其中d为列表。本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值

示例一

 let [a,b,c,[d]] = [89,90,99,100];
        console.log(a);
        console.log(c);
        console.log(d);

执行结果会报错,如下:

报错原因:没有解构成功,如果等号的右边不是数组(或者严格地说,不是可遍历的结构),那么将会报错。

三、函数的扩展

四、数组的扩展

1)判断数组当中是否存在某个数值

console.log(arr.indexOf(1000))
        console.log(arr.includes(201))

2)对数组的遍历

arr.forEach(function (value,index) {
            console.log(value);
        })

        var arr2 = arr.map(function (value,index) {
            return value+1
        })

3)对数组的过滤  

 var arr4 = arr.filter(function (value,index) {
            return value > 50
        })
        console.log(arr4);  

五、对象的扩展

(1)对象当中的属性可以简写

(2)对象当中的方法可以简写

 

posted on 2018-01-26 22:28  Sober--  阅读(134)  评论(0编辑  收藏  举报