欧美亚洲大片-国产免费成人在线视频-国产成人8x人在线视频软件-日韩亚洲欧美中文字幕-97伦伦午夜电影理伦片-亚洲综合精品视频-曰本女人牲交高潮视频-久久久精品欧美-天天干天天操天天碰-精品国产乱码久久久久久1区2区-黄色一级免费片-在线免费欧美-国产成人精品在线视频-精人妻一区二区三区-香蕉视频2020-综合久久99-欧美日韩亚洲国产综合

十年專注于品牌網(wǎng)站建設 十余年專注于網(wǎng)站建設_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡微信公眾號 掃一掃關注
小程序
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關注百恒網(wǎng)絡微信公眾號
掃一掃打開百恒網(wǎng)絡微信小程序

百恒網(wǎng)絡

南昌百恒網(wǎng)絡

ECMAScript相等和不相等以及全等和不全等規(guī)則及使用方法

百恒網(wǎng)絡 2012-02-20 5911

確定兩個變量是否相等是編程中的一個非常重要的操作。在比較字符串、數(shù)值和布爾值的相等性時,問題還比較簡單。但在涉及到對象的比較時,問題就變得復雜了。

最早的ECMAScript中相等和不等操作符會在執(zhí)行比較之前,先將對象轉(zhuǎn)換成相似的類型。后來,有人提出了這種轉(zhuǎn)換到底是否合理的質(zhì)疑:最后,ECMAScript的解決方案就是提供兩組操作符:相等和不相等——先轉(zhuǎn)換再比較,全等和不全等——僅比較而不轉(zhuǎn)換。

1.相等和不相等

ECMAScript中的相等操作符由兩個等于號(==)表示,如果兩個操作數(shù)相等,則返回true。而不相等操作符由嘆號后跟等于號(!-)表示,如果兩個操作數(shù)不相等,則返回true。這兩個操作符都會先轉(zhuǎn)換操作數(shù)(通常稱為強制轉(zhuǎn)型),然后再比較它們的相等性。

在轉(zhuǎn)換不同的數(shù)據(jù)類型時,相等和不相等操作符遵循下列基本規(guī)則:

◎如果有一個操作數(shù)是布爾值,則在比較相等性之前先將其轉(zhuǎn)換為數(shù)值-false轉(zhuǎn)換為0,而true轉(zhuǎn)換為l;

◎如果一個操作數(shù)是字符串,另一個操作數(shù)是數(shù)值,在比較相等性之前先將字符串轉(zhuǎn)換為數(shù)值;

◎如果一個操作數(shù)是對象,另一個操作數(shù)不是,則調(diào)用對象的valueOf()方法,用得到的原始值按照前面的規(guī)則進行比較;

這兩個操作符在進行比較時則要遵循下列規(guī)則。

◎null和undefined是相等的。

◎要比較相等性之前,不能將null和unde fined轉(zhuǎn)換成其他住何值。

◎如果有一個操作數(shù)是NaN,則相等操作符返回false,而不相等操作符返回true。重要提示:

即使兩個操作數(shù)都是NaN,相等操作符也返回false;因為按照規(guī)則,NaN不等于NaN。

◎如果兩個操作數(shù)都是對象,則比較它們是不是同一個對象。如果兩個操作數(shù)都指向同一個對象,

則相等操作符返回true;否則,返回false。

下表列出了一些特殊情況及比較結(jié)果:

表達式值表達式值

null == undefinedtruetrue == 1true

"NaN" == NaNfalsetrue == 2false

5 == NaNfalseundefined == 0false

NaN == NaNfalsenull == 0false

NaN != NaNtrue"5" == 5true

false == 0true

2.全等和不全等

除了在比較之前不轉(zhuǎn)換操作數(shù)之外,全等和不全等操作符與相等和不相等操作符沒有什么區(qū)別。全等操作符由3個等于號(一)表示,它只在兩個操作數(shù)未經(jīng)轉(zhuǎn)換就相等的情況下返回true,如下 面的例子所示:

var resultl=(”55”==55); //true,因為轉(zhuǎn)換后相等

var result2 2(”55”===55); //false,因為不同的數(shù)據(jù)類型不相等

在這個例子中,第一個比較使用的是相等操作符比較字符串”55”和數(shù)值55,結(jié)果返回了true。

如前所述,這是因為字符串”55”先被轉(zhuǎn)換成了數(shù)值55,然后再與另一個數(shù)值55進行比較。第二個比較使用了全等搡作符以不轉(zhuǎn)換數(shù)值的方式比較同樣的字符串和值。在不轉(zhuǎn)換的情況下,字符串當然不等于數(shù)值,因此結(jié)果就是false。

不全等操作符由一個嘆號后跟兩個等于號(!==)表示,它在兩個操作數(shù)未經(jīng)轉(zhuǎn)換就不相等的情況下返回t rue。例如:

var resultl=(”55”!=55)j //false,因為轉(zhuǎn)換后相等

var result2 2(”55”!==55); //true,因為不同的數(shù)據(jù)類型不相等

在這個例子中,第一個比較使用了不相等操作符,而該操作符會將字符串”55“轉(zhuǎn)換成55,結(jié)果就與第二個操作數(shù)(也是55)相等了。而由于這兩個操作數(shù)被認為相等,因此就返回了false。第二個比較使用了不全等操作符。假如我們這樣想:字符串55與數(shù)值55不相同嗎?,那么答案一定是:是的(true)。

南昌網(wǎng)頁設計公司提醒:由于相等和不相等操作符存在類型轉(zhuǎn)換問題,而為了保持代碼中數(shù)據(jù)類型的完整性,我們推薦使用全等和不全等操作符.

希望本文對廣大站長或從事企業(yè)網(wǎng)站建設公司的團隊有所幫助,如對此不太理解的,可以與南昌網(wǎng)絡公司百恒網(wǎng)絡技術(shù)部聯(lián)系。我們很高興與廣大站長和從事企業(yè)網(wǎng)站建設公司技術(shù)人員分享我們的技術(shù)和經(jīng)驗。


400-680-9298,0791-88117053
掃一掃關注百恒網(wǎng)絡微信公眾號
掃一掃打開百恒網(wǎng)絡小程序

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
售后服務 售后服務
 
備案專線 備案專線
 
×
揭东县| 吉安市| 宁德市| 富裕县| 吉林市| 公安县| 新宁县| 杭锦后旗| 绍兴市| 呼玛县| 杂多县| 葫芦岛市| 米易县| 四子王旗| 永善县| 宣威市| 河北省| 临泽县| 鄂托克前旗| 普兰店市| 武城县| 平塘县| 胶州市| 芦溪县| 敦煌市| 白朗县| 东源县| 井陉县| 稻城县| 方山县| 白玉县| 科技| 象山县| 元阳县| 突泉县| 梨树县| 嘉禾县| 卓尼县| 河曲县| 曲沃县| 若羌县|