JS資料型別區別、轉換與運算
基本資料型別和引用資料型別的區別:
儲存分棧和堆
變數比較相等與否的時候,比較的是棧中的值
基本資料型別是真值,引用資料型別是指標(路徑)
隱式資料型別轉換
(1)變成數字:數學運算,比較大小
(2)字串拼接+;加號之前或之後是字串
(3)變成布林值:!
其他資料能轉換成0的情況:""," ",false,null,"0"
轉換成布林值為false的情況:0,NaN,"",null,undefined
基本資料型別
1.字串 string
+連結字串的時候,其他資料型別像字串轉換,並進行拼接,高於加法運算
2.數字 number
遇到數學運算子(比較運算子)的時候,其他資料向數字轉換
3.布林 boolean(true false)
!取反的時候,先將資料轉換成布林值,再進行取反
變成布林值為false的5中情況:0,NaN,"",null,undefined
運算
1.賦值運算
兩個字串比較大小,比較的是資料的Unicode編碼的編號;
var n = true,m = "1a";
console.log(n==m);
兩個等號,比較值的大小,不在乎資料型別,其他資料向數字轉換
console.log(n===m);
三個等號,全等,要求資料型別和值都相等
2.比較運算
i++;先賦值,後運算,運算完再賦值
++i;先運算,後賦值
3.邏輯運算子
&&前一個語句的結果轉換成布林值如果是false的話,不執行後一個語句;如果前一個語句的結果轉換成布林值是true的話,結果是後一個語句的結果。
||前一個語句結果轉換成布林值是true的話,後一個語句不執行;如果false的話,結果就是後一個語句的結果。
!取反(結果是布林值,true||false)