通過(guò)實(shí)例了解JS 連續(xù)賦值
這篇文章主要介紹了通過(guò)實(shí)例了解JS 連續(xù)賦值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
問(wèn)題:
var a = {n: 1}; var b = a; a.x = a = {n: 2}; console.log(a.x); //undfined console.log(b.x); //{a:2}
根據(jù)js引擎語(yǔ)法解析,會(huì)先去從左到右尋找有沒(méi)有未聲明的變量,如果有就把該變量提升至作用域頂部并聲明該變量。那么恭喜js引擎他找到a.x這個(gè)屬性沒(méi)有聲明,那么他會(huì)在{n: 1}這個(gè)內(nèi)存區(qū)聲明一個(gè)x屬性等待賦值!
語(yǔ)法解析完成后,開(kāi)始進(jìn)行運(yùn)算(ps:賦值運(yùn)算),首先將a變量的指針指向了一個(gè)新的內(nèi)存區(qū){n: 2},那么a變量脫離了對(duì)內(nèi)存區(qū){n: 1}的引用關(guān)系。
但是此時(shí){n:1 }這個(gè)內(nèi)存區(qū)并沒(méi)有被GC回收因?yàn)閎變量的指針依然指向它。并且因?yàn)橹熬吐暶髁藊屬性所以該內(nèi)存區(qū)
增加了X屬性。那么X屬性指向哪兒呢?a.x = a = {n: 2}它的返回值就是{n: 2}的內(nèi)存區(qū)。
那么根據(jù)圖上可得:
a.x 不存在,故: => undefined
b.x => {n: 2}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js中substr,substring,indexOf,lastIndexOf,split,replace的用法詳解
這篇文章主要介紹了js中substr,substring,indexOf,lastIndexOf,split,replace的用法詳解的相關(guān)資料,需要的朋友可以參考下2015-11-11JavaScript 瀏覽器對(duì)象模型BOM原理與常見(jiàn)用法實(shí)例分析
這篇文章主要介紹了JavaScript 瀏覽器對(duì)象模型BOM原理與常見(jiàn)用法,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript瀏覽器對(duì)象模型BOM基本概念、原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2019-12-12JS實(shí)現(xiàn)圖片旋轉(zhuǎn)動(dòng)畫(huà)效果封裝與使用示例
這篇文章主要介紹了JS實(shí)現(xiàn)圖片旋轉(zhuǎn)動(dòng)畫(huà)效果封裝與使用,結(jié)合實(shí)例形式分析了JavaScript實(shí)現(xiàn)圖片元素旋轉(zhuǎn)的相關(guān)功能代碼的封裝與使用操作技巧,需要的朋友可以參考下2018-07-07Javascript拖拽系列文章2之offsetLeft、offsetTop、offsetWidth、offsetHei
Javascript拖拽用到的一些關(guān)于位置定位的一些參數(shù)2008-09-09CSS3+JavaScript實(shí)現(xiàn)翻頁(yè)幻燈片效果
這篇文章主要介紹了CSS3+JavaScript實(shí)現(xiàn)翻頁(yè)幻燈片效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06element-ui 上傳圖片后標(biāo)注坐標(biāo)點(diǎn)
有個(gè)組件庫(kù)的名稱叫做element-ui,基于Vue2.0開(kāi)發(fā),提供了豐富的PC端組件,本文通過(guò)實(shí)例代碼給大家介紹element-ui 上傳圖片后標(biāo)注坐標(biāo)點(diǎn)的示例代碼,感興趣的朋友跟隨小編一起看看吧2021-07-07require導(dǎo)入module.exports 或 exports導(dǎo)出的使用方法
module.exports用于導(dǎo)出整個(gè)模塊的內(nèi)容,可以通過(guò)賦值給 module.exports 導(dǎo)出一個(gè)對(duì)象、函數(shù)或值,導(dǎo)出的內(nèi)容可以被其他模塊通過(guò)require 導(dǎo)入,本文給大家介紹require導(dǎo)入module.exports 或 exports導(dǎo)出的使用,感興趣的朋友一起看看吧2023-11-11使用uniapp打包微信小程序時(shí)主包和vendor.js過(guò)大解決(uniCloud的插件分包)
每個(gè)使用分包小程序必定含有一個(gè)主包,所謂的主包,即放置默認(rèn)啟動(dòng)頁(yè)面/TabBar頁(yè)面,以及一些所有分包都需用到公共資源/JS 腳本,下面這篇文章主要給大家介紹了關(guān)于使用uniapp打包微信小程序時(shí)主包和vendor.js過(guò)大解決的相關(guān)資料,,需要的朋友可以參考下2023-02-02