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

      百恒網絡

      南昌百恒網絡

      ECMAScript相等和不相等以及全等和不全等規則及使用方法

      百恒網絡 2012-02-20 5307

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

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

      1.相等和不相等

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

      在轉換不同的數據類型時,相等和不相等操作符遵循下列基本規則:

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

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

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

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

      ◎null和undefined是相等的。

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

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

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

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

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

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

      表達式值表達式值

      null == undefinedtruetrue == 1true

      "NaN" == NaNfalsetrue == 2false

      5 == NaNfalseundefined == 0false

      NaN == NaNfalsenull == 0false

      NaN != NaNtrue"5" == 5true

      false == 0true

      2.全等和不全等

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

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

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

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

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

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

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

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

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

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

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


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

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

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務 售后服務
       
      售后服務 售后服務
       
      備案專線 備案專線
       
      ×
      亚洲欧美日韩中文无线码| 国产精品亚洲午夜一区二区三区| 中文字幕日韩人妻不卡一区| 国产成人精品亚洲日本在线| 亚洲精品高清视频| 国内少妇偷人精品视频免费| 久久精品一区二区三区中文字幕| 无码乱码观看精品久久| 亚洲欧美日韩中文无线码 | 久久伊人精品一区二区三区| 久久精品7亚洲午夜a| 国产成人精品一区二区三区无码| 久久97久久97精品免视看秋霞| 日产国产精品亚洲系列| 亚洲日韩乱码中文无码蜜桃臀| 国产精品综合在线| 精品视频国产狼人视频| 欧美精品久久久久a片一二三区| 国产精品专区第二| 精品久久久久香蕉网| 亚洲欧洲精品久久| 久久精品青青草原伊人| 91久久精品视频| 精品爆乳一区二区三区无码av| 99视频精品全部免费观看| 无码国产精品一区二区免费式芒果| 国产AV国片精品| 法国性xxxx精品hd| 99久久精品毛片免费播放| 少妇人妻偷人精品一区二区| 国产亚洲精品线观看动态图| 久久久久久久久久免免费精品| 大桥未久在线精品视频在线| 日批日韩在线观看| 国产精品视频1区| 2020国产精品视频| 国产成人精品久久二区二区| 国产精品自在在线午夜蜜芽tv在线 | 国产三级久久久精品麻豆三级| 国产亚洲色婷婷久久99精品91| 亚洲性色AV日韩在线观看|