JS 資料型別檢測

2021-10-10 16:52:19 字數 3059 閱讀 7522

tpeof [val]:用來檢測資料型別的運算子。

基於typeof檢測出來的結果:

首先是乙個字串

字串中是對應的型別

侷限性:

typeof null =>「object」 但是null並不是物件

基於typeof 無法細分出當前值是普通物件還是陣列物件等,只要是物件型別,返回結果都是"object"

typeof可以檢測基本型別,但引用型別均返回object(function 返回 function)

console.

log(

'1'instanceof

string);

//false

console.

log(

1instanceof

number);

//false

console.

log(

true

instanceof

boolean);

//false

console.

log(

function()

instanceof

function);

//true

console.

log(

instanceof

array);

//true

instanceof 可以用於引用型別的檢測,但對於基本型別是不生效的,另外:不能用於檢測null 和 undefined。

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

constructor方法不能用於檢測nullundefined

var test = object.prototype.tostring;

console.

log(test.

call

("str"))

;console.

log(test.

call(1

));console.

log(test.

call

(true))

;console.

log(test.

call

(null))

;console.

log(test.

call

(undefined));

console.

log(test.

call([

]));

console.

log(test.

call

(function()

));console.

log(test.

call()

);

結果:

[object string]

[object number]

[object boolean]

[object null]

[object undefined]

[object array]

[object function]

[object object]

這個方法可以用來檢測任意型別的資料。

確定物件之間是否存在某種關係。

object.getpropertyof()返回的是這個物件的原型。

//前提:person是建構函式,person2是例項物件

log(person.prototype.

isprototypeof

(person2));

log(object.

getpropertyof

(person2)

== person.property)

檢測乙個屬性是否存在例項中,還是存在原型中。,只有存在例項中的屬性才會返回true。(注意:當例項重寫了原型屬性後就變成了例項屬性,這個時候也會返回true。)

function

person()

person.prototype.name =

'nicholas'

;let person =

newperson()

;log

(person1.

hasownproperty

('name'))

//false

person1.name =

'greg'

;log

(person1.

hasownproperty

('name'))

//true (name來自例項)

delete person1.name;

log(person1.

hasownproperty

('name'))

//false (name來自原型)

單獨使用in操作符會在通過物件能夠訪問給定屬性時返回true,不論該屬性是在原型中還是例項中。

log('name' in person1);

js檢測資料型別

要檢測乙個變數是不是基本資料型別?typeof 操作符是最佳的工具。說得更具體一 點,typeof 操作符是確定乙個變數是字串 數值 布林值,還是undefined 的最佳工具。如果變 量的值是乙個物件或null,則typeof 操作符會像下面例子中所示的那樣返回 object var s nich...

JS資料型別檢測

在js的日常使用中,經常需要檢測資料的型別,現在,就來看一下,js有哪些方法可以檢測資料的型別。typeof操作符返回乙個字串,表示未經計算的運算元的型別。typeof是js原生提供用來檢測型別的api,然而,並沒有什麼用。為什麼呢?因為,typeof不能準確地檢測出我們所想要知道的資料的型別。ty...

js檢測資料型別

一 js中資料型別 二 判斷資料型別 下面將對如下資料進行判斷它們的型別 var bool true var num 1 var str abc var und undefined var nul null var arr 1,2,3 var obj var fun function 1.使用typ...