美文网首页
let和const

let和const

作者: 陶六六 | 来源:发表于2018-08-19 19:33 被阅读0次

let和const

  1. es5不存在块级作用域,所以在es5中,代码块中定义的变量,函数都会提升到函数顶部;es6存在块作用域,所以只在声明的代码块里有效
  2. 不存在变量提升,声明会绑定当前的块级作用域,在当前作用域声明之前会形成TDZ(暂时性死区)
  3. 在同一作用域里不允许重复声明
  4. const规定定义变量的内存地址保存的值不变,对于简单类型,保存的是具体值,所以相当于常量;声明的变量是数组、对象等复合类型,存储的是指向具体值的指针,所以指向不能变,但内容可变
  5. const声明时必须初始化
  6. 全局定义的const和let变量不会绑定为顶层变量的属性(global/window)

tips

  1. for循的头部和循环体是父子作用域关系,循环体内定义同名变量可以覆盖父作用域定义的变量
        for(let i=0;i<3;i++){
            console.log(i)
        }
        //0
        //1
        //2
        for(let i=0;i<3;i++){
            let i='abc'
            console.log(i)
        }
        //abc
        //abc
        //abc
    
  2. TDZ导致typeof不再是安全操作,在TDZ不能以任何方式引用尚未定义变量
  3. 隐藏的TDZ
        let x=x //ReferenceError: x is not defined 在x定义前使用了x
        function(x=y,y=2){} //ReferenceError: y is not defined 在y定义前将y赋给x
    
  4. 块作用声明必须显示{}包裹
        if(1){
            let a = 1
        }
        //正确
    
        if(1)
            let a = 1
        // 报错
    
  5. es6存在六种声明方式
    • var
    • function
    • let
    • const
    • import
    • class

相关文章

  • 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/ttqhiftx.html