真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaScript中equality(==)怎么用

這篇文章主要介紹了JavaScript中equality(==)怎么用,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、張灣網(wǎng)站維護、網(wǎng)站推廣。

神奇之處在哪里

最近負(fù)責(zé)的項目有涉及到前端的,所以嘗試性的寫了寫js。在處理一個字段非空值的時候,用了 tagert_value == ''來進(jìn)行判斷,然后發(fā)生了一件非常奇怪的事情,有用戶反饋,自己的target_value = 0的時候,非空值校驗不通過。在調(diào)試問題的時候,在console狀態(tài)欄中做了如下嘗試:

> 0 == ''
< true

我似乎知道問題出在哪里了。。。沒有了解清楚 == 的判斷邏輯,所以我打算找來官方的文檔瞅瞅。

官方解釋

Equality (==, !=)

1、If the types of the two expressions are different, attempt to convert them to string, number, or Boolean.

2、NaN is not equal to anything including itself.

3、Negative zero equals positive zero.

4、null equals both null and undefined.

5、Values are considered equal if they are identical strings, numerically equivalent numbers, the same object, identical Boolean values, or (if different types) they can be coerced into one of these situations.

6、Every other comparison is considered unequal.

查看了官方關(guān)于equality的解釋,看到第一個就知道為什么結(jié)果會是true了。如果表達(dá)式兩邊的類型不一致,比較方法會先嘗試將他們轉(zhuǎn)換為string、number、Boolean,然后在進(jìn)行比較(相等的條件:同樣的string、數(shù)學(xué)上相等的數(shù)字、相同的object、相同的布爾值)。
看到這里,基本清楚了,在比較 0 == ’‘的時候先進(jìn)行了類型裝換,那我們來看一下到底是轉(zhuǎn)換的誰???

> Number('')
< 0

> var b= ''
> b.toString()
<'0'

非常明顯了,int == string 的時候是先將string裝換為對應(yīng)的int值,然后進(jìn)行比較。

如何避免嘞?

下面強烈介紹 === (strict equality)。嚴(yán)格等于,看著是不是非常厲害呀。人家的官方叫法是Identity(===. !==)。Identity 有點類型懸疑破案的感覺了。
看一下官方的介紹:

Identity (===. !==)
These operators behave identically to the equality operators except no type conversion is done, and the types must be the same to be considered equal.

在日常開發(fā)中,如果沒法保證比較表達(dá)式兩遍的變量的類型一致,建議使用 Identify(===)來比較是否相等。如果變量類型一致,就可以直接使用Equality(==)來比較了。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享JavaScript中equality(==)怎么用內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!


網(wǎng)站名稱:JavaScript中equality(==)怎么用
標(biāo)題URL:http://weahome.cn/article/pjsgpe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部