欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ES6?關(guān)鍵字?let?和?ES5?及關(guān)鍵字?var?的區(qū)別解析

 更新時(shí)間:2022年09月05日 16:51:05   作者:Enziandom  
var可以穿透控制語(yǔ)句、條件語(yǔ)句這樣的作用域,導(dǎo)致變量沖突經(jīng)常發(fā)生,這篇文章主要介紹了ES6?關(guān)鍵字?let?和?ES5?及關(guān)鍵字?var?的區(qū)別,需要的朋友可以參考下

var 關(guān)鍵字

在 ES5 及以前,通過(guò)var在塊級(jí)作用域中聲明的變量,外邊也可以訪問(wèn)。塊級(jí)作用域就是一對(duì){}的作用域;塊級(jí)作用域可以是控制語(yǔ)句的作用域,也就是非函數(shù)的作用域。

function f() {
  { var x = 10; }
  console.log(x); // => 10
}

在 for 循環(huán)體中的變量 i,可以被打印出來(lái),假如因?yàn)榇a過(guò)多,不知道何時(shí)間變量重命名了,只有運(yùn)行時(shí)才報(bào)錯(cuò)。又因?yàn)橹挥泻瘮?shù)才可以創(chuàng)建一個(gè)塊級(jí)作用域,所以,針對(duì)于上面出現(xiàn)的問(wèn)題,就要通過(guò) IIFE 來(lái)創(chuàng)建一個(gè)塊級(jí)作用域。Ben Alman 將它命名為立即執(zhí)行的函數(shù)表達(dá)式(IIFE)

function iife() {
  (function () {
    for (var i = 10; i > 0; i--) {}
  })();
  console.log(i); // => Uncaught ReferenceError: i is not defined
}

let 關(guān)鍵字

var可以穿透控制語(yǔ)句、條件語(yǔ)句這樣的作用域,導(dǎo)致變量沖突經(jīng)常發(fā)生。所以,ES6 的let就可以很好的解決我們的煩惱,這也是為什么現(xiàn)在推薦使用let來(lái)聲明變量,而非var。

function f() {
  for (var i = 10; i > 0; i--) {}
  console.log(i); // => Uncaught ReferenceError: i is not defined
}

補(bǔ)充

如果不給 IIFE 函數(shù)加上分號(hào),啟用格式化代碼之后可能導(dǎo)致兩個(gè) IIFE 函數(shù)連在一起:

(function () {
  // ...
})()(function () {
  // ...
})();

可以通過(guò)!void來(lái)避免:

!(function () {
  // ...
})()

void (function () {
  // ...
})()

到此這篇關(guān)于ES6 關(guān)鍵字 let 和 ES5 及以前關(guān)鍵字 var 的區(qū)別的文章就介紹到這了,更多相關(guān)ES6 關(guān)鍵字 let 和 ES5內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論