成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

es6中容易忽視的細(xì)節(jié)(一)

baishancloud / 1785人閱讀

摘要:但是對(duì)于復(fù)雜類(lèi)型的數(shù)據(jù)數(shù)組對(duì)象,保存的是一個(gè)指針,真正的數(shù)據(jù)是存儲(chǔ)在堆區(qū),只能保證這個(gè)指針不會(huì)變化,不能保證里面的數(shù)據(jù)不發(fā)生變化的變量聲明方式在中聲明的全局變量是和頂層對(duì)象的屬性對(duì)等的獲取全局對(duì)象的方法

你可能不知道的let與const let

var聲明的變量會(huì)發(fā)生變量提升,在var聲明之前調(diào)用該變量會(huì)數(shù)處undefined,但是let聲明的變量不會(huì)發(fā)生提升,在聲明之前調(diào)用就會(huì)報(bào)錯(cuò)

// var 的情況
console.log(foo); // 輸出undefined
var foo = 2;

// let 的情況
console.log(bar); // 報(bào)錯(cuò)ReferenceError
let bar = 2;

let不允許在相同的作用域內(nèi)聲明相同的變量否則會(huì)報(bào)錯(cuò)

 // 報(bào)錯(cuò)
function func() {
  let a = 10;
  var a = 1;
}

塊級(jí)作用于有以下兩個(gè)用處
內(nèi)層變量覆蓋外層變量

var tmp = new Date();  

function f() {
  console.log(tmp);
  if (false) {
    var tmp = "hello world"; // 這里會(huì)發(fā)生變量提升
  }
}

f(); // undefined

用來(lái)計(jì)數(shù)的循環(huán)變量泄露為全局變量

var s = "hello";

for (var i = 0; i < s.length; i++) {
  console.log(s[i]);
}

console.log(i); // 5

函數(shù)聲明與變量聲明的潛規(guī)則

允許在塊級(jí)作用域內(nèi)聲明函數(shù)(es6規(guī)定的在嚴(yán)格模式下只有在{}內(nèi)部才可以聲明函數(shù))

函數(shù)聲明類(lèi)似于var,即會(huì)提升到全局作用域或函數(shù)作用域的頭部。

同時(shí),函數(shù)聲明還會(huì)提升到所在的塊級(jí)作用域的頭部,優(yōu)先于變量的聲明

funtion fun(){};
var fun;   // 這里不管先聲明誰(shuí)fun輸出的永遠(yuǎn)都是函數(shù)
fun  //f fun(){}

const

const聲明的常量聲明就必須初始化也就是必須賦值,否則就會(huì)報(bào)錯(cuò)(若是定義引用類(lèi)型數(shù)據(jù)則可以改變并不會(huì)報(bào)錯(cuò))

const obj = {a:{b:2}}
a.b=3
obj    // {a:{b:3}}

同let聲明的變量一樣,const不能重復(fù)聲明同一變量,同時(shí)const也是塊級(jí)作用域

小結(jié)與擴(kuò)展

const保證的實(shí)際上并不是變量的值不可改變,而是指變量存放的地址不可改變,對(duì)于簡(jiǎn)單的數(shù)據(jù)類(lèi)型(數(shù)字,字符串,boolean)值就保存在變量指向的那個(gè)地址(棧區(qū)),所以是不可改變的。

但是對(duì)于復(fù)雜類(lèi)型的數(shù)據(jù)(數(shù)組、對(duì)象),保存的是一個(gè)指針,真正的數(shù)據(jù)是存儲(chǔ)在堆區(qū),只能保證這個(gè)指針不會(huì)變化,不能保證里面的數(shù)據(jù)不發(fā)生變化

es6的變量聲明方式:var function let const import export

在es5中聲明的全局變量是和頂層對(duì)象的屬性對(duì)等的

獲取全局對(duì)象的方法

var getGlobal = function () {
  if (typeof self !== "undefined") { return self; }
  if (typeof window !== "undefined") { return window; }
  if (typeof global !== "undefined") { return global; }
  throw new Error("unable to locate global object");
};

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

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

相關(guān)文章

  • es6容易忽視細(xì)節(jié)(三)

    摘要:模塊就是對(duì)象,輸入時(shí)必須查找對(duì)象屬性模塊不是對(duì)象,而是通過(guò)命令顯式指定輸出的代碼,再通過(guò)命令輸入。大括號(hào)里面的變量名,必須與被導(dǎo)入模塊對(duì)外接口的名稱(chēng)相同。 proxy代理的坑 var obj = {index:index} var newObj = new Proxy(obj,{ get:(target,key)=>{ console.l...

    Michael_Lin 評(píng)論0 收藏0
  • es6容易忽視細(xì)節(jié)(二)

    摘要:變量的解構(gòu)賦值結(jié)構(gòu)賦值允許使用默認(rèn)值內(nèi)部使用嚴(yán)格相等運(yùn)算符,判斷一個(gè)位置是否有值。所以,只有當(dāng)一個(gè)數(shù)組成員嚴(yán)格等于,默認(rèn)值才會(huì)生效。這樣的層層判斷非常麻煩,因此現(xiàn)在有一個(gè)提案,引入了傳導(dǎo)運(yùn)算符,簡(jiǎn)化上面的寫(xiě)法。 變量的解構(gòu)賦值 結(jié)構(gòu)賦值允許使用默認(rèn)值 let [foo = true] = []; foo // true ES6 內(nèi)部使用嚴(yán)格相等運(yùn)算符(===),判斷一個(gè)位置是否...

    RayKr 評(píng)論0 收藏0
  • koa 實(shí)現(xiàn) react-view 原理

    摘要:今天,其實(shí)講的是在實(shí)現(xiàn)同構(gòu)過(guò)程中看到過(guò),可能非常容易被忽視更小的一個(gè)點(diǎn)。每一個(gè)架構(gòu)的框架都會(huì)涉及到層的展現(xiàn),也不例外。這種說(shuō)法即對(duì)也不對(duì)。總結(jié)其實(shí),實(shí)現(xiàn)非常簡(jiǎn)單,我們也從一些維度看到了設(shè)計(jì)一個(gè)的一般方法。 在之前我們有過(guò)一篇『React 同構(gòu)實(shí)踐與思考』的專(zhuān)欄文章,給讀者實(shí)踐了用 React 怎么實(shí)現(xiàn)同構(gòu)。今天,其實(shí)講的是在實(shí)現(xiàn)同構(gòu)過(guò)程中看到過(guò),可能非常容易被忽視更小的一個(gè)點(diǎn) —— R...

    zxhaaa 評(píng)論0 收藏0
  • 2018前端值得關(guān)注技術(shù)

    摘要:年前端有哪些領(lǐng)域,技術(shù)值得關(guān)注,哪些技術(shù)會(huì)興起,哪些技術(shù)會(huì)沒(méi)落。自從谷歌提出后,就持續(xù)的獲得了業(yè)界的關(guān)注,熱度可見(jiàn)一斑。就在今年,谷歌也宣布將獲得與安卓原生應(yīng)用同等的待遇與權(quán)限。但是無(wú)論都值得關(guān)注。 1.前言 2017悄然過(guò)去,2018已經(jīng)來(lái)到。人在進(jìn)步,技術(shù)在發(fā)展。2018年前端有哪些領(lǐng)域,技術(shù)值得關(guān)注,哪些技術(shù)會(huì)興起,哪些技術(shù)會(huì)沒(méi)落。下面就我個(gè)人的判斷進(jìn)行一個(gè)預(yù)測(cè)判斷,希望能對(duì)大家...

    xiao7cn 評(píng)論0 收藏0
  • 2018前端值得關(guān)注技術(shù)

    摘要:年前端有哪些領(lǐng)域,技術(shù)值得關(guān)注,哪些技術(shù)會(huì)興起,哪些技術(shù)會(huì)沒(méi)落。自從谷歌提出后,就持續(xù)的獲得了業(yè)界的關(guān)注,熱度可見(jiàn)一斑。就在今年,谷歌也宣布將獲得與安卓原生應(yīng)用同等的待遇與權(quán)限。但是無(wú)論都值得關(guān)注。 1.前言 2017悄然過(guò)去,2018已經(jīng)來(lái)到。人在進(jìn)步,技術(shù)在發(fā)展。2018年前端有哪些領(lǐng)域,技術(shù)值得關(guān)注,哪些技術(shù)會(huì)興起,哪些技術(shù)會(huì)沒(méi)落。下面就我個(gè)人的判斷進(jìn)行一個(gè)預(yù)測(cè)判斷,希望能對(duì)大家...

    用戶84 評(píng)論0 收藏0

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

0條評(píng)論

閱讀需要支付1元查看
<