let var const 区别

时间:2023-12-26 11:46:25

let

  • es6 语法

  • let是作用域是块级的,即{}内的范围

  • 如果未声明变量就使用的话,报错ReferenceError,而var则会报错undefined(不存在变量提升)

  • 只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,(暂时性死区)

    var tmp = 123;
    
    if (true) {
    tmp = 'abc'; // ReferenceError
    let tmp;
    }

var

  • 标准javaScript写法,var的作用域只能作用于局部变量和全局变量

const

  • const与let的作用域一样,但是一旦赋值了const就不能再改变了,只是引用第一不能被改变,但是变量的值还是可以改变的。