块级作用域let,const

181 阅读1分钟

块级作用域,let,const。(1.js)

1. let
    1. let 声明的全局变量不是全局对象window的属性

    2. 同一作用域中用let定义变量不允许重复声明

    3. let声明的变量不存在变量提升

    4. let声明的变量具有暂时性死区

    5. let 声明的变量拥有块级作用域

    

2. const
    1. const定义的是常亮,不可修改。

    2. const 实际上保证的并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。</font>

小Tips:

let和const声明的顶层变量并不会挂载在window上,而var会。

 // let声明的变量并不会挂载在window下
        // let test = 3

        // 而var会
        var test = 6

        let a = {
            test: 1,
            getTest() {
                return this.test
            },
            getArrowTest: () => {
                return this.test
            }
        }

        console.log(a.getTest(), 'getTest')
        // var声明test会打印6 let声明test会打印undefined
        console.log(a.getArrowTest(), 'getTest')