成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

關(guān)于var、let、const

JerryWangSAP / 3254人閱讀

摘要:首先,分清楚中存在兩種作用域,即全局作用域和方法作用域定義的變量是方法作用域,比如這是在函數(shù)中,但是需要注意的是在循環(huán)中的問題這個函數(shù)中都能訪問到,這是我們不期望的,這就是方法作用域的弊端就正好解決了這個問題,它是塊級作用域,即內(nèi)可以訪問還

首先,分清楚js中存在兩種作用域,即全局作用域和方法作用域
var

var定義的變量是方法作用域,比如:

function() {
    var str = "I am var";
    console.log(str); // I am var
}
console.log(str); // undefined

這是在函數(shù)中,但是需要注意的是在for循環(huán)中的問題:

function calcute({price: [2,4,3]}) {
    var totalPrice = [];
    for (var i = 0;i < price.length; i++) {
        var finallyPrice = price[i] * 2;
        totalPrice.push(finallyPrice);
    }
    console.log(i); // 3
    console.log(price); // [2,4,3]
    console.log(finallyPrice); // [4,8,6];
}

這個函數(shù)中都能訪問到i、price、finallyPrice,這是我們不期望的,這就是var方法作用域的弊端

let

let就正好解決了這個問題,它是塊級作用域,即{}內(nèi)可以訪問

function calcute({price: [2,4,3]}) {
    let totalPrice = [];
    for (let i = 0;i < price.length; i++) {
        let finallyPrice = price[i] * 2;
        totalPrice.push(finallyPrice);
    }
    console.log(i); // i is not defined
    console.log(price); // [2,4,3]
    console.log(finallyPrice); // finallyPrice is not defined;
}

還需要注意的是:var定義的變量在定義之前訪問是undefined,但是let定義變量在定義之前訪問會報錯Uncaught ReferenceError

const

const和let作用域一致,但是通過const賦值的變量不可再次復(fù)制(不是變量本身也不可變,只是不能再次賦值)

const params = {
    count: 3,
    price: 10
}
params.count = 4 // 正常
params = [] // 報錯Uncaught TypeError
總結(jié)

變量值會改變用let,不會改變用const(一般都是用來表述常量),盡量減少用var

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105598.html

相關(guān)文章

  • 關(guān)于varlet,const的那點事

    摘要:一直使用定義變量,的出現(xiàn)給變量定義增加了兩個大將,。聲明的變量,塊作用域,不重復(fù)聲明覆蓋,限制了變量的作用域,保證變量不會去污染全局變量,所以盡量將改為用。 一直使用var定義變量,ES6的出現(xiàn)給變量定義增加了兩個大將let,const。那它們有什么區(qū)別呢。 1、const關(guān)鍵字它的作用就是定義一個常量,一旦定義無法更改,不能重復(fù)聲明覆蓋; showImg(https://segmen...

    KavenFan 評論0 收藏0
  • 譯:用letconst 來指導(dǎo)JavaScript 的變量提升

    摘要:最近在上看到一篇關(guān)于變量提升的文章,原文在此。對于剛?cè)腴T的開發(fā)者時常難以理解變量方法提升的獨特行為。接下來我們要談?wù)?,,聲明,那么先了解變量提升就顯得更為重要了。在進(jìn)入作用域和不能訪問的這段時間,我們稱為暫時性死區(qū)。 showImg(https://segmentfault.com/img/bV0Nsd?w=800&h=450); 最近在Medium上看到一篇關(guān)于變量提升的文章,原文在...

    sanyang 評論0 收藏0
  • Javascript 關(guān)于array的使用

    摘要:關(guān)于深復(fù)制詳見其他博文方法數(shù)組簡單用法方法的參數(shù)翻譯說傳入一個回調(diào)函數(shù)里面有三個參數(shù)當(dāng)前遍歷的元素當(dāng)前元素的坐標(biāo)以及遍歷的數(shù)組還有一個可選參數(shù),在里面使用就是這個值如果未傳入,則是根據(jù)當(dāng)前執(zhí)行環(huán)境獲取。 Javascript 關(guān)于array的使用 來自: https://luoyangfu.com/detail/... 最近做項目經(jīng)常會使用到數(shù)組,尤其在一個中臺系統(tǒng)中,數(shù)組是尤為常見的...

    zombieda 評論0 收藏0
  • ES2015系列--塊級作用域

    摘要:在的閉包中,閉包函數(shù)能夠訪問到包庇函數(shù)中的變量,這些閉包函數(shù)能夠訪問到的變量也因此被稱為自由變量。在之前最常見的兩種作用域,全局作用局和函數(shù)作用域局部作用域。 關(guān)于文章討論請訪問:https://github.com/Jocs/jocs.... 當(dāng)Brendan Eich在1995年設(shè)計JavaScript第一個版本的時候,考慮的不是很周到,以至于最初版本的JavaScript有很多不...

    darkbug 評論0 收藏0
  • JavaScript ES6相關(guān)的一些知識(/let、const/箭頭函數(shù)/Promise/gene

    摘要:的精髓在于,用維護(hù)狀態(tài)傳遞狀態(tài)的方式使得回調(diào)函數(shù)能夠及時調(diào)用,比傳遞要簡單靈活的其他方法用于指定發(fā)生錯誤時的回調(diào)函數(shù),等同于部分和的區(qū)別在發(fā)生異常,在中捕獲不到能夠捕獲異常。 ES6是個啥 ECMAScript是國際通過的標(biāo)準(zhǔn)化腳本語言JavaScript由ES,BOM,DOM組成ES是JavaScript的語言規(guī)范,同時JavaScript是ES的實現(xiàn)和擴展6就是JavaScript...

    opengps 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<