亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

代碼的問題

numa==numb怎么這里要兩個等號

正在回答

1 回答

??????JavaScript支持“=”、“==”和“===”運算符。你應當理解這些(賦值、相等、恒等)運算符之間的區別,并在編碼過程中小心使用。

??????JavaScript對象的比較是引用的比較,而不是值的比較。對象和其本身是相等的,但和其他任何對象都不相等。如果兩個不同的對象具有相同數量的屬性,相同的屬性名和值,它們依然是不相等的。相應位置的數組元素是相等的兩個數組也是不相等的。

??????嚴格相等運算符“===”首先計算其操作數的值,然后比較這兩個值,比較過程沒有任何類型轉換:

??????如果兩個值類型不相同,則它們不相等。如果兩個值都是null或者都是undefined,則它們不相等。

??????如果兩個值都是布爾值true或false,則它們相等。

??????如果其中一個值是NaN,或者兩個兩個值都是NaN,則它們不相等。NaN和其他任何值都是不相等的,包括它本身?。?!通過x!==x來判斷x是否為NaN,只有在x為NaN的時候,這個表達式的值才為true。

??????如果兩個值為數字,且數值相等,則它們相等。如果一個為0,另一個為-0,則它們同樣相等。

??????如果兩個值為字符串,且所含的對應位上的16位數完全相等,則它們相等。

??????如果它們的長度或內容不同,則它們不等。兩個字符串可能含義完全一樣且所顯示出手字符也一樣,但具有不同編碼的16位值。JavaScript并不對Unicode進行標準化的轉換,因此像這樣的字符串通過"==="和"=="運算符的比較結果也不相等。

??????如果兩個引用值同一個對象、數組或函數,則它們是相等的。如果指向不同的對象,則它們是不等的。盡管兩個對象具有完全一樣的屬性。

??????相等運算符“==”和恒等運算符相似,但相等運算符的比較并不嚴格。如果兩個操作數不是同一類型,那么相等運算符會嘗試一些類型轉換,然后進行比較:

??????如果兩個操作數的類型相同,則和上文所述的嚴格相等的比較規則一樣。

??????如果嚴格相等,那么比較結果為相等。如果它們不嚴格相等,則比較結果為不相等。

??????如果兩個操作數類型不同,“==”相等操作符也可能會認為它們相等。檢測相等將會遵守如下規則和類型轉換:?

??????1.如果一個值是null,另一個是undefined,則它們相等。

??????2.如果一個值是數字,另一個是字符串,先將字符串轉換為數字,然后使用轉換后的值比較。

??????3.如果其中一個值是true,則將其轉換為1再進行比較。

??????4.如果其中一個值是false,則將基轉換為0再進行比較。

??????5.如果一個值是對象,另一個值是數字或字符串,則將對象轉換為原始值,然后再進行比較。對象通過toString()方法或valueOf()方法轉換為原始值。JavaScript核心的內置類首先嘗試使用valueOf(),再嘗試使用toString(),除了日期類,日期類只使用toString()轉換。那些不是JavaScript語言核心中的對象則通過各自的實現中定義的方法轉換為原始值。其他不同類型之間的比較均不相等.

?

0 回復 有任何疑惑可以回復我~
#1

小萬 提問者

非常感謝!
2015-01-03 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468830    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

代碼的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號