【 ES6】变量

let

声明变量

  • 变量不能重复声明
    {
        let a = 10;
        let a = 20;
        // SyntaxError: Identifier 'a' has already been declared
    }
    
  • 块级作用域 只在块级作用域内有效
    • if else while for { } 都是块级作用域
    	{
    	    let a = 10;
    	}
    	console.log(a) // ReferenceError: a is not defined
    	
    	// 例如:
    	function testlet() {
        let a = 30;
        // 块级作用域
        if (true) {
            let a = 50;
            console.log(a); // 50
        }
        console.log(a); // 30
    }
    testlet()
    
  • 不存在变量提升
	{
	  console.log(names)
  	  let names = 'zwj'
  	  // ReferenceError: Cannot access 'names' before initialization
}
  • 不影响作用域链
    {
        let names = 'zwj'
        function fn() {
        	// 函数内部不存在names 向上寻找
            console.log(names);
        }
        fn()
    }
    

const

  • 必须赋初始值
    const a;
    // SyntaxError: Missing initializer in const declaration
    
  • 申明常量 值不能修改
    const a = 10;
    const a = 20;
    // SyntaxError: Identifier 'a' has already been declared
    
  • 存在块级作用域
    {
        const a = 10
    }
    // 外部无法访问块级作用域内定义的数据
    console.log(a);
    // ReferenceError: a is not defined
    
  • 可以对数组和对象的元素进行修改
    // 常量保存的地址没有发生变化
    const array = [1, 2, 3, 4, 5]
    array.push(6)
    console.log(array); // [ 1, 2, 3, 4, 5, 6 ]
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值