html有標(biāo)簽類型:
block inline inline-block table list
不同類型顯示效果不同
同樣JS也有數(shù)據(jù)類型(ECMAScript定義的JavaScript的核心標(biāo)準(zhǔn))
數(shù)字 number var i = 0;
字符串 string var str = 'im string';
布爾 boolean var b = true;
函數(shù) function var fn1 = function() {};
對象 object
數(shù)組 var arrayS = [];
json var aJson = {};
元素 var oDiv = document.getElementsByTagName('div')[0];
null var nullobj = null;
未定義 undefined var a; / var a = undefined;
null object var nullobj = null;
獲取數(shù)據(jù)類型:typeof
數(shù)據(jù)類型轉(zhuǎn)換:
1.強(qiáng)制類型轉(zhuǎn)換
Number();
可以轉(zhuǎn)換純數(shù)字的字符串宝当,不可以轉(zhuǎn)換不是純數(shù)字的字符串,否則會出現(xiàn)NaN胆萧,支持小數(shù)
parseInt();
可以轉(zhuǎn)換不是純數(shù)字的字符串庆揩,從第0位開始的一直讀取到不是數(shù)字(包括小數(shù)點)為止的地方截取并轉(zhuǎn)換為數(shù)字,不支持小數(shù)
但是如果第0位開始就不是數(shù)字的跌穗,就會出現(xiàn)NaN
parseFloat();
可以轉(zhuǎn)換不是純數(shù)字的字符串订晌,從第0位開始的一直讀取到不是數(shù)字的位置或者后面都是0的那一串的第一個0的位置為止的地方截取并轉(zhuǎn)換為數(shù)字,支持小數(shù)
但是如果第0位開始就不是數(shù)字的蚌吸,就會出現(xiàn)NaN
NaN ( Not a Number )
其他數(shù)據(jù)類型轉(zhuǎn)換為數(shù)字類型錯誤時锈拨,或者運算出問題,結(jié)果就會是一個不是數(shù)字的數(shù)字類型
2.隱式類型轉(zhuǎn)換
隱式類型轉(zhuǎn)換最直觀的一個例子:
字符串 + 數(shù)值 = 字符串
加號把數(shù)值隱式轉(zhuǎn)換為字符串類型羹唠,包括對象等數(shù)據(jù)類型都會被轉(zhuǎn)換隱式轉(zhuǎn)換為字符串
字符串 - 數(shù)值 = 數(shù)值
減號把字符串隱式轉(zhuǎn)換成數(shù)值類型奕枢,支持整數(shù)、小數(shù)佩微,但是如果字符串不是純數(shù)字缝彬,那么就會變成NaN類型,但是NaN類型也是Number類型哺眯,也屬于隱式轉(zhuǎn)化了類型
(Tips:包括 * / % -- ++ > < 操作跌造,都會隱式轉(zhuǎn)換為Number類型)
!取反操作,會把右邊的數(shù)據(jù)轉(zhuǎn)換為布爾值
當(dāng)字符串和字符串進(jìn)行比較的時候,會逐個比較
==僅判斷值是否相等壳贪,如果字符串和數(shù)值做判等,那么字符串會隱式轉(zhuǎn)成數(shù)值做比較
===不僅判斷值寝杖,還判斷類型是否相等