日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

判斷兩串字符串相等的方法 js中判斷字符串相等的函數(shù)( 二 )


判斷兩串字符串相等的方法 js中判斷字符串相等的函數(shù)


有些開發(fā)者認(rèn)為,最好永遠(yuǎn)都不要使用相等操作符 。全等操作符的結(jié)果更容易預(yù)測,并且因?yàn)闆]有隱式轉(zhuǎn)換,全等比較的操作會(huì)更快 。
同值相等同值相等解決了最后一個(gè)用例:確定兩個(gè)值是否在任何情況下功能上是相同的 。(這個(gè)用例演示了里氏替換原則的實(shí)例 。)當(dāng)試圖對(duì)不可變(immutable)屬性修改時(shí)發(fā)生出現(xiàn)的情況:
判斷兩串字符串相等的方法 js中判斷字符串相等的函數(shù)


Object.defineProperty 在試圖修改不可變屬性時(shí),如果這個(gè)屬性確實(shí)被修改了則會(huì)拋出異常,反之什么都不會(huì)發(fā)生 。例如如果 v 是 -0 ,那么沒有發(fā)生任何變化,所以也不會(huì)拋出任何異常 。但如果 v 是 +0 ,則會(huì)拋出異常 。不可變屬性和新設(shè)定的值使用 same-value 相等比較 。同值相等由 Object.is 方法提供 。
零值相等與同值相等類似,不過會(huì)認(rèn)為 +0 與 -0 相等 。
理解相等比較的模型在 ES2015 以前,你可能會(huì)說雙等和三等是“擴(kuò)展”的關(guān)系 。比如有人會(huì)說雙等是三等的擴(kuò)展版,因?yàn)樗幚砣人龅?,還做了類型轉(zhuǎn)換 。例如 6 == “6”。反之另一些人可能會(huì)說三等是雙等的擴(kuò)展,因?yàn)樗€要求兩個(gè)參數(shù)的類型相同,所以增加了更多的限制 。怎樣理解取決于你怎樣看待這個(gè)問題 。
但是這種比較的方式?jīng)]辦法把 ES2015 的 Object.is 排列到其中 。因?yàn)?Object.is 并不比雙等更寬松,也并不比三等更嚴(yán)格,當(dāng)然也不是在他們中間 。從下表中可以看出,這是由于 Object.is 處理 NaN 的不同 。注意假如 Object.is(NaN, NaN) 被計(jì)算成 false ,我們就可以說他比三等更為嚴(yán)格,因?yàn)樗梢詤^(qū)分 -0 和 +0。但是對(duì) NaN 的處理表明,這是不對(duì)的 。Object.is 應(yīng)該被認(rèn)為是有其特殊的用途,而不應(yīng)說他和其他的相等更寬松或嚴(yán)格 。
判斷兩串字符串相等的方法 js中判斷字符串相等的函數(shù)


推薦閱讀