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

資訊專欄INFORMATION COLUMN

(詳解)多賦值表達(dá)式執(zhí)行過(guò)程

anyway / 605人閱讀

摘要:在講之前,先出一道經(jīng)典面試題答案是如果對(duì)這個(gè)答案的得來(lái)明白的清清楚楚的就不用再往下看了。

在講之前,先出一道經(jīng)典面試題:

 var?a?=?{n:1};???
 a.x?=?a?=?{n:2};??
 console.log(a.x);

答案是 : undefined
如果對(duì)這個(gè)答案的得來(lái)明白的清清楚楚的就不用再往下看了。

首先要了解運(yùn)算符的優(yōu)先級(jí)別(MDN地址)

可知,在當(dāng)前表達(dá)式中

a.x?=?a?=?{n:2};

最優(yōu)先的為".",成員訪問(wèn)運(yùn)算符
那么上述的代碼可以理解為

 var?a?=?{n:1};?
?var temp = a.x;?
 temp?=?a?=?{n:2};??
 console.log(a.x);

接下來(lái)是多個(gè)賦值運(yùn)算符的運(yùn)算,

                             摘自JavaScript權(quán)威指南_第六版 82頁(yè)

那么

 var?a?=?{n:1};?
?var temp = a.x;?
 (temp?=?(a?=?{n:2}));??
 console.log(a.x);

到這里,大家都明白了吧
a.x的地址獲取在 a變化之前
所以導(dǎo)致了,當(dāng)我們?cè)偃ピL問(wèn)a.x的時(shí)候,其實(shí)訪問(wèn)的a已經(jīng)不是之前的那個(gè)a了,自然a.x為undefined

這樣更直觀一點(diǎn)

 var?a?=?{n:1};
 var b = a;??
 a.x?=?a?=?{n:2};??
 console.log(a.x);
 var?a?=?{n:1};
 var b = a;??       // 使用b作為a的追蹤
 var temp = a.x;    // 這個(gè) 相當(dāng)于 var temp = b.x;
 temp?=?a?=?{n:2};??
 console.log(a.x);
 console.log(b.x);  // 這里就是 console.log(temp); => {n:2}

End...

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

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

相關(guān)文章

  • 軟件接口測(cè)試工具Jmeter使用核心詳解【建議收藏】

    用Jmeter做接口測(cè)試只需要掌握幾個(gè)核心功能就可以了。 并不一定要把它所有的功能都掌握,先掌握核心功能入行,然后再根據(jù)工作需要和職業(yè)規(guī)劃來(lái)學(xué)習(xí)更多的內(nèi)容。這篇文章在前面接口測(cè)試框架(測(cè)試計(jì)劃--->線程組--->請(qǐng)求--->查看結(jié)果樹(shù))的前提下,來(lái)介紹必須要掌握的幾個(gè)核心功能,力求用最短的時(shí)間取得最大的成果。 在前面的文章中我提到,用Jmeter做接口測(cè)試的核心是單接口測(cè)試的參數(shù)化和關(guān)聯(lián)接口測(cè)試...

    zoomdong 評(píng)論0 收藏0
  • javascript技術(shù)難點(diǎn)(三)之this、new、apply和call詳解

    摘要:第四點(diǎn)也要著重講下,記住構(gòu)造函數(shù)被操作,要讓正常作用最好不能在構(gòu)造函數(shù)里 4) this、new、call和apply的相關(guān)問(wèn)題 講解this指針的原理是個(gè)很復(fù)雜的問(wèn)題,如果我們從javascript里this的實(shí)現(xiàn)機(jī)制來(lái)說(shuō)明this,很多朋友可能會(huì)越來(lái)越糊涂,因此本篇打算換一個(gè)思路從應(yīng)用的角度來(lái)講解this指針,從這個(gè)角度理解this指針更加有現(xiàn)實(shí)意義。 下面我們看看在ja...

    ghnor 評(píng)論0 收藏0
  • 深入理解 js 聲明提升( 尾部有總結(jié) 和 面試題解析 )

    摘要:要理解函數(shù)的提升行為,讓我們先解析什么是的提升。也就是說(shuō)聲明提升了,賦值還留著原地,等待執(zhí)行。聲明被提升,而包括函數(shù)表達(dá)式的賦值在內(nèi)的賦值操作并不會(huì)提升,而是留在原地等待執(zhí)行。 javaScript自上而下執(zhí)行的順序受到很多新手和部分老手的共識(shí),但是這其實(shí)并不完全正確,這涉及到j(luò)s的編譯過(guò)程,這方面我們稍后會(huì)聊到,先考慮下面代碼: window.onload = function(){...

    curlyCheng 評(píng)論0 收藏0
  • ES6 變量作用域與提升:變量的生命周期詳解

    摘要:不同的是函數(shù)體并不會(huì)再被提升至函數(shù)作用域頭部,而僅會(huì)被提升到塊級(jí)作用域頭部避免全局變量在計(jì)算機(jī)編程中,全局變量指的是在所有作用域中都能訪問(wèn)的變量。 ES6 變量作用域與提升:變量的生命周期詳解從屬于筆者的現(xiàn)代 JavaScript 開(kāi)發(fā):語(yǔ)法基礎(chǔ)與實(shí)踐技巧系列文章。本文詳細(xì)討論了 JavaScript 中作用域、執(zhí)行上下文、不同作用域下變量提升與函數(shù)提升的表現(xiàn)、頂層對(duì)象以及如何避免創(chuàng)建...

    lmxdawn 評(píng)論0 收藏0
  • 性能優(yōu)化詳解

    摘要:幾個(gè)月前面試的時(shí)候問(wèn)我性能優(yōu)化我可能會(huì)開(kāi)始背誦雅虎軍規(guī),加點(diǎn),代碼層面稍稍講點(diǎn),現(xiàn)在系統(tǒng)的梳理下性能優(yōu)化的方方面面本文涉及方面有代碼優(yōu)化網(wǎng)絡(luò)請(qǐng)求過(guò)程角度入手解析建立鏈接網(wǎng)絡(luò)往返時(shí)延數(shù)據(jù)傳輸網(wǎng)絡(luò)問(wèn)題角度入手請(qǐng)求數(shù)量流量性能優(yōu)化測(cè)試工具代碼優(yōu)化 幾個(gè)月前面試的時(shí)候問(wèn)我性能優(yōu)化我可能會(huì)開(kāi)始背誦雅虎軍規(guī),加點(diǎn)webp,代碼層面稍稍講點(diǎn),現(xiàn)在系統(tǒng)的梳理下性能優(yōu)化的方方面面 本文涉及方面有: 代...

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

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

0條評(píng)論

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