js資料型別判斷

2021-10-24 03:30:56 字數 4668 閱讀 4831

typeofinstanceofconstructorobject.prototype.tostring.call()jquery.type()

1.typeof判斷基本資料型別的,當變數是:number, string, boolean, function, undefined, object型別時,可以使用typeof進行判斷。當變數是arr, json, null, date, reg, error 型別時全部被錯誤的檢測為object型別。使用它會返回乙個字串

2. instanceof是判斷引用資料型別的。返回乙個布林值,表示物件是否為某個建構函式的例項。它不能檢測null 和 undefined

注意(instanceof 不是乙個函式,是乙個操作符)

舉例:判斷a是否為b的例項,a instanceof b, 返回 boolean 值。

functionb(

)vara=

newb()

console.

log(

ainstanceofb)

//返回true

//基本資料型別

console.

log(

"1"instanceof

string);

//false

console.

log(

1instanceof

number);

//false

console.

log(

true

instanceof

boolean);

//false

//引用資料型別

console.

log(

instanceof

array);

//true

console.

log(

function()

instanceof

function);

//true

console.

log(

instanceof

object);

//true

3.constructor:除了undefined和null,其它變數都能使用constructor判斷型別。

console.

log(

("1"

).constructor === string)

;//true

console.

log((1

).constructor === number)

;//true

console.

log(

(true

).constructor === boolean)

;//true

console.

log(([

]).constructor === array)

;//true

console.

log(

(function()

).constructor === function)

;//true

console.

log(()

.constructor === object)

;//true

console.

log(

(null

).constructor === null)

;//報錯

console.

log(

(undefined)

.constructor === undefined)

;//報錯

宣告了乙個建構函式,並且把他的原型指向了array的原型。這時constructor也是不行的

舉個例子:

functionfn(

);fn.prototype=

newarray()

;var f=

newfn()

;console.

log(f.constructor===fn)

;//false

console.

log(f.constructor===array)

;//true

原因:1、array屬於引用型資料,在傳遞過程中,僅僅是引用位址的傳遞。2、每個頁面的array原生物件所引用的位址是不一樣的,在子頁面宣告的array,所對應的建構函式,是子頁面的array物件;父頁面來進行判斷,使用的array並不等於子頁面的array;切記,不然很難跟蹤問題!

4.object.prototype.tostring.call()什麼資料型別都可以判斷

console.

log(object.prototype.tostring.

call(1

));//[object number]

console.

log(object.prototype.tostring.

call

("1"))

;//[object string]

console.

log(object.prototype.tostring.

call

(true))

;//[object boolean]

console.

log(object.prototype.tostring.

call([

]));

//[object array]

console.

log(object.prototype.tostring.

call

(function()

));//[object function]

console.

log(object.prototype.tostring.

call()

);//[object object]

console.

log(object.prototype.tostring.

call

(null))

;//[object null]

console.

log(object.prototype.tostring.

call

(undefined));

//[object undefined]

5.jquery.type()萬能的方法,如果物件是undefined或null,則返回相應的「undefined」或「null」。

jquery.

type

( undefined )

==="undefined"

jquery.

type()

==="undefined"

jquery.

type

( window.notdefined )

==="undefined"

jquery.

type

(null

)===

"null"

如果物件有乙個內部的[

[class]

]和乙個瀏覽器的內建物件的 [

[class]

] 相同,我們返回相應的 [

[class]

]名字。

(有關此技術的更多細節。 )

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

(new

error()

)===

"error"

// as of jquery 1.9

jquery.

type

(/test/

)===

"regexp"

其他一切都將返回它的型別「object」

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