美文网首页
let 和 const

let 和 const

作者: 暖年的咆哮 | 来源:发表于2018-11-27 14:48 被阅读0次

1. var

ES5声明变量的关键字,
如果在方法中声明,则为局部变量(local variable);如果是在全局域中声明,则为全局变量。
存在变量提升

2. let 命令

1、在let之前出现let定义的变量会报未定义的错误,是因为let定义的变量不会进行变量提升
2、let的作用域只在当前作用域也就是一对花括号之间生效,
3、let不能重复定义,
4、函数内不能用let重新声明函数的参数
5、再let之前使用typeof,会报错,因为变量不会提升,let之前的区域相当于暂时性死区(TDZ)

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

3.const命令

1、不可修改
2、只在块级作用域起作用,这点与let关键字一样。
3、不存在变量提升,必须先声明后使用,这点也跟let关键字一样。
4、不可重复声明同一个变量,这点跟let也一样。
5、声明后必须要赋值
6、定义的常量如果是引用类型,需注意址传递问题

例如,const定义的常量是数字,字符串,布尔值等基本类型,那么它就是不可更改的,但是如果const定义的常量是object,那么实际上const只是定义了object的内存地址,而object实际上是可以更改的。

如果真的想定义一个不可更改的引用类型的const,那么可以使用object.freeze({})方法。 这个方法可以称之为冻结常量方法;

4. ES6声明变量的6种方法:

    ES5中声明变量只有2中方法,var和function,
    ES6中新增加了let,const,import,和class命令。

5.ES6块级作用域

为什么需要块级作用域:
因为在多人开发的时候,很容易出现变量同名,造成代码冲突,为了避免这种情况,便有了块级作用域,块级作用域内部的变量不会影响块级作用域外部的变量,
ES5的作用域只分为函数作用域和全局作用域,var变量会经常出现冲突。
ES6允许块级作用域的任意嵌套
内层作用域不会影响外层作用域的变量,所以内层作用域可以和外层作用域同名
ES5中规定,函数,只能在顶层作用域和函数作用域中声明,不能再块级作用域之中声明,但是浏览器并未遵守此约定,
ES6中规定,在块级作用域中,函数声明语句类似于let,只作用与当前作用域中,但是会此声明会被提升到此作用域顶部,块级作用域之外不可引用。
由于ES5和ES6的环境导致行为差异太大,所以应该避免在块级作用域中声明函数,如果确实需要,应该写成函数表达式的形式,而不是函数声明语句。

相关文章

  • let和const

    新的赋值语句let和const let和const命令

  • 工作中常用的 ES6 语法

    变量声明 let 和const 不用var, 用const声明只读变量,let声明变量。let和const都是块级...

  • 关于ES6以及ES6常用的方法

    1、变量声明let和const let表示变量、const表示常量。let和const都是块级作用域。 2、模板字...

  • ES6需要记忆理解的地方

    let和const命令 1、let和const均无变量提升。2、let变量指向的地址可变,const指向的地址不可...

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • ES6这些就够了

    1.变量声明const和let let表示变量、const表示常量。let和const都是块级作用域 2.模板字符...

  • 【JS】从ECMA学习let、const、var变量声明与声明提

    let、const、var是JS中的声明关键字 let和const 我们熟知的let和const的特性,常见的就有...

  • ES6编码风格

    http://es6.ruanyifeng.com/#docs/style let和const let和const...

  • 2018-09-13

    一、let和const const和let的异同点 相同点:const和let都是在当前块内有效,执行到块外会被销...

  • ES6(let 与 const)

    ES6中引入了let 和 const来声明变量,我们来看下let 和 const 的使用 一、let let定义的...

网友评论

      本文标题:let 和 const

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