型別檢測 typeof和instanceof
阿新 • • 發佈:2022-01-20
typeof
typeof
用於返回以下原始型別
- 基本型別:number/string/boolean
- function
- object
- undefined
可以使用typeof用於判斷資料的型別
let a = 1; console.log(typeof a); //number let b = "1"; console.log(typeof b); //string //未賦值或不存在的變數返回undefined var hd; console.log(typeof hd); function run() {} console.log(typeof run); //function let c = [1, 2, 3]; console.log(typeof c); //object let d = { name: "houdunren.com" }; console.log(typeof d); //object
instanceof
instanceof
運算子用於檢測建構函式的prototype
屬性是否出現在某個例項物件的原型鏈上。
也可以理解為是否為某個物件的例項,typeof
不能區分陣列,但instanceof
則可以。
let hd = []; let houdunren = {}; console.log(hd instanceof Array); //true console.log(houdunren instanceof Array); //false let c = [1, 2, 3]; console.log(c instanceof Array); //true let d = { name: "houdunren.com" }; console.log(d instanceof Object); //true function User() {} let hd = new User(); console.log(hd instanceof User); //true
值型別與物件
下面是使用字面量與物件方法建立字串,返回的是不同型別。
let hd = "houdunren"; let cms = new String("hdcms"); console.log(typeof hd, typeof cms); //string object