js資料型別判斷

2021-10-24 03:35:02 字數 3880 閱讀 6233

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 判斷...