国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

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

JerryWangSAP / 3249人閱讀

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

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

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

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

這是在函數(shù)中,但是需要注意的是在for循環(huán)中的問(wè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];
}

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

let

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

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定義的變量在定義之前訪問(wèn)是undefined,但是let定義變量在定義之前訪問(wèn)會(huì)報(bào)錯(cuò)Uncaught ReferenceError

const

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/105598.html

相關(guān)文章

  • 關(guān)于varletconst的那點(diǎn)事

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

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

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

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

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

    zombieda 評(píng)論0 收藏0
  • ES2015系列--塊級(jí)作用域

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

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

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

    opengps 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<