美文网首页
ES6--(1)块级绑定

ES6--(1)块级绑定

作者: wangxia34 | 来源:发表于2018-04-04 13:35 被阅读0次

var 声明与变量提升

块级声明

    块级声明也就是让所声明的变量在指定块的作用域外无法被访问。

        1. 在一个函数内部

        2. 在一个代码块(由一对花括号包裹)

    let 声明

        let 声明的语法与 var 的语法一致。但会将变量的作用域限制在当前代码块中。由于 let 声明并不会被提升到当前代码块的顶部,因此需要手动将 let 声明放置到顶部,以便让变量在整个代码块内部可用。

    禁止重复声明

        如果一个标识符已经在代码块内部被定义,那么在此代码块内使用同一个标识符进行 let 声明就会导致抛出错误。

    常量声明

        在 ES6 中里也可以使用 const 语法进行声明。使用 const 声明的变量会被认为是常量(constant ),意味着它们的值在被设置完成后就不能再被改变。正因为如此,所有的 const变量都需要在声明时进行初始化。

对比常量声明与 let 声明: 常量声明与 let 声明一样,都是块级声明。这意味着常量在声明它们的语句块外部是无法访问的,并且声明也不会被提升。

使用 const 声明对象: const 声明会阻止对于变量绑定与变量自身值的修改,这意味着 const 声明并不会阻止对变量成员的修改。

    暂时性死区

        暂时性死区( temporal dead zone , TDZ )。该名称并未在 ECMAScript 规范中被明确命名,但经常被用于描述 let 或 const 声明的变量在声明处之前无法被访问的原因。

        当 JS 引擎检视接下来的代码块并发现变量声明时,它会在面对 var 的情况下将声明提升到函数或全局作用域的顶部,而面对 let 或 const 时会将声明放在暂时性死区内。任何在暂时性死区内访问变量的企图都会导致“运行时”错误(runtime error)。只有执行到变量的声明语句时,该变量才会从暂时性死区内被移除并可以安全使用。

循环中的块级绑定

    开发者最需要使用变量的块级作用域的场景,或许就是在 for 循环内,也就是想让一次性的循环计数器仅能在循环内部使用。

    循环内的函数

    循环内的 let 声明

    循环内的常量声明

    全局块级绑定

        let 与 const 不同于 var 的另一个方面是在全局作用域上的表现。当在全局作用域上使用 var 时,它会创建一个新的全局变量,并成为全局对象(在浏览器中是 window )的一个属性。然而若你在全局作用域上使用 let 或 const ,虽然在全局作用域上会创建新的绑定,但不会有任何属性被添加到全局对象上。这也就意味着你不能使用 let 或 const 来覆盖一个全局变量,你只能将其屏蔽。

    块级绑定新的最佳实践

        在默认情况下使用 const ,而只在你知道变量值需要被更改的情况下才使用 let 。这在代码中能确保基本层次的不可变性,有助于防止某些类型的错误。

相关文章

  • ES6--(1)块级绑定

    var 声明与变量提升 块级声明 块级声明也就是让所声明的变量在指定块的作用域外无法被访问。 1. 在一个函数内部...

  • ES6 学习心得 --- 块级绑定

    块级绑定:变量在块级作用域中的声明绑定形式。 块级绑定新的最佳实践 总结:默认情况下使用 const 、并且只在...

  • 块级绑定

    因为ES6之前存在变量提升问题,容易造成问题,ES6引入了块级作用域。 块级声明 块级作用域在函数或者块({})中...

  • 块级绑定

    块级绑定 let 声明 var 声明变量存在变量提升。 let 声明的语法与var的语法一致。 let声明会将变量...

  • 块级绑定

    使用 var 声明的变量,会提升到当前作用域的最顶部或者是全局作用域,叫做变量提升 Hoisting 。 变量没声...

  • 一、块级绑定

    ES2015 一、块级绑定 1、let、const和块级作用域 var 变量提升(hoisting )   使用v...

  • 深入理解ES6(2)

    第1章 块级作用域绑定 1. var声明及变量提升(Hoisting)机制 基于js原生是没有块级作用域的,看下面...

  • 1.块级作用域绑定

    本章涉及3个知识点,var、let、const,现在让我们了解3个关键字的特性和使用方法。 var JavaScr...

  • 块级作用域绑定

    var声明及变量提升(Hoisting)机制 在函数作用域或全局作用域中通过关键字var声明的变量,无论实际上是在...

  • 块级作用域绑定

    在函数作用域或全局作用域中通过关键字var声明变量,但是无论在哪里声明,都会被当成在当前作用域顶部声明的变量,这就...

网友评论

      本文标题:ES6--(1)块级绑定

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