最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

var 關(guān)鍵字

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

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

在 for 循環(huán)體中的變量 i,可以被打印出來,假如因為代碼過多,不知道何時間變量重命名了,只有運行時才報錯。又因為只有函數(shù)才可以創(chuàng)建一個塊級作用域,所以,針對于上面出現(xiàn)的問題,就要通過 IIFE 來創(chuàng)建一個塊級作用域。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可以穿透控制語句、條件語句這樣的作用域,導(dǎo)致變量沖突經(jīng)常發(fā)生。所以,ES6 的let就可以很好的解決我們的煩惱,這也是為什么現(xiàn)在推薦使用let來聲明變量,而非var。

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

補充

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

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

可以通過!void來避免:

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

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

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

相關(guān)文章

最新評論

朝阳区| 长宁区| 雅安市| 柳河县| 阳城县| 台南市| 福贡县| 乐昌市| 德清县| 温泉县| 建始县| 磴口县| 永德县| 巴塘县| 榆社县| 周宁县| 石河子市| 安阳市| 翼城县| 荔波县| 密山市| 雅安市| 灵台县| 新巴尔虎左旗| 黑水县| 昭苏县| 高平市| 和顺县| 彭阳县| 霍林郭勒市| 通城县| 名山县| 潜江市| 永州市| 遵义市| 循化| 阿拉善右旗| 会昌县| 临汾市| 平阴县| 东源县|