站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        詳解JavaScript之作用域

        詳解JavaScript之作用域

        作用域是可訪問(wèn)變量的集合。

        JavaScript 作用域

        在 JavaScript 中, 對(duì)象和函數(shù)同樣也是變量。

        在 JavaScript 中, 作用域?yàn)榭稍L問(wèn)變量,對(duì)象,函數(shù)的集合。

        JavaScript 函數(shù)作用域: 作用域在函數(shù)內(nèi)修改。

        JavaScript 局部作用域

        變量在函數(shù)內(nèi)聲明,變量為局部作用域。

        局部變量:只能在函數(shù)內(nèi)部訪問(wèn)。

        // 此處不能調(diào)用 carName 變量 function myFunction() {   var carName = "Volvo";   // 函數(shù)內(nèi)可調(diào)用 carName 變量 }

        因?yàn)榫植孔兞恐蛔饔糜诤瘮?shù)內(nèi),所以不同的函數(shù)可以使用相同名稱的變量。

        局部變量在函數(shù)開始執(zhí)行時(shí)創(chuàng)建,函數(shù)執(zhí)行完后局部變量會(huì)自動(dòng)銷毀。

        JavaScript 全局變量

        變量在函數(shù)外定義,即為全局變量。

        全局變量有 全局作用域: 網(wǎng)頁(yè)中所有腳本和函數(shù)均可使用。

        var carName = " Volvo";   // 此處可調(diào)用 carName 變量 function myFunction() {   // 函數(shù)內(nèi)可調(diào)用 carName 變量 }

        如果變量在函數(shù)內(nèi)沒有聲明(沒有使用 var 關(guān)鍵字),該變量為全局變量。

        以下實(shí)例中 carName 在函數(shù)內(nèi),但是為全局變量。

        // 此處可調(diào)用 carName 變量   function myFunction() {   carName = "Volvo";   // 此處可調(diào)用 carName 變量 }

        JavaScript 變量生命周期

        JavaScript 變量生命周期在它聲明時(shí)初始化。

        局部變量在函數(shù)執(zhí)行完畢后銷毀。

        全局變量在頁(yè)面關(guān)閉后銷毀。

        函數(shù)參數(shù)

        函數(shù)參數(shù)只在函數(shù)內(nèi)起作用,是局部變量。

        HTML 中的全局變量

        在 HTML 中, 全局變量是 window 對(duì)象: 所有數(shù)據(jù)變量都屬于 window 對(duì)象。

        //此處可使用 window.carName   function myFunction() {   carName = "Volvo"; }

        你知道嗎?

        你的全局變量,或者函數(shù),可以覆蓋 window 對(duì)象的變量或者函數(shù)。
        局部變量,包括 window 對(duì)象可以覆蓋全局變量和函數(shù)。

        補(bǔ)充

        ES6 中的 let 關(guān)鍵字

        let 允許你聲明一個(gè)作用域被限制在塊級(jí)中的變量、語(yǔ)句或者表達(dá)式。與var關(guān)鍵字不同的是,它聲明的變量只能是全局或者整個(gè)函數(shù)塊的。

        let 語(yǔ)法:

        let var1 [= value1] [, var2 [= value2]] [, …, varN [= valueN]];

        let 聲明的變量只在其聲明的塊或子塊中可用,這一點(diǎn),與 var 相似。二者之間最主要的區(qū)別在于 var 聲明的變量的作用域是整個(gè)封閉函數(shù)。

        letvar 的區(qū)別代碼實(shí)例:

        function varTest() {  var x = 1;  if (true) {   var x = 2; // 同樣的變量!   console.log(x); // 2  }  console.log(x); // 2 }  function letTest() {  let x = 1;  if (true) {   let x = 2; // 不同的變量   console.log(x); // 2  }  console.log(x); // 1 }

        相關(guān)學(xué)習(xí)推薦:javascript視頻教程

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 国产一区二区精品久久凹凸| 亚洲精品偷拍视频免费观看| 久久精品18| 国产精品999| 欧美性videos高清精品| 久久久不卡国产精品一区二区 | 2021精品国产综合久久| 亚洲国产另类久久久精品小说| 国自产精品手机在线观看视频| 亚洲精品福利视频| 国产精品大白天新婚身材| 精品亚洲国产成AV人片传媒| 在线亚洲精品福利网址导航| 老子影院午夜精品无码 | 亚洲欧美日韩国产精品专区| 九九精品在线视频| 精品国产福利尤物免费| 国产精品午夜一级毛片密呀 | 国产成人精品亚洲日本在线| 精品国产VA久久久久久久冰| 无码少妇精品一区二区免费动态| 久夜色精品国产一区二区三区| 国产精品国产三级国产潘金莲| 91精品国产麻豆国产自产在线| 四虎国产精品永久地址99新强| 精品在线免费观看| 国产韩国精品一区二区三区久久| 国产精品毛片无遮挡| 国产精品香港三级国产AV| 国产午夜精品一区二区三区漫画| 日韩精品区一区二区三VR| 日韩欧精品无码视频无删节 | 亚洲精品乱码久久久久久按摩 | 国产乱人伦偷精品视频免观看 | 国内精品免费视频精选在线观看| 国产精品久久久久久久久鸭 | 日韩精品专区AV无码| 久久精品亚洲中文字幕无码麻豆| 久久99精品久久久久久久久久| 久久狠狠高潮亚洲精品| 国产精品99久久99久久久|