萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> javascript中typeof操作符和constucor屬性檢測

javascript中typeof操作符和constucor屬性檢測

  這篇文章主要介紹了javascript中typeof操作符和constucor屬性檢測的相關資料,需要的朋友可以參考下

  *#type.js

  代碼如下:

  function Person(name, age) {

  this.name = name;

  this.age = age;

  }

  var d = {an: 'object'};

  var a = ['apple', 'banana'];

  var f = function() {};

  var s = 'David';

  var n = 33;

  var b = true;

  var o = new Object();

  var person = new Person('Mark', 22);

  console.log(typeof(d) + ': ' + d.constructor);

  console.log(typeof(a) + ': ' + a.constructor);

  console.log(typeof(f) + ': ' + f.constructor);

  console.log(typeof(s) + ': ' + s.constructor);

  console.log(typeof(n) + ': ' + n.constructor);

  console.log(typeof(b) + ': ' + b.constructor);

  console.log(typeof(o) + ': ' + o.constructor);

  console.log(typeof(person) + ': ' + person.constructor);

  運行$node type.js得

  代碼如下:

  object: function Object() { [native code] }

  object: function Array() { [native code] }

  function: function Function() { [native code] }

  string: function String() { [native code] }

  number: function Number() { [native code] }

  boolean: function Boolean() { [native code] }

  object: function Object() { [native code] }

  object: function Person() { [native code] }

  可見, 使用typeof操作符和constucor屬性檢測對象類型返回值是存在差異的.

  如果變量是數組, typeof操作符返回object, constructor屬性返回Array;

  如果變量是構造函數對象, typeof操作符返回object, constructor屬性返回該構造函數

  每個變量都有其construcor屬性, 這個屬性不單單提供了這個是否對象, 還提供了這個對象是什麼類型的對象. 總之, constructor屬性保存了一個指向對象的構造函數, 無論它是自定義的還是原生類型的對象.

 

  有一點需要注意的是, 不同的浏覽器對typeof操作符檢測正則表達式會有所不同,IE和Firefox會返回'object'.

 
copyright © 萬盛學電腦網 all rights reserved