隱式轉換1.=是賦值
2.嚴格模式=== 先判斷型別,再判斷值
console.log('123'===123);//
false
console.log(null===undefined);//
false
console.log(undefined===undefined);//
true`
3.==如圖2.一邊是數值,一邊是字串,字串會轉數值;
3.布林值會轉數值console.log('123'==123);//true
true->1
false->0
4.左邊是物件時,如果右邊是字串或者數字時,左邊會轉為基本型。console.log(1==true);//true
console.log(0==false);//true
其他都是falseconsole.
log(new
string("hello")==
'hello');//true
console.
log(new
string("22")==
22);//true
console.
log(new boolean(true)==
1);//true
物件是用引用去比較,而不是值。兩個物件永遠不會相等,但是一邊是物件,另一邊是字串或者數值,物件會轉換成基本型別後進行比較。
nan不等於nanconsole.log(new
string("22")==new
string("22"));//false
console.log(new
array(1,2)==[1,2]);//false
console.log(new
object()==new
object());//false
console.log([1,2]==[1,2]);//false
var x=new
object();
console.log(x===x);//true
console.log(nan===nan);//false
深入淺出Javascript 型別
js有6種原型資料型別 null,undefined,boolean,number,string,symbol var as null undefined console.log as nullnull.asd uncaught typeerror cannot read property asd ...
深入淺出JS 作用域
作用域是什麼呢?它是指的 在執行時,變數 函式或者物件的可訪問性?還是乙個變數和函式的作用範圍?又或是如 know js 中所說的作用域是根據名稱查詢變數的一套規則呢,又或是指的當前 的執行環境?在筆者的眼裡,作用域所指的是規則,一套用來管理變數和函式的作用範圍的規則。var userinfo a ...
JS 深入淺出This指向(精簡)
首先我們圍繞耳熟能詳的 this始終指向它的呼叫者 開始。這句結論雖然沒有什麼問題,但是說得過於籠統,還是得深入到背後的執行原理才能舉一反三解決問題。舉個簡單的例子 var obj var foo obj.foo var num 3 obj.foo 2 foo 3 obj.foo 是物件obj呼叫自...