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


prtyaa
prtyaa 2023-12-26 17:21:16 65305
分类专栏: 资讯

以往版本的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";
执行会出错:

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=30914
赞同 0
评论 0 条
prtyaaL1
粉丝 1 发表 2554 + 关注 私信
上周热门
银河麒麟添加网络打印机时,出现“client-error-not-possible”错误提示  1504
银河麒麟打印带有图像的文档时出错  1423
银河麒麟添加打印机时,出现“server-error-internal-error”  1213
统信操作系统各版本介绍  1134
统信桌面专业版【如何查询系统安装时间】  1131
统信桌面专业版【全盘安装UOS系统】介绍  1086
麒麟系统也能完整体验微信啦!  1043
统信【启动盘制作工具】使用介绍  692
统信桌面专业版【一个U盘做多个系统启动盘】的方法  635
信刻全自动档案蓝光光盘检测一体机  542
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

添加我为好友,拉您入交流群!

请使用微信扫一扫!