亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

連續(xù)賦值(從堆棧角度解析) a.x = a = {n:2}

canger / 1164人閱讀

摘要:連續(xù)賦值今天看到一個面試題,一直想把這個題目解析更加直觀化,就跟看小人書一樣,看圖就能明白其中的原理,所以用做了幾張圖。

連續(xù)賦值

今天看到一個面試題,一直想把這個題目解析更加直觀化,就跟看小人書一樣,看圖就能明白其中的原理,所以用PPT做了幾張圖。

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

這塊最難理解的就是這塊

a.x = a = {n: 2}

接下來我們從以下幾點分析以下:

運算符優(yōu)先級;

`我們知道運算符的優(yōu)先級決定了表達式中運算執(zhí)行的先后順序,優(yōu)先級高的運算符最先被執(zhí)行。`
賦值運算順序是從右往左的,不過由于“.”是優(yōu)先級最高的運算符,所以這行代碼先“計算”了a.x;

優(yōu)先級 運算類型 關(guān)聯(lián)性 運算符
19 成員訪問 從左到右 .
3 賦值 從右到左 … = …

鏈接: 運算符優(yōu)先級

堆棧圖來看怎么賦值操作的;

var a={n:1};  a指向了堆內(nèi)存中的對象{n:1},  var b=a; a賦予給b的時候傳的是棧中的地址(相當于新建了一個不同名“指針”) ,而不是堆內(nèi)存中的對象。

a.x = a = {n: 2} ;前面說了“.”的優(yōu)先級大于賦值運算符的優(yōu)先級,所以先來看a.x;a.x實際上是未定義的;

再來看賦值運算符的從右向左解析;a = {n : 2},a被從新賦值,指向了一個新對象,而此時a.x已經(jīng)先行執(zhí)行完,其實指是{ n:1,x: undefined } 這個對象,接下來看左邊的等號,這個對象的x值 = 等號右邊計算的結(jié)果(a={n:2},所以此時b的值通過箭頭可以看出等于{n:1,x:{n:2}},a的值指向新對象{n:2}

以上如有出入,請多指正~~~

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

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

相關(guān)文章

  • js中的值類型、引用類型、堆、棧、函數(shù)參數(shù)傳遞方式、連續(xù)賦值等概念的學習

    摘要:值類型基本類型和棧內(nèi)存值類型也稱為原始數(shù)據(jù)或原始值這類值存儲在棧內(nèi)存中基本類型的值不可以修改。目前中的基本類型一共有六種。堆的使用規(guī)則當創(chuàng)建數(shù)組時,就會在堆內(nèi)存中創(chuàng)建一個數(shù)組對象,并且在棧內(nèi)存中創(chuàng)建一個對數(shù)組的引用。 值類型(基本類型)和棧內(nèi)存 值類型也稱為原始數(shù)據(jù)或原始值(primitive value).這類值存儲在棧(stack)內(nèi)存中, 基本類型的值不可以修改。每當我們定義一個...

    hizengzeng 評論0 收藏0
  • JS基礎(chǔ)-連續(xù)賦值

    摘要:引子今天同事聊天群里發(fā)現(xiàn)了一道面試題基礎(chǔ),但答案基本沒有幾個能答對并且理解的很透徹的。但是此時這個內(nèi)存區(qū)并沒有被回收因為變量的指針依然指向它。并且因為之前就聲明了屬性所以該內(nèi)存區(qū)增加了屬性。那么屬性指向哪兒呢它的返回值就是的內(nèi)存區(qū)。 引子 今天同事聊天群里發(fā)現(xiàn)了一道面試題(js基礎(chǔ)),但答案基本沒有幾個能答對并且理解的很透徹的。 問題 var a = {n: 1}; var b = ...

    Youngdze 評論0 收藏0
  • 【進階1-4期】JavaScript深入之帶你走進內(nèi)存機制

    摘要:引擎對堆內(nèi)存中的對象進行分代管理新生代存活周期較短的對象,如臨時變量字符串等。內(nèi)存泄漏對于持續(xù)運行的服務(wù)進程,必須及時釋放不再用到的內(nèi)存。 (關(guān)注福利,關(guān)注本公眾號回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實戰(zhàn)、面試指導) 本周正式開始前端進階的第一期,本周的主題是調(diào)用堆棧,今天是第4天。 本計劃一共28期,每期重點攻克一個面試重難點,如果你還不了解本進階計劃...

    不知名網(wǎng)友 評論0 收藏0
  • 【半月刊 4】前端高頻面試題及答案匯總

    摘要:引言半月刊第四期來啦,這段時間新增了道高頻面試題,今天就把最近半月匯總的面試題和部分答案發(fā)給大家,幫助大家查漏補缺,歡迎加群互相學習。更多更全的面試題和答案匯總在下面的項目中,點擊查看。引言 半月刊第四期來啦,這段時間 Daily-Interview-Question 新增了 14 道高頻面試題,今天就把最近半月匯總的面試題和部分答案發(fā)給大家,幫助大家查漏補缺,歡迎 加群 互相學習。 更多更...

    hankkin 評論0 收藏0
  • 由ES規(guī)范學JavaScript(二):深入理解“連等賦值”問題

    摘要:有這樣一個熱門問題其實這個問題很好理解,關(guān)鍵要弄清下面兩個知識點引擎對賦值表達式的處理過程賦值運算的右結(jié)合性一賦值表達式形如的表達式稱為賦值表達式。賦值表達式是右結(jié)合的。 有這樣一個熱門問題: var a = {n: 1}; var b = a; a.x = a = {n: 2}; alert(a.x); // --> undefined alert(b.x); // --> {n: ...

    JasonZhang 評論0 收藏0

發(fā)表評論

0條評論

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