Node.JS实战64:ES6新特性:Let和Const。

本文深入探讨了ES6中引入的let和const关键字,解析了它们如何解决变量作用域的问题,以及在for循环和常量定义中的应用,避免了传统var声明可能引发的bug。

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

以往版本的JS中,如果你在if中定义一个变量,这个变量在if外部也是可以访问的,而不管if条件是否被执行,如:

if(false){

    var x = "hello JShaman"

}

console.log(x);

执行这段代码不会失败、不会报错,但会输出undefined:

这情况很可能会引起bug,而且很难找出原因。

在ES6(即:ES2015)中,为了解决这个隐患,引入了let关键字。Let定义的变量,只在自身所在的作用域生效果。修改上述代码如下:

if(false){

    let x = "hello JShaman"

}

console.log(x);

执行,即会报错:

而且,let还可以广泛的应用在for循环中,如:

for(let i=0; i<10; i++){

    console.log("JS代码混淆,就用JShaman代码混淆加密平台");

}

console.log(i);

这时执行同样会报错:i未定义。

ES6还新增了一个const关键字,用于定义常量:

const x = "JShaman:JS代码混淆加密平台";

x = "hello jshaman";

执行将会出错,因为试图改变一个常量的值 。

但并不意味着赋值是恒定不变的,用例子来说明:

const x = {};

x.name = "JShaman";

console.log(x);

这个执行是没有问题的:

但如果这样操作是不行的:

const x = {};

x = "JShaman";

执行会出错:

小提示:实际使用时,用const定义三方模块是非常适合的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值