javascript
js中执行到一个if就停止的代码_Node.JS实战64:ES6新特性:Let和Const。
以往版本的JS中,如果你在if中定義一個(gè)變量,這個(gè)變量在if外部也是可以訪問的,而不管if條件是否被執(zhí)行,如:
if(false){
var x = "hello JShaman"
}
console.log(x);
執(zhí)行這段代碼不會(huì)失敗、不會(huì)報(bào)錯(cuò),但會(huì)輸出undefined:
這情況很可能會(huì)引起bug,而且很難找出原因。
在ES6(即:ES2015)中,為了解決這個(gè)隱患,引入了let關(guān)鍵字。Let定義的變量,只在自身所在的作用域生效果。修改上述代碼如下:
if(false){
let x = "hello JShaman"
}
console.log(x);
執(zhí)行,即會(huì)報(bào)錯(cuò):
而且,let還可以廣泛的應(yīng)用在for循環(huán)中,如:
for(let i=0; i<10; i++){
console.log("JS代碼混淆,就用JShaman代碼混淆加密平臺(tái)");
}
console.log(i);
這時(shí)執(zhí)行同樣會(huì)報(bào)錯(cuò):i未定義。
ES6還新增了一個(gè)const關(guān)鍵字,用于定義常量:
const x = "JShaman:JS代碼混淆加密平臺(tái)";
x = "hello jshaman";
執(zhí)行將會(huì)出錯(cuò),因?yàn)樵噲D改變一個(gè)常量的值 。
但并不意味著賦值是恒定不變的,用例子來說明:
const x = {};
x.name = "JShaman";
console.log(x);
這個(gè)執(zhí)行是沒有問題的:
但如果這樣操作是不行的:
const x = {};
x = "JShaman";
執(zhí)行會(huì)出錯(cuò):
小提示:實(shí)際使用時(shí),用const定義三方模塊是非常適合的。
總結(jié)
以上是生活随笔為你收集整理的js中执行到一个if就停止的代码_Node.JS实战64:ES6新特性:Let和Const。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搜索重复代码_通过MappedByteB
- 下一篇: 计算机网络中什么叫总衰耗_1、什么是计算