js中== ===的區別
js是弱型別語言,這兩個符號都是判斷值是否相等的操作符,== 與 === ,兩者相比,== 會做一定的型別轉換;而 === 不做型別轉換,所接受的相等條件更加嚴格。
等號==
比較之前先進行隱式轉換,型別相同與否無關,若型別一樣,則和===比較一樣進行嚴格比較。若不一樣:
若是undefined和null(注意:undefined和null屬於兩種基本資料型別),返回true。
若乙個是number型別,乙個是string型別,則把string型別轉換成number型別比較。如:"1" == 1;
若有乙個為boolean型別,則把boolean型別的值轉換成number型別的值來比較,boolean(2) == 1;boolean(2) == "1"; //ture
若乙個是number型別或者string型別,乙個是object型別,先把object型別轉換成基本資料型別,再進行比較。
注意:a == c; b==c; a == b?不一定,比如:
1var str1 = new string("hello");23
var str2 = new string("hello");
4 str1 == "hello";
5 str2 == "hello";
6 alert(str1 == str2)
恒等號===
首先判斷兩個值的型別是否相等,如果不相等,直接返回false:"1" === 1;
然後,如果型別相同:若是undefined和null,返回true。
若是number型別,(1)一般的數值相等返回true,(2)如果乙個是nan,則返回false,兩個nan返回true,(3)0 -0 +0返回true。
若是string型別,完全相等時返回true。
若是boolean型別,相等時返回true。
若兩個變數引用的物件相同,返回true。
1function
aa(name)
4var a1 = new aa("wo");
5var a2 = new aa("wo");
6var b =a1;
7var c =a1;
8 alert(c === b); //
返回true
910 alert(a1 == a2); //
返回false
11 alert(a1 === a2); //
返回false
12 alert(a1.name == a2.name); //
返回false
13 alert(a1.name === a2.name); //
返回false
js中 的區別
一 大括號,表示定義乙個物件,大部分情況下要有成對的屬性和值,或是函式體。如 var langshen 上面宣告了乙個名為 langshen 的物件,多個屬性或函式用,逗號 隔開,因為是物件的屬性,所以訪問時,應該用.點 來層層訪問 langshen.name langshen.age,當然我們也可...
js中 與 的區別
為了減少概念混淆,應該把 稱作 得到或者賦值 稱作 相等 稱作 嚴格相等 相同點 它們兩個運算子都允許任意型別的的運算元,如果運算元相等,返回true,否則返回false 不同 運算子稱作相等,用來檢測兩個運算元是否相等,這裡的相等定義的非常寬鬆,可以允許進行型別轉換 用來檢測兩個運算元是否嚴格相等...
js中const,var,let的區別
1.const定義的變數不可以修改,而且必須初始化。1 const b 2 正確 2 const b 錯誤,必須初始化 3 console.log 函式外const定義b b 有輸出值 4 b 5 5 console.log 函式外修改const定義b b 無法輸出2.var定義的變數可以修改,如果...