1. 程式人生 > 其它 >型別檢測 typeof和instanceof

型別檢測 typeof和instanceof

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