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

資訊專欄INFORMATION COLUMN

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

anyway / 672人閱讀

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

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

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

答案是 : undefined
如果對這個答案的得來明白的清清楚楚的就不用再往下看了。

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

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

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

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

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

接下來是多個賦值運算符的運算,

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

那么

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

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

這樣更直觀一點

 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;    // 這個 相當(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    piapia 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<