6種數(shù)據(jù)類型
基本數(shù)據(jù)類型
String 字符串
Number 數(shù)字類型
Boolean 布爾值
Null 空值 表示非對象
Undefined 未定義的值绵患,表示未賦值的初始化值
引用數(shù)據(jù)類型
Object 泛指對象 包括狹義的對象Object霎挟、數(shù)組Array和函數(shù)Function悄但。
檢測數(shù)據(jù)類型
typeof 運(yùn)算符可以檢測數(shù)據(jù)的基本類型。
1母廷、 對于數(shù)字類型的值轻黑,typeof會返回number,注意:NaN本身也是一個數(shù)字類型琴昆,因?yàn)樗贘avaScript中代表的是特殊非數(shù)字值氓鄙。
在JavaScript中,特殊的數(shù)字類型還有幾種:
Infinity 表示無窮大特殊值
NaN 特殊的非數(shù)字值
Number.MAX_VALUE 可表示的最大數(shù)字
Number.MIN_VALUE 可表示的最小數(shù)字(與零最接近)
Number.NaN 特殊的非數(shù)字值
Number.POSITIVE_INFINITY 表示正無窮大的特殊值
Number.NEGATIVE_INFINITY 表 示負(fù)無窮大的特殊值
console.log(typeof 123); //'number'
console.log(typeof NaN); //'number'
console.log(typeof(Number.MIN_VALUE)); // number
console.log(typeof(Infinity)); // number
2业舍、 對于字符串類型的值抖拦,typeof會返回string。
console.log(typeof '123'); //'string'
3舷暮、 對于布爾類型的值态罪,typeof會返回boolean。
console.log(typeof(true)); //'boolean'
4下面、 對于對象复颈,數(shù)組,null而言沥割,typeof會返回object
console.log(typeof []); //'object'
console.log(typeof {}); //'object'
var obj = new String();
console.log(typeof obj); //'object'
console.log(typeof window); // object
console.log(typeof document); // object
console.log(typeof null); //'object'
5耗啦、 對于函數(shù)類型而言,typeof返回function
var fn = function(){};
console.log(typeof fn); //'function'
console.log(typeof(class c{})); //'function'
console.log(typeof Array); //'function'
console.log(typeof eval); // function
console.log(typeof Date); // function
6驯遇、 如果運(yùn)算數(shù)沒有定義(未定義或者未初始化)芹彬,將會返回undefined蓄髓。
console.log(typeof a); //'undefined'
console.log(typeof undefined); // undefined
總結(jié)
1叉庐、undefined,null会喝,空字符串(‘’)陡叠,0,NaN都等于false肢执,都可以通過枉阵!來取反。 (if語句)
2预茄、未初始化的變量和未聲明的變量的typeof操作都返回undefined兴溜。
3侦厚、NaN ①任何涉及NaN的操作都會返回NaN。②NaN對任何值都不相等拙徽,包括自己NaN本身刨沦。
console.log(typeof NaN == NaN); //false
JS內(nèi)置了isNaN()函數(shù),來確定數(shù)值是不是NaN類型膘怕。
isNaN() 函數(shù)用于檢查其參數(shù)是否是非數(shù)字值想诅。
如果參數(shù)值為 NaN 或字符串、對象岛心、undefined等非數(shù)字值則返回 true, 否則返回 false来破。
console.log(isNaN(0));//false
console.log(isNaN("Hello"));//true