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

Javascript學(xué)習(xí)筆記之相等符號(hào)與嚴(yán)格相等符號(hào)

 更新時(shí)間:2014年11月23日 15:49:25   投稿:hebedich  
本文詳細(xì)介紹了javascript中的相等符號(hào)以及嚴(yán)格相等符號(hào),需要的朋友可以參考下

Javascript 有兩種方法來(lái)判斷兩種值是否相等。

相等符號(hào)

相等符號(hào)由兩個(gè)等號(hào)組成: ==
Javascript 是弱類型語(yǔ)言。這就意味著相等符號(hào)為了比較兩個(gè)值將會(huì)強(qiáng)制轉(zhuǎn)換類型。

復(fù)制代碼 代碼如下:

""           ==   "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é)果,因此我們知道使用相等符號(hào) == 是個(gè)不好的編程習(xí)慣。由于 Javascript 中復(fù)雜的類型轉(zhuǎn)換機(jī)制,將會(huì)使得由此產(chǎn)生的錯(cuò)誤變得難以追蹤。
此外,類型的強(qiáng)制轉(zhuǎn)換會(huì)對(duì)性能也造成一定的影響,例如,當(dāng)一個(gè)字符串與數(shù)字進(jìn)行比較時(shí),會(huì)被強(qiáng)制轉(zhuǎn)換為數(shù)字。

嚴(yán)格相等符號(hào)

嚴(yán)格相等符號(hào)由三個(gè)等號(hào)組成: ===
它跟相等符號(hào)的操作相似,但是嚴(yán)格相等符號(hào)不會(huì)做強(qiáng)制類型轉(zhuǎn)換的操作。

復(fù)制代碼 代碼如下:

""           ===   "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

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

比較對(duì)象

盡管 == 和 === 被稱為相等符號(hào),但是當(dāng)比較的兩個(gè)值中有一個(gè)類型是對(duì)象時(shí),表現(xiàn)將大不相同。

復(fù)制代碼 代碼如下:

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

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

總結(jié)

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

相關(guān)文章

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

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

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

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

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

    JS backgroundImage控制

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

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

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

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

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

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

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

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

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

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

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

    了解前端理論:rscss和rsjs

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

    Javascript核心讀書有感之表達(dá)式和運(yùn)算符

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

最新評(píng)論