zoukankan      html  css  js  c++  java
  • ES6(二) let const

    一:let

    1.块级作用域

       外层作用域无法读取内层作用域的变量。

    2.不存在变量提升

    3.TDZ:暂时性死区

       “暂时性死区”也意味着typeof不再是一个百分之百安全的操作。

        这样的设计是为了让大家养成良好的编程习惯,变量一定要在声明之后使用,否则就报错。

        变量没声明和声明不赋值,返回的都是undefined。

        总之,暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。

    4.不允许重复声明

    5.js的作用域:   块级作用域         函数作用域     全局作用域 

       为什么需要块级作用域呢? 

       答:两种不合理的场景       1.内层变量可能会覆盖外层变量。     2.用来计数的循环变量泄露为全局变量。   

    二:const

    1.声明的值不可以改变。   初始化必须赋值。

    2.类似于java的final关键字        对于引用数据类型,是引用地址不可变,但引用指向对象是可以变的。

    三:补充

    1.ES6的变量声明:var  function     let   const    import    class

    2.ES5之中,顶层对象的属性全局变量是等价的。    顶层对象的属性与全局变量挂钩,被认为是JavaScript语言最大的设计败笔之一

    思考:

    1.块级作用域的出现,实际上使得获得广泛应用的立即执行函数表达式(IIFE)不再必要了。

  • 相关阅读:
    83. Remove Duplicates from Sorted List
    141. Linked List Cycle
    hdu1028 划分数
    XDU1019 阶乘因子的个数
    poj2773 容斥原理
    poj1091 容斥原理的应用
    poj1173 多重集组合数
    HDU 1465 错排问题
    poj 1496
    复习之求一个数的约束之积模一个质数
  • 原文地址:https://www.cnblogs.com/njqa/p/7363036.html
Copyright © 2011-2022 走看看