ES6 let与const关键字详解

本文详细介绍了JavaScript中let与const关键字的使用方法及其特点。let用于声明块级作用域的本地变量,而const则用于声明常量。文章通过示例说明了两者之间的区别,如变量的作用域、重复声明及变量提升等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

let 与 const 关键字
let 的使用
  • let 用于声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。

    • 语法:let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]];

    • 特点:

      • 声明的变量只在其声明的块或子块中可用(拥有块级作用域 {})。

        {
            var varTest = '小乔'
            let letTest = '小乔'
            {		
                // var 声明的变量,没有块级作用域,会覆盖之前的值
                var varTest = '妲己'
                // let 声明的变量,拥有块级作用域,不同作用域的相同名称的变量之间互不影响
                let letTest = '妲己'
                {	// 在子块中可用
                    console.log(letTest)
                }
             }
        
            console.log('varTest', varTest)
            console.log('letTest', letTest)
        }
        

        执行结果:

        妲己
        varTest 妲己
        letTest 小乔
        
      • 变量不可重复声明。

        var 重复声明,第二次声明会覆盖第一次声明的值

        let 重复声明会报错

        let username = '小小'
        let username = '妲己'
        console.log(username)
        

        执行结果:

        # 报错
        Uncaught SyntaxError: Identifier 'username' has already been declared
        
      • 不会进行预处理,不存在变量提升。

        console.log('var声明的变量',varTest)
        console.log('let声明的变量',letTest)
        
        var varTest = 'var 变量提升否'
        let letTest = 'let 变量提升否'
        

        执行结果:

        var声明的变量 undefined
        # 严格模式下,先使用变量,后进行变量的声明,会直接报错
        Uncaught ReferenceError: Cannot access 'letTest' before initialization
        
const 的使用
  • const 用于声明创建一个常量或多个常量,其作用域可以是全局或本地声明的块(拥有块级作用域)。

    • 语法:const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]];

    • 特点:

      • const 声明常量时必须进行初始化。

        const MY_FAV
        console.log(MY_FAV)
        

        执行结果:

        # 报错
        Uncaught SyntaxError: Missing initializer in const declaration
        
      • 初始化后值不能通过再赋值修改,也不能再次声明。

        // 定义常量并初始化
        const MY_FAV = 123
        // 再次给常量赋值
        MY_FAV = 456
        console.log(MY_FAV)
        

        执行结果:

        # 报错
        let_const.html:77 Uncaught TypeError: Assignment to constant variable.
        

        注: 约定常量名称用 大写英文字母 表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值