當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
【前端工程师手册】说清楚JavaScript中的相等性判断
生活随笔
收集整理的這篇文章主要介紹了
【前端工程师手册】说清楚JavaScript中的相等性判断
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有哪些判斷相等性的方法
JavaScript現在提供了三種方法來判斷相等性:
判斷相等性的細節
===(嚴格相等)
被比較的兩個數不會進行類型轉換,具體的比較過程如下:
例子:
var a = 2, b = '2' a === b // false undefined === null // false NaN === NaN // false +0 === -0 // true var f = function(){} var c = f, d = f; c === d // true 復制代碼==(寬松相等)
寬松相等主要是在某些情況下涉及到隱式類型轉換的問題,廢話不說,看一下MDN上面對寬松相等的規則總結:
總結一下就是:那么ToNumber和ToPrimitive這兩個方法內部到底是如何判斷的呢?查看一下ECMA說明
如果是這么個意思:ToNumber
ToPrimitive
首先這個方法有兩個參數,input和preferredType,如果preferredType是number的話,大致過程如下:
如果preferredType是string,那么第2步和第3步順序反過來。
如果preferredType沒有傳入的話:
- 如果input是Date類型,則preferredType取string
- 否則,preferredType取number
Object.is
這個方法大致和===一樣,除了以下:
參考
知乎-Javascript 中 == 和 === 區別是什么?
全面解析js中的數據類型與類型轉換
ECMA規范
總結
以上是生活随笔為你收集整理的【前端工程师手册】说清楚JavaScript中的相等性判断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海量数据和高并发下的 Redis 业务优
- 下一篇: [react] 写个例子说明什么是JSX