=,很好理解就(jiù)是(shì)賦值的(de)意思例如:
Var a=1;意思把1賦值給a
Console.log(a);輸出(chū)顯示是(shì)1;
==(equality)等于(yú), ===(identity)恒等,兩邊值類型相同時(shí),用法等同于(yú)===;不(bù)同的(de)時(shí)候,要(yào / yāo)先進行類型轉換,再比較。
===,不(bù)做類型轉換,類型不(bù)同的(de)一(yī / yì /yí)定不(bù)等。
具體分析:
先說(shuō) ===,這(zhè)個(gè)比較簡單。下面的(de)規則用來(lái)判斷兩個(gè)值是(shì)否===相等:
<pre>
如alert('1'==1);//結果是(shì)true alert('1'===1);//結果是(shì)false |
</pre>
1、如果類型不(bù)同,就(jiù)[不(bù)相等]
2、如果兩個(gè)都是(shì)數值,并且是(shì)同一(yī / yì /yí)個(gè)值,那麽[相等];(!例外)的(de)是(shì),如果其中至少一(yī / yì /yí)個(gè)是(shì)NaN,那麽[不(bù)相等]。判斷一(yī / yì /yí)個(gè)值是(shì)否是(shì)NaN,隻能用isNaN()來(lái)判斷。
3、如果兩個(gè)都是(shì)字符串,每個(gè)位置的(de)字符都一(yī / yì /yí)樣,那麽[相等];否則[不(bù)相等]。
4、如果兩個(gè)值都是(shì)true,或者都是(shì)false,那麽[相等]。
5、如果兩個(gè)值都是(shì)null,或者都是(shì)undefined,那麽[相等]。
6、引用類型比較,進行“指針地(dì / de)址”比較,如果兩個(gè)值都引用同一(yī / yì /yí)個(gè)對象或函數,那麽[相等];否則[不(bù)相等]。
再說(shuō) ==,根據以(yǐ)下規則:
<pre>
如alert(null==undefined);//結果是(shì)true alert(null===undefined);//結果是(shì)false |
1、如果兩個(gè)值類型相同,進行 === 比較。
2、如果兩個(gè)值類型不(bù)同,他(tā)們可能相等。根據下面規則進行類型轉換再比較:
a、如果一(yī / yì /yí)個(gè)是(shì)null、一(yī / yì /yí)個(gè)是(shì)undefined,那麽[相等],其他(tā)如”(空字符串),false,0都不(bù)等。
b、如果一(yī / yì /yí)個(gè)是(shì)字符串,一(yī / yì /yí)個(gè)是(shì)數值,把字符串轉換成數值再進行比較。
c、如果任一(yī / yì /yí)值是(shì) true,把它轉換成 1 再比較;如果任一(yī / yì /yí)值是(shì) false,把它轉換成 0 再比較。
d、如果一(yī / yì /yí)個(gè)是(shì)對象,另一(yī / yì /yí)個(gè)基本類型,把對象轉換成基礎類型的(de)值再比較。對象轉換成基礎類型,利用它的(de)toString或者valueOf方法。js核心内置類,會嘗試valueOf先于(yú)toString;例外的(de)是(shì)Date,Date利用的(de)是(shì)toString轉換。
對于(yú)Array,Object等高級類型,==和(hé / huò)===是(shì)沒有區别的(de)
<pre>
var a = [1,2,3];
var b = [1,2,3];
alert(a == b); alert(a === b); // 兩個(gè)結果都是(shì)false
alert(a.sort().toString() == b.sort().toString()); // 結果是(shì)true
alert(a.sort().toString() === b.sort().toString()); // 結果是(shì)true
var a = $(".editor");
var b = $(".editor");
console.log(a === b);
//結果是(shì) false
console.log(a.is(b));
//結果是(shì) true
</pre>
細緻入微的(de)前期服務
精準的(de)策劃服務
精湛的(de)網頁設計
穩定 可靠 極速的(de)域名和(hé / huò)服務器
任何問題,24小時(shí)回複并處理
版權所有:蘇州謝謝網絡傳媒有限公司 京ICP證000000号