js 基本數(shù)據(jù)類型
undefined null Boolean Number string
特殊數(shù)據(jù)類型
Object(包含:Object Function String Number Boolean Array Regexp Data Global Math Error)
數(shù)據(jù)類型的轉(zhuǎn)換
var a = "1";
typeof a; //string
var num = typeof Number(a); //number
typeof String(num); //string
parseInt(); //整形 向下取整
parseFloat(); //浮點(diǎn)型 超出一定范圍會(huì)有誤差
/*
*大概步驟先把參數(shù)轉(zhuǎn)成字符串, 去掉空白字符 ,非數(shù)字字符 返回 NaN 最后返回有效的浮點(diǎn)數(shù)
*只處理 “+-”蚀乔、 “0-9”故痊、 小數(shù)點(diǎn)帝簇、符號(hào)e贬芥, 遇到其他字符就停止解析
*/
Math.floor(); //向下取整
PS: 需要注意
NaN 的數(shù)據(jù)類型是 number
數(shù)組(Array)的數(shù)據(jù)類型是 object
日期(Date)的數(shù)據(jù)類型為 object
null 的數(shù)據(jù)類型是 object
未定義變量的數(shù)據(jù)類型為 undefined
如果對(duì)象是 JavaScript Array
或 JavaScript Date
笑诅,我們就無(wú)法通過 typeof
來(lái)判斷他們的類型调缨,因?yàn)槎际?返回 Object
因此就需要借助constructor
屬性來(lái)判斷。
/*constructor 屬性*/
返回所有js變量的構(gòu)造函數(shù)
`"John".constructor // 返回函數(shù) String() { [native code] }
(3.14).constructor // 返回函數(shù) Number() { [native code] }
false.constructor // 返回函數(shù) Boolean() { [native code] }
[1,2,3,4].constructor // 返回函數(shù) Array() { [native code] }
{name:'John', age:34}.constructor // 返回函數(shù) Object() { [native code] }
new Date().constructor // 返回函數(shù) Date() { [native code] }
function () {}.constructor // 返回函數(shù) Function(){ [native code] }