欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript學習筆記之相等符號與嚴格相等符號

 更新時間:2014年11月23日 15:49:25   投稿:hebedich  
本文詳細介紹了javascript中的相等符號以及嚴格相等符號,需要的朋友可以參考下

Javascript 有兩種方法來判斷兩種值是否相等。

相等符號

相等符號由兩個等號組成: ==
Javascript 是弱類型語言。這就意味著相等符號為了比較兩個值將會強制轉(zhuǎn)換類型。

復制代碼 代碼如下:

""           ==   "0"           // false
0            ==   ""            // true
0            ==   "0"           // true
false        ==   "false"       // false
false        ==   "0"           // true
false        ==   undefined     // false
false        ==   null          // false
null         ==   undefined     // true
" \t\r\n"    ==   0             // true

上面的代碼展示了類型轉(zhuǎn)換的結(jié)果,因此我們知道使用相等符號 == 是個不好的編程習慣。由于 Javascript 中復雜的類型轉(zhuǎn)換機制,將會使得由此產(chǎn)生的錯誤變得難以追蹤。
此外,類型的強制轉(zhuǎn)換會對性能也造成一定的影響,例如,當一個字符串與數(shù)字進行比較時,會被強制轉(zhuǎn)換為數(shù)字。

嚴格相等符號

嚴格相等符號由三個等號組成: ===
它跟相等符號的操作相似,但是嚴格相等符號不會做強制類型轉(zhuǎn)換的操作。

復制代碼 代碼如下:

""           ===   "0"           // false
0            ===   ""            // false
0            ===   "0"           // false
false        ===   "false"       // false
false        ===   "0"           // false
false        ===   undefined     // false
false        ===   null          // false
null         ===   undefined     // false
" \t\r\n"    ===   0             // false

上面的代碼使得代碼更加清晰,如果兩個值的類型不同則直接返回 false,這也會使得性能得到提升。

比較對象

盡管 == 和 === 被稱為相等符號,但是當比較的兩個值中有一個類型是對象時,表現(xiàn)將大不相同。

復制代碼 代碼如下:

{} === {};                   // false
new String('foo') === 'foo'; // false
new Number(10) === 10;       // false
var foo = {};
foo === foo;                 // true

在這兒,不再僅僅是比較兩個值是否相等,它將判斷兩個值是否引用同一個對象實例,這個行為比較像 C 中的指針。

總結(jié)

這里強烈建議只使用嚴格相等符號 ===。如果我們需要做類型轉(zhuǎn)換,可以在比較前先做顯式的類型轉(zhuǎn)換,而不是靠 Javascript 本身復雜的強制轉(zhuǎn)換方法。

相關(guān)文章

  • 探尋Javascript執(zhí)行效率問題

    探尋Javascript執(zhí)行效率問題

    作為開發(fā)人員,Web頁面加載或刷新的速度對其網(wǎng)站至關(guān)重要。開發(fā)人員在各種瀏覽器中調(diào)試JavaScript的方法要少得多。比如,在Mozilla Firefox中,可以使用Firebug調(diào)試JavaScript,但仍然不能調(diào)整很多性能問題,如瀏覽器呈現(xiàn)消耗時間。
    2014-11-11
  • 了解ESlint和其相關(guān)操作小結(jié)

    了解ESlint和其相關(guān)操作小結(jié)

    這篇文章主要介紹了了解ESlint和其相關(guān)操作小結(jié),詳細的介紹了什么是ESlint以及ESlint規(guī)范,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • JS backgroundImage控制

    JS backgroundImage控制

    JS backgroundImage控制代碼。
    2009-05-05
  • JavaScript Undefined,Null類型和NaN值區(qū)別

    JavaScript Undefined,Null類型和NaN值區(qū)別

    js中一些空值問題,未定義等一系列的區(qū)別說明
    2008-10-10
  • JavaScript中匿名、命名函數(shù)的性能測試

    JavaScript中匿名、命名函數(shù)的性能測試

    這篇文章主要介紹了JavaScript中匿名、命名函數(shù)的性能測試,簡單來講匿名即沒有名字的函數(shù),它和命名函數(shù)相比性能如何呢,本文即是對它們性能的測試,需要的朋友可以參考下
    2014-09-09
  • JavaScript中的slice()方法使用詳解

    JavaScript中的slice()方法使用詳解

    這篇文章主要介紹了JavaScript中的slice()方法使用詳解,是JS入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-06-06
  • ParseInt函數(shù)參數(shù)設(shè)置介紹

    ParseInt函數(shù)參數(shù)設(shè)置介紹

    經(jīng)常用ParseInt函數(shù)轉(zhuǎn)換字符串為int數(shù)值,ParseInt函數(shù)有兩個參數(shù)可以設(shè)置,其中第二個參數(shù)可以缺省
    2014-01-01
  • JavaScript函數(shù)、閉包、原型、面向?qū)ο髮W習筆記

    JavaScript函數(shù)、閉包、原型、面向?qū)ο髮W習筆記

    這篇文章給大家分享了一篇關(guān)于JavaScript函數(shù)、閉包、原型、面向?qū)ο蟮闹R點學習筆記內(nèi)容,有興趣的朋友參考下。
    2018-09-09
  • 了解前端理論:rscss和rsjs

    了解前端理論:rscss和rsjs

    在前端開發(fā)中,我們會嘗試去定一些規(guī)則和約定,來讓項目質(zhì)量更高,更易于維護。而對于這些規(guī)則和約定,我們也會希望它內(nèi)容簡單,容易理解。下面小編來和大家一起學習一下
    2019-05-05
  • Javascript核心讀書有感之表達式和運算符

    Javascript核心讀書有感之表達式和運算符

    這篇文章主要介紹了Javascript核心讀書有感之表達式和運算符,十分詳細,需要的朋友可以參考下
    2015-02-02

最新評論