const,let,var

Airbnb JavaScript 编码规范 中关于 引用References 的说明:
  • 对所有的引用使用 const
  • 如果你一定需要可变动的引用,使用 let 代替 var

❓为什么建议对所有的引用使用 const
◎ 这可以确保你无法对引用重新分配,重新分配可能会导致 bug 和难以理解的代码。

❓为什么使用 let 代替 var
◎ 因为 let 是块级作用域,而 var 是函数作用域。



  • const 定义的变量不可以修改,而且必须初始化。
    // const 正确用法:
    const a = 1;
    console.log(a); //1
    
    // const 错误用法,必须初始化 :
    const a;
    console.log(a); //报错 
    // const 错误用法,变量值不可修改:
    a = 111;
    console.log(a); //报错
    
  • let 是块级作用域,函数内部使用 let 定义后,对函数外部无影响。定义的变量可以修改,但仅限于定义的代码块内,如果不初始化会输出 undefined
    let b = 2;
    console.log('函数外let定义b:' + b); //2
    function changeB(){
    	let b = 222;
    	console.log('函数内let定义b:' + b); //222
    } 
    changeB();
    console.log('函数调用后let定义b不受函数内部定义影响:' + b);//2
    
  • var 定义的变量可以修改,如果不初始化会输出 undefined,不会报错。
    var c = 3;
    // var c;//不会报错
    console.log('函数外var定义c:' + c); //3
    function changeC(){
    	c = 333;
    	console.log('函数内var定义c:' + c); //333
    } 
    changeC();
    console.log('函数调用后var定义c为函数内部修改值:' + c); //333
    



constlet 都是块级作用域,只存在于定义它们对代码块内;而 var 是函数作用域。

{
    const a = 1;
    let b = 1;
    var c = 1;
}
console.log(a); // ReferenceError,引用错误
console.log(b); // ReferenceError,引用错误
console.log(c); // 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值