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

資訊專欄INFORMATION COLUMN

控制臺詭異錄之展開與縮略不同

opengps / 2926人閱讀

摘要:問題復(fù)現(xiàn)最近朋友發(fā)給我這樣的一個(gè)串代碼朋友說,這個(gè)輸出不正確。我表示不信,就試了下從結(jié)果看,沒毛病啊。朋友說,你展開看看,一看果然有問題縮略狀態(tài)的顯示與展開的顯示不同問題思考這個(gè)問題的表現(xiàn)是縮略狀態(tài)下顯示原數(shù)組,展開狀態(tài)下顯示排序后的數(shù)組。

問題復(fù)現(xiàn)

最近朋友發(fā)給我這樣的一個(gè)串代碼:

var arr = [1, 4, 2, 3 ];
console.log(arr);
arr.sort();

朋友說,這個(gè)輸出不正確。我表示不信,就試了下:

從結(jié)果看,沒毛病啊。朋友說,你展開看看,一看果然有問題

縮略狀態(tài)的顯示與展開的顯示不同?。?!

問題思考

這個(gè)問題的表現(xiàn)是:

縮略狀態(tài)下顯示原數(shù)組 [1, 4, 2, 3 ],展開狀態(tài)下顯示排序后的數(shù)組[1, 2, 3, 4 ]

這里的不一致導(dǎo)致我們比較困惑:

console.log(arr)打印的數(shù)組到底是原數(shù)組還是排序后的數(shù)組?

我們知道的是JS代碼是按照順序執(zhí)行的,按道理說應(yīng)該打印[1, 4, 2, 3 ],也就是說縮略狀態(tài)的顯示是符合常理的。通過下面的代碼我們可以佐證:

var arr = [1, 4, 2, 3 ];
console.log(arr.toString()); // 1,4,2,3
arr.sort();

但是為什么展開后的數(shù)組卻是排序后的呢?
我們思考3秒鐘
1...
2...
3...
我個(gè)人理解這個(gè)問題是這樣的:
Chrome的展開是一個(gè)點(diǎn)擊事件,也就是說這是一個(gè)異步,等你點(diǎn)擊的時(shí)候arr.sort()
已經(jīng)執(zhí)行完畢了,這時(shí)候點(diǎn)擊展開arr,其實(shí)展開的就是排序后的數(shù)組(因?yàn)閍rr是引用類型的)。這樣,就出現(xiàn)了上面這個(gè)問題。
除數(shù)組外,對象也存在這個(gè)問題,換句話說,這個(gè)引用類型的應(yīng)該也都存在這個(gè)問題。
至此,這個(gè)問題算是有了解釋。
以上,個(gè)人理解,如果你有更好的解釋,歡迎提出。

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

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

相關(guān)文章

  • 一個(gè)“詭異”的console.log()結(jié)果

    摘要:一個(gè)詭異的結(jié)果在前端開發(fā)中,我們都少不了用來輸出變量和調(diào)試。再看下面一個(gè)例子圖中的結(jié)果,我是在執(zhí)行了這句話之后才點(diǎn)擊的小三角,然而結(jié)果卻沒有變成詭異結(jié)果的樣子。 一個(gè)詭異的結(jié)果 在前端開發(fā)中,我們都少不了用console.log來輸出變量和調(diào)試??墒窃谑褂盟倪^程中,偶爾也會(huì)出現(xiàn)一些讓我們很費(fèi)解的行為,如下圖: showImg(https://segmentfault.com/img/...

    pkwenda 評論0 收藏0
  • 關(guān)于JavaScript函數(shù)柯里化問題探索

    摘要:函數(shù)柯里化關(guān)于函數(shù)柯里化的問題最初是在忍者秘籍中講閉包的部分中看到的,相信很多同學(xué)見過這樣一道和柯里化有關(guān)的面試題實(shí)現(xiàn)一個(gè)函數(shù),使得如下斷言能夠能夠通過簡單說就是實(shí)現(xiàn)一個(gè)求值函數(shù),能夠?qū)⑺袇?shù)相加得出結(jié)果。方法返回一個(gè)表示該對象的字符串。 函數(shù)柯里化 ??關(guān)于函數(shù)柯里化的問題最初是在《JavaScript忍者秘籍》中講閉包的部分中看到的,相信很多同學(xué)見過這樣一道和柯里化有關(guān)的面試題:...

    vboy1010 評論0 收藏0
  • 探秘JS的異步單線程

    摘要:對于通常的特別是那些具備并行計(jì)算多線程背景知識的來講,的異步處理著實(shí)稱得上詭異。而這個(gè)詭異從結(jié)果上講,是由的單線程這個(gè)特性所導(dǎo)致的。的特性之一是單線程,也即是從頭到尾,都在同一根線程下運(yùn)行。而這兩者的不同,便在于單線程和多線程上。 對于通常的developer(特別是那些具備并行計(jì)算/多線程背景知識的developer)來講,js的異步處理著實(shí)稱得上詭異。而這個(gè)詭異從結(jié)果上講,是由js...

    cooxer 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<