JS數(shù)據(jù)類型
*ECMAScript類型 : 5種基本類型(簡單數(shù)據(jù)和原始數(shù)據(jù))和 1種復雜的數(shù)據(jù)類型;
5種基本的類型包括:
undefined (未定義類型);
boolean (布爾類型)贱鼻;
null(空類型);
number(數(shù)字類型);
string(字符串類型)壤蚜;
1種復雜類型 object --對象類型;
*檢測變量的數(shù)據(jù)類型(typeof 操作符) typeof 變量名 或者 typeof(變量名)徊哑;
可能返回以下類型:
“undefined” --如果這個值未定義袜刷;
"boolean"--如果這個值是布爾值;
"number"--如果這個值是數(shù)據(jù)類型莺丑;
"string"--如果這個值是數(shù)據(jù)類型著蟹;
"function"--如果這個值是函數(shù);
"object"--如果這個值是對象或null梢莽;
var a =
console.log(typeof(a));
返回類型為"undefined";
var a = true;
console.log(typeof(a));
返回類型為"boolean";
var a = false;
console.log(typeof(a));
返回類型為"boolean"
var a = 123213214234;
console.log(typeof(a));
返回類型為"unmber"
var a = NaN;
console.log(typeof(a));
返回類型為"number"
var a = "123124234124";
console.log(typeof(a));
返回類型為"string";
var a = {
b:123
};
console.log(typeof(a));
返回類型為"object"
var a = null;
console.log(typeof(a));
返回類型為"object"
var a = isNaN;
console.log(typeof(a));
返回類型為"function";
var a = Function;
console.log(typeof(a));
返回類型為"function"
*Undefined--未定義類型萧豆;
Undefined類型只有一個值,即特殊的undefined;
(1)使用var聲明變量但未賦值(未初始化)時昏名,這個變量值就是undefined涮雷。檢測其類型也是undefined;
(2)變量從未定義過,它的類型為undefined,值報錯轻局;
console.log(a);//// e is not defined;
console.log(typeof a); //"undefined";
*Null --空類型洪鸭;
Null是第二個只有一個值的類型,這個特殊的值是null仑扑。null表示一個空指針對象卿嘲;
Null是特殊的對象類型:object;
var a = null;
console.log(a);//null;
console.log(typeof(a)); //object;
實際上undefined值是由null值派生而出的,因此ECMA-262對他們的想等測試要返回true;
console.log(null==undefined);//true;
*Boolean --布爾類型夫壁;
Boolean類型是ECMAScript使用的最多的類型拾枣;
Boolean 只有兩個值 true(真)//false(假);
調(diào)用轉(zhuǎn)型函數(shù):Boolean()可以將ECMAScript中所有類型的值轉(zhuǎn)成相應的布爾值盒让;
var a = "sss";
console.log(Boolean(a));//true;
轉(zhuǎn)化為true的值梅肤;true;任何非空字符串;任何非0的數(shù)字邑茄;任何對象姨蝴;無;
轉(zhuǎn)化為false的值肺缕;false; null; 0; NaN;Undefined; '''';
*Number--數(shù)字類型左医;
*NaN:no a Number 不是一個數(shù)字 特殊的數(shù)字類型授帕;
表示一個本來要返回數(shù)值的操作數(shù)未返回數(shù)值的情況。
NaN特點:任何涉及NaN的操作都會返回NaN;
NaN與任何值都不相等浮梢,包括NaN本身 跛十。
console.log(NaN== NaN); //false;
isNaN(參數(shù)):判斷參數(shù)是否"不是數(shù)值"。如果是數(shù)值返回false,不是數(shù)值返回true秕硝;
console.log(isNaN(NaN)); true;
console.log(isNaN(10));false因為10是一個數(shù)值芥映;所以為false;因為isNaN是判斷是不是 “不是一個數(shù)值”;
console.log(isNaN("10"));flase 因為“10”是一個字符串而isNaN是判斷數(shù)值远豺,所以會把他先吧"10"里面的10轉(zhuǎn)換一下成為數(shù)值所以是flase;
console.log(isNaN("adsfsdfsdf"));true 因為里面的字母不是數(shù)值所以無法轉(zhuǎn)換成數(shù)值所以是true;
console.log(isNaN(true));flase 因為true能轉(zhuǎn)換成為1所以是flase;
console.log(isNaN(false));flase 因為flase能轉(zhuǎn)換成為1所以是flase;
*數(shù)值轉(zhuǎn)換奈偏;有三個函數(shù)可以把非數(shù)值轉(zhuǎn)換為數(shù)值;
console.log(Number("10"));