国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS中 === 和 == 的區(qū)別

bingchen / 1622人閱讀

摘要:來之知乎林建入,作為一種優(yōu)良的程序語言有很多特性,比如和結(jié)論結(jié)論所有判斷都用而不用,除了判斷,因?yàn)榧磳⑹堑目s寫。如果和的類型不同,那么一定會返回。除了判斷,因?yàn)榧磳⑹堑目s寫。

來之知乎:林建入,https://www.zhihu.com/questio...

Javascript作為一種“優(yōu)良”的程序語言有很多特性,比如 == 和 ===

1 結(jié)論

結(jié)論:所有判斷都用=== 而不用 == ,除了判斷 x == null,因?yàn)榧磳?x == null 是 x === null || x === undefined 的縮寫。

2 ===

被稱為 Strict Equals Operator,假設(shè)有表達(dá)式 a === b,則它的實(shí)際運(yùn)算過程如下
1 計算出表達(dá)式 a 的結(jié)果,并存入 lref 變量
2 將 GetValue(lref) 的結(jié)果存入 lval 變量
3 計算出表達(dá)式 b 的結(jié)果,并存入 rref 變量
4 將 GetValue(rref) 的結(jié)果存入 rval 變量
執(zhí)行 Strict Equality Comparison 算法判斷 rval === lval 并將結(jié)果直接返回
這里的 Strict Equality Comparison 算法很關(guān)鍵,假設(shè)要計算的是 x === y,則過程如下
1 如果 Type(x) 和 Type(y) 不同,返回 false
2 如果 Type(x) 為 Undefined,返回 true
3 如果 Type(x) 為 Null,返回 true
4 如果 Type(x) 為 Number,則進(jìn)入下面的判斷邏輯
4-1 如果 x 為 NaN,返回 false
4-2 如果 y 為 NaN,返回 false
4-3 如果 x 的數(shù)字值和 y 相等,返回 true
4-4 如果 x 是 +0 且 y 是 -0,返回 true
4-5 如果 x 是 -0 且 y 是 +0,返回 ture
4-6 返回 false
5 如果 Type(x) 為 String,則當(dāng)且僅當(dāng) x 與 y 的字符序列完全相同(長度相等,每個位置上的字符相同)時返回 true,否則返回 false
6 如果 Type(x) 為 Boolean,則若 x 與 y 同為 true 或同為 false 時返回 true,否則返回 false
7 如果 x 和 y 引用的是同一個對象,返回 true,否則返回 false

3 ==

假設(shè)要計算的是 x == y,Abstract Equality Comparison 計算的過程如下(很冗長,但是每個步驟都很簡單)
1 如果 Type(x) 和 Type(y) 相同,則
1.1 如果 Type(x) 為 Undefined,返回 true
1.2 如果 Type(x) 為 Null,返回 true
1.3 如果 Type(x) 為 Number,則
1.3.1 如果 x 是 NaN,返回 false
1.3.2 如果 y 是 NaN,返回 false
1.3.3 如果 x 的數(shù)值與 y 相同,返回 true
1.3.4 如果 x 是 +0 且 y 是 -0,返回 true
1.3.5 如果 x 是 -0 且 y 是 +0,返回 true
1.3.6 返回 false
1.4 如果 Type(x) 為 String,則當(dāng)且僅當(dāng) x 與 y 的字符序列完全相同(長度相等,每個位置上的字符相同)時返回 true,否則返回 false
1.5 如果 Type(x) 為 Boolean,則若 x 與 y 同為 true 或同為 false 時返回 true,否則返回 false
1.6 如果 x 和 y 引用的是同一個對象,返回 true,否則返回 false
2 如果 x 是 null 且 y 是 undefined,返回 true
3 如果 x 是 undefined 且 y 是 null,返回 ture
4 如果 Type(x) 為 Number 且 Type(y) 為 String,以 x == ToNumber(y) 的比較結(jié)果作為返回
5 如果 Type(x) 為 String 且 Type(y) 為 Number,以 ToNumber(x) == y 的比較結(jié)果作為返回值
6 如果 Type(x) 為 Boolean,以 ToNumber(x) == y 的比較結(jié)果作為返回值
7 如果 Type(y) 為 Boolean,以 x == ToNumber(y) 的比較結(jié)果作為返回值
8 如果 Type(x) 為 String 或 Number 且 Type(y) 為 Object,以 x == ToPrimitive(y) 的比較結(jié)果作為返回值
9 如果 Type(x) 為 Object 且 Type(y) 為 String 或 Number,以 ToPrimitive(x) == y 的比較結(jié)果作為返回值10. 返回 false

4 總結(jié)

從上面的算法流程可以看出,a === b 是最簡單的。如果 a 和 b 的類型不同,那么一定會返回 false。而 a == b 則要靈活得多。JavaScript 會嘗試調(diào)整 a 和 b 的類型,例如若 a 為字符串 b 為數(shù)字,則將字符串先轉(zhuǎn)化為數(shù)字再與 b 比較,等等。
除了判斷 x == null,因?yàn)榧磳?x == null 是 x === null || x === undefined 的縮寫。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/87436.html

相關(guān)文章

  • 前端面試題總結(jié)(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項(xiàng)目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項(xiàng)目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進(jìn),適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項(xiàng)目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    pumpkin9 評論0 收藏0
  • 前端面試題總結(jié)(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項(xiàng)目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項(xiàng)目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進(jìn),適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項(xiàng)目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    Carson 評論0 收藏0
  • 前端面試題總結(jié)(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項(xiàng)目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項(xiàng)目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進(jìn),適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項(xiàng)目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    muzhuyu 評論0 收藏0
  • 高級前端面試題大匯總(只有試題,沒有答案)

    摘要:面試題來源于網(wǎng)絡(luò),看一下高級前端的面試題,可以知道自己和高級前端的差距。 面試題來源于網(wǎng)絡(luò),看一下高級前端的面試題,可以知道自己和高級前端的差距。有些面試題會重復(fù)。 使用過的koa2中間件 koa-body原理 介紹自己寫過的中間件 有沒有涉及到Cluster 介紹pm2 master掛了的話pm2怎么處理 如何和MySQL進(jìn)行通信 React聲明周期及自己的理解 如何...

    kviccn 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<