摘要:不信,那我們來兩個(gè)代表示例看看基本類型引用類型它們的引用地址相同看起來好像是沒什么問題的??偨Y(jié)任何時(shí)候任何一個(gè)問題都不要小看它,拘束于表面,因?yàn)樗S時(shí)都會是一個(gè)坑,讓你跳進(jìn)去,認(rèn)真點(diǎn)總不會有壞處的。
某天,和某同事交流技術(shù),他提到了一個(gè)問題:在js中,如果一個(gè)變量賦值給另一個(gè)變量,那么他們一定相等嗎?為什么?。然后,我脫口而出,是相等,這無毛病。變量賦值本身就只是一個(gè)定義好的變量的副本,他們相等是沒問題的,即便是引用類型的數(shù)據(jù)對象,在賦值的時(shí)候保持著內(nèi)存的同一引用,它們當(dāng)然也相等啊。當(dāng)然注意這里是相等,不是全等。即"=="而非"===",所以沒有什么類型轉(zhuǎn)換的討論。不信,那我們來兩個(gè)代表示例看看:
//基本類型 var a; var b = a; b == a;//true //引用類型 var a = {}; var b = a; b == a;//true,它們的引用地址相同
看起來好像是沒什么問題的。然而事實(shí)真的是這樣嗎?
我轉(zhuǎn)念一想,不對啊,有這么簡單的問題?同事再給我一個(gè)例子,狠狠的打擊了我,臥槽,還可以這樣?
js數(shù)據(jù)當(dāng)中還有一個(gè)特殊的值,那就是NaN。
var a = NaN; var b = a; b == a;//猜猜這里是啥
答案真的是出乎你的意料,當(dāng)然是false,也就是不相等啦。
不帶這么玩的吧?
后面腦袋一閃,原來如此,這么低級的錯(cuò)誤都犯,NaN雖然是一個(gè)數(shù)值型的值,但是它并不是一個(gè)確切的值,所以NaN !== NaN。也就是說,變量的賦值也不會改變它們的不等性呢。
還可以這么玩。
ps:總結(jié):任何時(shí)候任何一個(gè)問題都不要小看它,拘束于表面,因?yàn)樗S時(shí)都會是一個(gè)坑,讓你跳進(jìn)去,認(rèn)真點(diǎn)總不會有壞處的。
鄙人創(chuàng)建了一個(gè)QQ群,供大家學(xué)習(xí)交流,希望和大家合作愉快,互相幫助,交流學(xué)習(xí),以下為群二維碼:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/109491.html
摘要:最近真是忙的吐血。。。上篇寫的是直接在爬蟲中使用,這樣不是很好,下使用才是正經(jīng)方法。 最近真是忙的吐血。。。 上篇寫的是直接在爬蟲中使用mongodb,這樣不是很好,scrapy下使用item才是正經(jīng)方法。在item中定義需要保存的內(nèi)容,然后在pipeline處理item,爬蟲流程就成了這樣: 抓取 --> 按item規(guī)則收集需要數(shù)據(jù) -->使用pipeline處理(存儲等) 定義it...
今天我們來聊聊最近引發(fā)熱議的Adobe服務(wù)條款變更。作為創(chuàng)意軟件行業(yè)的巨頭,Adobe在過去30多年中一直是設(shè)計(jì)師和藝術(shù)家們的首選工具。它旗下的Photoshop、Illustrator等軟件幾乎是每個(gè)創(chuàng)意工作者的必備。而Firefly是Adobe推出的生成式AI,用于自動化創(chuàng)意內(nèi)容的生成和編輯。今年二月,Adobe對其服務(wù)條款悄悄進(jìn)行了變更,表示可以通過自動和手動方法訪問用戶內(nèi)容,并使用機(jī)器學(xué)習(xí)...
小編寫這篇文章的主要目的,是給大家介紹一下自動化辦公,能夠大大的其提高辦公的效率。那么,怎么樣才能夠生成日報(bào)呢?下面給大家詳細(xì)的解答下?! ∠旅嫖覀兺ㄟ^一個(gè)補(bǔ)寫銷售日報(bào)的案例,展示一下Python自動化辦公的優(yōu)勢。本文簡化了案例的流程?! ⌒枨笤斀狻 ∨笥训男枨笫沁@樣的,他們平時(shí)的銷售數(shù)據(jù)是記錄在Excel上,匯總后會按照部門進(jìn)行統(tǒng)計(jì)。但是今年年初時(shí),領(lǐng)導(dǎo)突然要求寫日報(bào),大家寫了一個(gè)月發(fā)現(xiàn)并不...
小編寫這篇文章的一個(gè)主要目的,就是來給大家去做一個(gè)解答,解答的內(nèi)容主要是Python常見的一些bug和異常問題,那么,遇到這些問題的時(shí)候,我們需要找到好辦法去進(jìn)行處理。那么,小編這邊就給大家做了一個(gè)總結(jié),總結(jié)常見的異常問題,大家好好閱讀哦。 異常處理介紹 在實(shí)際的開發(fā)中,我們經(jīng)常遇到一些報(bào)錯(cuò)的例子,在pycharm的顯示頁面下,當(dāng)我們看到一串串的紅色的英文字母的時(shí)候,就是出現(xiàn)異常,這個(gè)時(shí)候...
在使用python的時(shí)候,經(jīng)常性的會遇到各種各樣的問題,比如出現(xiàn)異常的時(shí)候,怎么才能夠跳過其異常繼續(xù)執(zhí)行呢?下面就給大家詳細(xì)的解答下。 python如何跳過異常繼續(xù)執(zhí)行 下面有兩種解決方法 第一種是類似if…else…;另外一種是使用語句來實(shí)現(xiàn)繼續(xù)執(zhí)行; 方法一:使用try…except…語句,類似于if…else…,可以跳過異常繼續(xù)執(zhí)行程序,這是Python的優(yōu)勢 用法如下: 方...
閱讀 3027·2021-10-08 10:18
閱讀 743·2019-08-30 15:54
閱讀 1073·2019-08-29 18:43
閱讀 2452·2019-08-29 15:33
閱讀 1312·2019-08-29 15:29
閱讀 1613·2019-08-29 13:29
閱讀 1034·2019-08-26 13:46
閱讀 1709·2019-08-26 11:55