摘要:最近發(fā)現(xiàn)很多同學(xué)的博客里都會(huì)解釋連續(xù)賦值問題,各種概念輩出,特別是對(duì)于不理解的同學(xué)來(lái)說,更加一頭霧水,我這里做個(gè)簡(jiǎn)單解釋,也許不懂的一看就明白了。
最近發(fā)現(xiàn)很多同學(xué)的博客里都會(huì)解釋js連續(xù)賦值問題,各種概念輩出,特別是對(duì)于不理解的同學(xué)來(lái)說,更加一頭霧水,我這里做個(gè)簡(jiǎn)單解釋,也許不懂的一看就明白了。
先拋出一個(gè)問題:
var a = {c:1} //第一步 var b = a; //第二步 a.x = b.y = b = {c:2} //第三步 console.log(a) // {c:1,x:{c:2},y:{c:2}} console.log(b) // {c:2}
第一步,第二步相信大家都很好理解,但是第三步是什么鬼,現(xiàn)實(shí)中基本上很難遇到,而且也不推薦這么寫,好好的賦值不行么,干嘛要搞事情?對(duì),話雖這么說,但是這畢竟是考驗(yàn)大家對(duì)賦值的理解嘛。在拆解以上問題的時(shí)候,大伙兒要先明白兩個(gè)概念
1、引用數(shù)據(jù)細(xì)節(jié)給一個(gè)變量賦值的時(shí)候,若“=”右側(cè)是基本數(shù)據(jù)類型(Boolean String Number Null Undefined),就是真的“賦值”了;若“=”右側(cè)是復(fù)合型數(shù)據(jù)(Array Object),則是數(shù)據(jù)的引用,也就是“指向”不一樣而已
2、賦值數(shù)據(jù)可拆分成兩步例如:var d = 1 其實(shí)相當(dāng)于 var d;d = 1;
理解以上兩個(gè)概念后,我們以圖示演示第一步、第二步執(zhí)行完畢的結(jié)果
執(zhí)行到第二步是以上結(jié)果,相信不難理解。
然后我們?cè)賹⒌谌讲鸾鉃椴襟E甲、乙、丙
a.x = undefined b.y = undefined
圖示
這個(gè)時(shí)候b的指向發(fā)生了變化
b = {c:2}
圖示:
最后將b指向的內(nèi)容分別賦值給a.x a.y。這個(gè)時(shí)候問題的難點(diǎn)就來(lái)了。不是b.y么,為毛變成a.y了? 逗我玩呢是不?我們往上看,步驟乙,這個(gè)時(shí)候a和b都是指向同一個(gè)內(nèi)存地址,誰(shuí)的x誰(shuí)的y沒有區(qū)別,大家是好兄弟,共用的。
a.x = {c:2} a.y = {c:2}
圖示:
是不是很簡(jiǎn)單?如果你還是不理解,那么哥只能給你一個(gè)建議:吃飯睡覺上廁所,夜里別想妹子,只要腦袋是清醒的,就思考這個(gè)問題。不用兩天,你肯定可以搞懂。
PS:還搞不懂咋整?還搞不懂你打我(打不到)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/92758.html
摘要:本文章記錄本人在深入學(xué)習(xí)條件表達(dá)式中看書理解到的一些東西,并且整理記錄下來(lái),加深記憶和方便之后的復(fù)習(xí)。表達(dá)式的值具有線性特征,如對(duì)連續(xù)的區(qū)間值進(jìn)行判斷。 本文章記錄本人在深入學(xué)習(xí)js條件表達(dá)式中看書理解到的一些東西,并且整理記錄下來(lái),加深記憶和方便之后的復(fù)習(xí)。主要是深入學(xué)習(xí)if else和switch語(yǔ)句的一些性能優(yōu)化和邏輯思維。 提高條件性能的策略 js的條件表達(dá)式和其他語(yǔ)言一樣...
摘要:優(yōu)點(diǎn)簡(jiǎn)單粗暴,直接調(diào)用缺點(diǎn)兼容性不太好,不過的話都支持你可能不知道的前端知識(shí)點(diǎn)對(duì)象和的方法。下面從深層次剖析一下對(duì)于開始的兩個(gè)賦值語(yǔ)句,,,相當(dāng)于,而顯然等于。同理可以分析第三個(gè)賦值語(yǔ)句 有些東西很好用,但是你未必知道;有些東西你可能用過,但是你未必知道原理。 實(shí)現(xiàn)一個(gè)目的有多種途徑,俗話說,條條大路通羅馬。很多內(nèi)容來(lái)自平時(shí)的一些收集以及過往博客文章底下的精彩評(píng)論,收集整理拓展一波,發(fā)...
摘要:優(yōu)點(diǎn)簡(jiǎn)單粗暴,直接調(diào)用缺點(diǎn)兼容性不太好,不過的話都支持你可能不知道的前端知識(shí)點(diǎn)對(duì)象和的方法。下面從深層次剖析一下對(duì)于開始的兩個(gè)賦值語(yǔ)句,,,相當(dāng)于,而顯然等于。同理可以分析第三個(gè)賦值語(yǔ)句 有些東西很好用,但是你未必知道;有些東西你可能用過,但是你未必知道原理。 實(shí)現(xiàn)一個(gè)目的有多種途徑,俗話說,條條大路通羅馬。很多內(nèi)容來(lái)自平時(shí)的一些收集以及過往博客文章底下的精彩評(píng)論,收集整理拓展一波,發(fā)...
摘要:優(yōu)點(diǎn)簡(jiǎn)單粗暴,直接調(diào)用缺點(diǎn)兼容性不太好,不過的話都支持你可能不知道的前端知識(shí)點(diǎn)對(duì)象和的方法。下面從深層次剖析一下對(duì)于開始的兩個(gè)賦值語(yǔ)句,,,相當(dāng)于,而顯然等于。同理可以分析第三個(gè)賦值語(yǔ)句 有些東西很好用,但是你未必知道;有些東西你可能用過,但是你未必知道原理。 實(shí)現(xiàn)一個(gè)目的有多種途徑,俗話說,條條大路通羅馬。很多內(nèi)容來(lái)自平時(shí)的一些收集以及過往博客文章底下的精彩評(píng)論,收集整理拓展一波,發(fā)...
閱讀 6965·2021-09-22 15:08
閱讀 1975·2021-08-24 10:03
閱讀 2482·2021-08-20 09:36
閱讀 1364·2020-12-03 17:22
閱讀 2504·2019-08-30 15:55
閱讀 940·2019-08-29 16:13
閱讀 3089·2019-08-29 12:41
閱讀 3283·2019-08-26 12:12