美文网首页
ES6的常量、作用域、箭头函数简单介绍

ES6的常量、作用域、箭头函数简单介绍

作者: 顾落痕 | 来源:发表于2018-07-24 09:26 被阅读0次

    1、常量

        定义一个常量(不变化的量)

        ES5 常量定义一个常量

    Object.defineProperty(window,"PI",{

        value : 3.1415926,

        writable : false,

    })

        ES6 常量定义一个常量

    const PI = 3.1415926 ;

        假若代码中有很多地方需要声明常量,通过ES6的方式实现还是比较方便的。

    2、作用域

            变量的作用域无非就是两种:全局变量和局部变量。 

                全局作用域: 最外层函数定义的变量拥有全局作用域,即对任何内部函数来说,都是可以访问的

                局部作用域: 和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,而对于函数外部是无法访问的,最常见的例如函数内部

    ES5-作用域 ES5-作用域输出结果

     原因:var 定义的变量 i 在for 循环中存在变量的提升 而且循环内是一个闭包函数(最后执行)闭包内并没有声明内部的 i 变量,因此 i 变量从for 循环内声明的全局变量中取得,从全局变量中取得时的 i 是最终计算量。循环结束后 i = 3 执行闭包函数输出都是6

    在ES6 新增一个定义变量声明 let  块级作用域   声明的变量每次变化时,会新增不同的作用域块,分开执行代码

    ES6-作用域 ES6-作用域输出结果

    使用let声明变量,变量发生变化时,会新增不同的作用域,再通过不同作用域执行闭包函数,输出不同的值。

    3、箭头函数 =>

            var fun = function(){ ... }

            箭头函数:  () => { 函数体 }

                   (参数) => { 函数体 }   如果参数只有一个  小括号可以省略

            例如: var fun = (a) => { return a+2; }

                  函数调用: fun(20);

    这样写的好处

    1、在写法上更加方便,省去了书写function,比较简单

    2、会改变箭头函数内部this的指向,指向的是定义时绑定的this指向(就是this是继承自父执行上下文)

    相关文章

      网友评论

          本文标题:ES6的常量、作用域、箭头函数简单介绍

          本文链接:https://www.haomeiwen.com/subject/fcxcxftx.html