1 typeof
1. console.
log(
typeof2)
;// number
2. console.
log(
typeof
true);
// boolean
3. console.
log(
typeof
'str');
// string
4. console.
log(
typeof
);// object 陣列的資料型別在 typeof 中被解釋為 object
5. console.
log(
typeof
function()
);// function
6. console.
log(
typeof);
// object
7. console.
log(
typeof undefined)
;// undefined
8. console.
log(
typeof
null);
// object null 的資料型別被 typeof 解釋為 object
可以判斷資料型別,它返回表示資料型別的字串(返回結果只能包括number,boolean,string,function,object,undefined);
可以使用typeof判斷變數是否存在(如if(typeof a!=「undefined」));
typeof 運算子的問題是無論引用的物件是什麼型別 它都返回object
2 instanceof
因為a instanceof b 可以判斷a是不是b的例項,返回乙個布林值,由構造型別判斷出資料型別
console.
log(
123instanceof
number
,//false
'dsfsf'
instanceof
string
,//false
false
instanceof
boolean
,//false[1
,2,3
]instanceof
array
,//true
instanceof
object
,//true
function()
instanceof
function
,//true
undefined instanceof
object
,//false
null
instanceof
object
,//false
newdate()
instanceof
date
,//true/^
[a-za-z]
$/instanceof
regexp
,//true
newerror()
instanceof
error
//true
)
還需要注意null和undefined都返回了false,這是因為它們的型別就是自己本身,並不是object建立出來它們,所以返回了false。
3 constructor
利用例項化物件的constructor屬性指向建構函式自己
不能用於undefined 與 null 因為它們沒有建構函式
var num =12;
console.
log(
.constructor)
;//array
console.
log(
'string'
.constructor)
;//string
console.
log(num.constructor)
;//number
console.
log(
newobject()
.constructor)
;//object
但如果宣告了乙個建構函式,並且把他的原型指向改變了,這種情況下,constructor 也不能準確的判斷
4 object.prototype.tostring.call()
var tostring = object.prototype.tostring;
tostring.
call
(123);
//"[object number]"
tostring.
call
('abcdef');
//"[object string]"
tostring.
call
(true);
//"[object boolean]"
tostring.
call([
1,2,
3,4]
);//"[object array]"
tostring.
call()
;//"[object object]"
tostring.
call
(function()
);//"[object function]"
tostring.
call
(undefined)
;//"[object undefined]"
tostring.
call
(null);
//"[object null]"
tostring.
call
(new
date()
);//"[object date]"
tostring.
call
(/^[a-za-z]$/);
//"[object regexp]"
tostring.
call
(new
error()
);//"[object error]"
使用object.prototype.tostring.call()的方式來判斷乙個變數的型別是最準確的方法。
jquery.type(obj)
檢測obj的資料型別。
jquery.
type
(true
)===
"boolean"
jquery.
type(3
)===
"number"
jquery.
type
("test"
)===
"string"
jquery.
type
(function()
)===
"function"
jquery.
type([
])==="array"
jquery.
type
(new
date()
)===
"date"
jquery.
type
(/test/
)===
"regexp"
jq中封裝的方法也可以非常準確的判讀資料型別 js判斷資料型別
1 typeof 形如 var x xx typeof x string 返回型別有 undefined string number boolean function object 缺點 對於object型別不能細分是什麼型別 優點 對空null的判斷 undefined 的應用 2 instanc...
js判斷資料型別
了解js的都知道,有個typeof 用來判斷各種資料型別,有兩種寫法 typeof typeof 如下例項 typeof 2 輸出 number typeof null 輸出 object typeof 輸出 object typeof 輸出 object typeof function 輸出 fu...
js判斷資料型別
1 判斷是否為陣列型別 2 判斷是否為字串型別 3 判斷是否為數值型別 isnan 變數 如果為true就是數字型別 注意這個函式一般針對數字型別來判斷是否值為nan,若變數為非數字型別,則先轉化為數字型別再做判斷,用此函式時,別忘考慮空串和空格 這倆轉化為數字是0 4 判斷是否為日期型別 5 判斷...