本指南深入研究了JavaScript嚴格的平等操作員(===
)的複雜性,如Ecmascript規範的“嚴格平等比較”部分中定義。 讓我們逐步探索其功能:
===
算法:詳細的外觀===
運算符採用以下算法來確定平等:
鍵入檢查:false
NaN === NaN
>
false
數值相同的值返回true
0
)。 -0
true
true
false
和均返回true === true
。 否則,false === false
。 true
false
>檢查>參考equality 。 只有兩個值指向相同的內存位置(同一對象)時,它才會返回===
。
true
and 返回null
。但是,由於類型差異,undefined
是。
null === null
undefined === undefined
true
null === undefined
false
NaN === NaN
>示例:false
可靠地檢查NaN
>,使用NaN
>或
>
<code class="language-javascript">NaN === NaN; // false</code>
為什麼NaN
Number.isNaN()
Object.is()
>
<code class="language-javascript">Number.isNaN(NaN); // true Object.is(NaN, NaN); // true</code>
0 === -0
,而true
則在: 0
>
<code class="language-javascript">NaN === NaN; // false</code>
比較對象時,===
評估引用相等性。具有相同內容的兩個對像不被視為相等,除非它們在內存中是相同的對象:
<code class="language-javascript">Number.isNaN(NaN); // true Object.is(NaN, NaN); // true</code>
但是:
<code class="language-javascript">Object.is(+0, -0); // false</code>
JavaScript 基礎知識的進一步探索
以上是解開 JavaScript 的'===”的詳細內容。更多資訊請關注PHP中文網其他相關文章!