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