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

      百恒網(wǎng)絡(luò)

      南昌百恒網(wǎng)絡(luò)

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

      百恒網(wǎng)絡(luò) 2012-02-20 5435

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

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

      1.相等和不相等

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

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

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

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

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

      這兩個(gè)操作符在進(jìn)行比較時(shí)則要遵循下列規(guī)則。

      ◎null和undefined是相等的。

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

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

      即使兩個(gè)操作數(shù)都是NaN,相等操作符也返回false;因?yàn)榘凑找?guī)則,NaN不等于NaN。

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

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

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

      表達(dá)式值表達(dá)式值

      null == undefinedtruetrue == 1true

      "NaN" == NaNfalsetrue == 2false

      5 == NaNfalseundefined == 0false

      NaN == NaNfalsenull == 0false

      NaN != NaNtrue"5" == 5true

      false == 0true

      2.全等和不全等

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

      var resultl=(”55”==55); //true,因?yàn)檗D(zhuǎn)換后相等

      var result2 2(”55”===55); //false,因?yàn)椴煌臄?shù)據(jù)類型不相等

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

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

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

      var resultl=(”55”!=55)j //false,因?yàn)檗D(zhuǎn)換后相等

      var result2 2(”55”!==55); //true,因?yàn)椴煌臄?shù)據(jù)類型不相等

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

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

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


      400-680-9298,0791-88117053
      掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
      掃一掃打開百恒網(wǎng)絡(luò)小程序

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

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務(wù) 售后服務(wù)
       
      售后服務(wù) 售后服務(wù)
       
      備案專線 備案專線
       
      ×
      亚洲Av永久无码精品一区二区| 久久精品国产亚洲AV无码麻豆 | 亚洲精品乱码久久久久久V| 无码欧精品亚洲日韩一区| 中日精品无码一本二本三本| 一本精品99久久精品77 | 亚洲国产另类久久久精品小说| 国产三级精品久久| 亚洲AⅤ永久无码精品AA| 日韩免费高清视频| 日韩一区二区在线免费观看| 日韩一区精品视频一区二区| 国产亚洲精品精品精品| 国产精品理论电影| 精品午夜久久网成年网| 国产精品午夜无码AV天美传媒| 伦精品一区二区三区视频| 久久久久久午夜精品| 老色鬼在线精品视频| 久久亚洲精品国产亚洲老地址 | 这里只有精品视频| 日韩欧美一区二区三区免费观看| 国产精品亚洲精品日韩已满| 中文字幕日韩人妻不卡一区| 国产成人精品123区免费视频| 国产精品李雅在线观看| 国产精品四虎在线观看免费| 国产日韩精品视频| 日韩特级黄色毛片| 91精品日韩人妻无码久久不卡| 日韩精品乱码AV一区二区| 亚洲 日韩经典 中文字幕| 日韩美女va毛片在线播放| 无码精品前田一区二区| 亚洲国产精品综合久久一线 | 日韩精品久久无码中文字幕| 久久er99热精品一区二区| 91精品国产高清久久久久久91| 国产精品亚洲片在线va| 欧美成人精品三级网站下载| 校园春色国产精品|