資料型別判斷

2021-10-24 03:52:09 字數 1494 閱讀 1845

可以判斷基本資料型別,它返回的資料型別的字串(返回結果只能包括number,boolean,string,function,object,undefined)但不能判斷null、array,可以使用typeof判斷變數是否存在(如if(typeof a!=「undefined」));但是對於一些建立的物件,它們都會返回』object』

簡單的示例:

console.log

(typeof a)

; //'undefined'

console.log

(typeof (true)

); //'boolean'

console.log

(typeof '123'

); //'string'

判斷引用資料型別的 用來測試乙個物件在原型鏈中是否存在乙個建構函式prototype 屬性,但它不能檢測null 和 undefined (instanceof 不是乙個函式,是乙個操作符)

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

instanceof 檢測的是原型

**實現:

function student()

var a = new student()

console.log

(a instanceof student) //返回true

除了undefined和null之外,其他型別都可以通過constructor屬性來判斷型別,似乎完全可以應對基本資料型別和引用資料型別, 但如果宣告了乙個建構函式,並且把他的原型指向改變了,這種情況下,constructor 就不行。

**實現:

var str = ""

console.log

(str.constructor) //輸出結果string

完美的解決方案

// **實現:例子 :

var date = newdate()

;object.prototype.tostring.call

(date)

; // "[object date]"

object.prototype.tostring.call

(true)

;// "[object boolean]"

判斷某個物件值屬於哪種內建型別。不能準確判斷乙個例項是否屬於某種型別

實現:返回物件的型別字串,可以用來判斷乙個值的型別

原理:由於例項物件可能會自定義tostring方法,覆蓋掉object.prototype.tostring方法,所以為了得到型別字串,最好直接使用object.prototype.tostring方法。通過函式的call方法,可以在任意值上呼叫這個方法,幫助我們判斷這個值的型別。

判斷資料型別

typeof 如果使用typeof來判斷資料型別的話,結果如下 var num new number 123 var str new string 1223 var bool new boolean false console.log typeof 123,number typeof num,obj...

判斷資料型別

typeof 判斷基本資料型別 不能區分null object 弊端不能區分 陣列 物件 和 null console.log typeof dddd console.log typeof 12 console.log typeof true console.log typeof undefined...

判斷資料型別

1 typeof 只能判斷基本資料型別,不能判斷引用資料型別 判斷出來的都是object string number boolean undefined object function symbol 2 instanceof 判斷乙個物件是否是乙個類的例項 只能進行型別的對比,不能進行型別的判斷 3...