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

一文詳解JS中的塊級作用域

 更新時(shí)間:2023年09月10日 08:18:49   作者:編程三昧  
在JavaScript的世界里,作用域可以分為三種,分別是全局作用域,函數(shù)作用域,塊級作用域,本文主要來和大家聊聊JS中塊級作用域的相關(guān)知識,感興趣的可以了解下

JavaScript 本身一直是函數(shù)式作用域,這就是我們經(jīng)常將整個(gè) JavaScript 文件封裝在一個(gè)空的立即調(diào)用函數(shù)表達(dá)式(IIFE)中的原因。這樣做是為了隔離文件中的所有變量,因此全局中就不會(huì)存在變量名沖突。

現(xiàn)在,我們有塊級作用域和兩個(gè)綁定到塊的新變量聲明。

Let

這與var類似,但有一些顯著差異。由于它聲明的變量具有塊級作用域,所以可以在不影響外部變量的情況下聲明具有相同名稱的新局部(內(nèi)部)變量。

var a = 'car' ;
{
    let a = 5;
    console.log(a) // 5
}
console.log(a) // car

因?yàn)樗壎ǖ揭粋€(gè)塊(即就是 {} 之間的范圍),它解決了這個(gè)經(jīng)典的面試問題:“輸出是什么,如何讓它按照你的期望工作?”

for (var i = 1; i < 5; i++){
    setTimeout(() => { console.log(i); }, 1000);
}

在這種情況下,它會(huì)輸出 “5 5 5 5 5”,因?yàn)樽兞?i 在每次迭代中都會(huì)被改變,最終所有結(jié)果以最后一次變更為準(zhǔn)。

如果您將var切換為let,那就不一樣了。現(xiàn)在,每個(gè)循環(huán)都會(huì)創(chuàng)建一個(gè)新的塊作用域,其值為綁定到該循環(huán)的值。相當(dāng)于你寫了:

{let i = 1; setTimeout(() => { console.log(i) }, 1000)}
{let i = 2; setTimeout(() => { console.log(i) }, 1000)}
{let i = 3; setTimeout(() => { console.log(i) }, 1000)}
{let i = 4; setTimeout(() => { console.log(i) }, 1000)}
{let i = 5; setTimeout(() => { console.log(i) }, 1000)}

varlet之間的另一個(gè)區(qū)別是let不會(huì)像var一樣被提升。

{
    console.log(a); // undefined
    console.log(b); // ReferenceError
    var a = 'car';
    let b = 5;
}

由于其更嚴(yán)格的范圍界定和更可預(yù)測的行為,有些人表示應(yīng)該使用let而不是var,除非特別需要用var的聲明提升或需要其更寬松的作用范圍。

Const

如果你想在 JavaScript 中聲明一個(gè)常量變量,那么慣例是將變量命名大寫。然而,這并不能保證它是一個(gè)常量 - 它只是讓其他開發(fā)人員知道這是一個(gè)常量,不應(yīng)該改變。

現(xiàn)在我們有了const聲明。

{
    const c = "tree";
    console.log(c);  // tree
    c = 46;  // TypeError!
}

const 不會(huì)使變量不可變,只是鎖定它的賦值。 如果你有一個(gè)復(fù)雜的賦值(對象或數(shù)組),那么該值仍然可以修改。

{
    const d = [1, 2, 3, 4];
    const dave = { name: 'David Jones', age: 32};
    d.push(5);
    dave.job = "salesman";
    console.log(d);  // [1, 2, 3, 4, 5]
    console.log(dave);  // { age: 32, job: "salesman", name: 'David Jones'}
}

到此這篇關(guān)于一文詳解JS中的塊級作用域的文章就介紹到這了,更多相關(guān)JS塊級作用域內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • javascript將url解析為json格式的兩種方法

    javascript將url解析為json格式的兩種方法

    本篇文章主要介紹了javascript將url解析為json格式的兩種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Javascript 阻止javascript事件冒泡,獲取控件ID值

    Javascript 阻止javascript事件冒泡,獲取控件ID值

    Javascript學(xué)習(xí)日記-阻止javascript事件冒泡,獲取控件ID值
    2009-06-06
  • 微信小程序模板template簡單用法示例

    微信小程序模板template簡單用法示例

    這篇文章主要介紹了微信小程序模板template簡單用法,結(jié)合實(shí)例形式分析了微信小程序模板template的功能、簡單使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • JavaScript跳出循環(huán)的三種方法(break, return, continue)

    JavaScript跳出循環(huán)的三種方法(break, return, continue)

    這篇文章主要介紹了JavaScript跳出循環(huán)的三種方法(break, return, continue),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • JavaScript設(shè)計(jì)模式之原型模式分析【ES5與ES6】

    JavaScript設(shè)計(jì)模式之原型模式分析【ES5與ES6】

    這篇文章主要介紹了JavaScript設(shè)計(jì)模式之原型模式,簡單描述了原型模式的概念、原理,并結(jié)合實(shí)例形式分析了ES5與ES6實(shí)現(xiàn)原型模式的相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • 淺析js中取絕對值的2種方法

    淺析js中取絕對值的2種方法

    本篇文章是對js中取絕對值的2種方法進(jìn)行了介紹說明,需要的朋友可以參考下
    2013-07-07
  • 微信小程序以7天為周期連續(xù)簽到7天功能效果的示例代碼

    微信小程序以7天為周期連續(xù)簽到7天功能效果的示例代碼

    這篇文章主要介紹了微信小程序以7天為周期連續(xù)簽到7天功能效果的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 純JavaScript實(shí)現(xiàn)的兼容各瀏覽器的添加和移除事件封裝

    純JavaScript實(shí)現(xiàn)的兼容各瀏覽器的添加和移除事件封裝

    這篇文章主要介紹了純JavaScript實(shí)現(xiàn)的兼容各瀏覽器的添加和移除事件封裝,本文直接給出實(shí)現(xiàn)代碼,代碼中帶詳細(xì)注釋,需要的朋友可以參考下
    2015-03-03
  • JavaScript原型與原型鏈深入探究使用方法

    JavaScript原型與原型鏈深入探究使用方法

    js中的原型與原型鏈應(yīng)該是老生常談的話題了,在前端面試中基本都是必問的一個(gè)問題,但是很多人還是稀里糊涂的,只知道其表層含義。本文將帶大家深入了解JavaScript中的原型與原型鏈,感興趣的可以學(xué)習(xí)一下
    2022-11-11
  • JavaScript可視化與Echarts詳細(xì)介紹

    JavaScript可視化與Echarts詳細(xì)介紹

    提到數(shù)據(jù)可視化相信大家都不陌生,它能夠?qū)我坏臄?shù)據(jù)通過合適的可視化圖表類型表現(xiàn)出來,使其更加直觀的展現(xiàn)數(shù)據(jù)的變化趨勢、對比、峰值等等。其實(shí)在前端開發(fā)中,數(shù)據(jù)可視化也尤為重要,在眾多圖表庫中,echarts就是最常見的圖表庫之一
    2022-07-07

最新評論

长子县| 漯河市| 望都县| 景泰县| 寿宁县| 孝感市| 永德县| 湟中县| 城步| 汉沽区| 西乌珠穆沁旗| 山西省| 和田县| 巴中市| 浪卡子县| 巫山县| 德保县| 汶上县| 霍林郭勒市| 闽侯县| 卢龙县| 深圳市| 黔南| 营山县| 绥中县| 芦山县| 遂昌县| 大埔县| 永宁县| 手机| 桑植县| 改则县| 蛟河市| 周宁县| 马山县| 昭通市| 甘谷县| 文水县| 海城市| 邳州市| 镇赉县|