zoukankan      html  css  js  c++  java
  • let 及const

    ES5中的块级作用域

    ES5中只有全局作用域和函数作用域,这样带来了很多的不便利,会出现内层变量被外层变量覆盖,循环体中的变量会暴露在全局,很多情况下需要自执行函数来私有化变量。

    ES6块级的作用域

    ES6中let为JavaScript提供了块级的作用域

    1. ES6 允许块级作用域的任意嵌套
    2. 外层作用域无法读取内层作用域的变量
    3. 外层代码块不受内层代码块的影响
    4. 内层作用域可以定义外层作用域的同名变量

    虽然添加了块级的作用域但是变量仍然会按照作用域链进行查找

    函数作用域和块级作用域

    函数能不能在块级作用域之中声明?这是一个相当令人混淆的问题。

    ES5中规定 函数只能顶层作用域和函数作用域中声明,但是实际上各个浏览器并没有按照这个规范来实行

    ES6中规定块级作用域,并且明确的规定了函数可以在块级作用域中声明。

    let 用法

    1. 不存在变量提升
    2. 暂时性死区: 只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响
    3. 不允许重复声明

    ES6 声明变量的方式有6种

    ES5 只有两种声明变量的方法:var命令和function命令。ES6 除了添加let和const命令,后面章节还会提到,另外两种声明变量的方法:import命令和class命令。所以,ES6 一共有 6 种声明变量的方法。

  • 相关阅读:
    基本指令6---GRANT
    基本指令4---ALTER
    基本指令3--UPDATE/DELETE/DROP
    基本指令2---CREATE/INSERT INTO
    基本指令1
    jmeter-跨线程组传值
    【数学】斯特林子集数 | 斯特林轮换数 | 欧拉数
    【图论】拓扑排序
    【数学】多项式(原理)
    【数学】普通型生成函数
  • 原文地址:https://www.cnblogs.com/Paul-Yellow/p/10411272.html
Copyright © 2011-2022 走看看