JavaScript是一種弱類型語言,它所體現的萬物皆對象在這一點上體現的十分明顯
JavaScript五種數據類型
基本類型
1.number 數字
2.String 字符串
3.boolean布爾值
4.null空對象
5.undefined 未定義
對象
object 包括:
1.function
2.Array
3.Date
等等
隱式轉換
雖然作為一種弱類型語言,JavaScript的便捷性體現的十分明顯,可是在隱士轉換的時候,卻是比較復雜:
1.加減運算符
“32” + 32 = “3232”;
“32” - 2 = 30;
string加上number變為string,string減去number變成數字。
利用這一點可以很方便的轉換類型,比如一個字符串num - 0會變成number,一個數字+“”空字符串會變成string。
2.==和===
等于和嚴格等于,在JavaScript中用到的非常多。
等于
“1.23” == 1.23
0 == false
null == undefined
new Object() == new Object()
[1,2] == [1,2]
以上表達式均相等!
等于==操作符可以認為是一種值比較,如果運算符兩邊類型不同,會嘗試將其轉換為一致然后再做判斷。
嚴格等于
null === null
undefined === undefined
以上表達式均為true。
new Object() === new Object()會返回false,這點和Java中的引用比較相同。
特殊的,NaN === NaN會返回false。NaN 和任何對象都不相等。
嚴格等于會先判斷類型,如果類型不同則直接返回false。相當于Java中的==操作符。
==中的數據轉換
number == stirng 轉為number
boolean == number 轉為number
object == number|string 會嘗試將對象轉為比較的基本類型