天天看點

JavaScript的基礎知識點(2)

1、為什麼typeof null 是object?

不同的資料類型在底層都是通過二進制表示的,二進制前三位為000則會被判斷為object類型,而null底層的二進制全都是0,那前三位肯定也是000,是以被判斷為object

2、== 與 === 的差別?

==:在比較過程中會存在隐式轉換

===:需要類型相同,值相同,才能為true

1、轉成string類型: +(字元串連接配接符)


2、轉成number類型:++/--(自增自減運算符) + - * / %(算術運算符) > < >= <= == != === !=== (關系運算符)


3、轉成boolean類型:!(邏輯非運算符)
           
1、null == undefined 為 true


2、如果有一個操作數是布爾值,則在比較相等性之前先将其轉換為數值——false轉換為0,而true轉換為1;


3、如果一個操作數是字元串,另一個操作數是數值,在比較相等性之前先将字元串轉換為數值


4、如果一個操作數是對象,另一個操作數不是,則調用對象的toString()方法,用得到的基本類型值按照前面的規則進行比較
           

繼續閱讀