JavaScript中的var、let、const

作者: link_hui | 来源:发表于2017-12-04 20:30 被阅读26次

JavaScript中定义变量常量的方法有var、let、const,区别如下:

  • var:作用域是函数体内,存在变量提升现象。
  • let:ES6增加,作用域是代码块,不存在变量提升现象
    比如:for循环定义的变量就建议用let
    for (let i = 0; i < results.length; i++) {
      ......
    }
  • const:ES6增加,常量定义,不能再修改
  const a = {b:'b'};
  a = {c:'c'}; //a不能被修改,错误:Uncaught SyntaxError: Invalid or unexpected token
  a.b = 'bb'; //这个是可以的,a.b 和 a是不同的变量

变量提升:JS引擎用将所有var声明和function函数声明都提到函数内的最高处。

参考:深入浅出ES6(十四):let和const

相关文章

网友评论

  • ltaoo:const:ES6增加,常量定义,不能再修改

    所谓的不能修改具体是指什么?如果是 const a = { b: 'b' }; a.b = 'c'; 算修改吗?
    是不是应该说的更清楚些?
    link_hui:@ltaoo 对的。
    ltaoo:@link_hui const 声明的变量不能修改其实是指变量的引用不能被修改。

    a = { c: 'c' } 改变了 a 的引用,指向了一个新对象。a.b = 'c' 没有改变 a 的引用,指向的还是原来的对象。
    link_hui:谢谢回复,我觉得这个应该不能算a被修改了。我修改说明下

本文标题:JavaScript中的var、let、const

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