Javascript語法筆記一之typeof與instanceof的用法

         這幾天在看邱俊濤著的《Javascript核心概念與實踐》書籍,及這幾天看到前端面試疑難題解析的博文,感覺對Javascript語言編程有一步認識與理解,然後將這些理解分享給大家,希望小編的想法可以正確引導你。不過小編也不排除下面想法可能存在問題,但是博友發現問題請在評論中指出,讓你的正確思想正確指導我們,分享你的成就。

一、typeof  與 instanceof 的用法

這裏先看一下這兩個含義:

typeof  是一個一元的操作符(運算符),一般放在運算數之前,用來判斷運算數的類型,返回值是一個字符串,一般只有以下number,boolean,string,function,object,undefined六個字符串。

instanceof也是一個運算符,一般用來判斷運算數是不是某一類的實例。 返回值是boolean值。結構列如: O  instanceof  A     O表示運算數,A表示某一類。

下面舉例說明:

var a = 1;
var b = 3.21454;
var c = "Hello world!";
var d = [1,2,3];
var e = new Object();
var f = function(){
	console.log("Hello world!");
}

console.log(typeof a);
console.log(typeof b);
console.log(typeof c);
console.log(typeof d);
console.log(typeof e);
console.log(typeof f);
運行結果是:

number
number
string
object
object
function

這裏大家也看到了d是一個數組Array,但是它typeof運算後也是Object。所以用typeof判斷時要注意是否有Array數組。如何判斷是否是Array後面小編會說明。現在先看instanceof的例子:

var d = [1,2,3];
var f = function(){
	console.log("Hello world!");
}

var bRes = d instanceof Array;
console.log(bRes);
var bRes = d instanceof Object;
console.log(bRes);
bRes = f instanceof Function;
console.log(bRes);
bRes = f instanceof Object;
console.log(bRes);
bRes = Array instanceof Object;
console.log(bRes);
bRes = Function instanceof Object;
console.log(bRes);
結果:

true
true
true
true

true

true

沒有看錯,它全部都是正確的,因爲在Javascript語言中,可是這樣將一切都是對象。  

上面不是還沒有講述如果判斷Array嗎?  只要結合typeof與instanceof一起使用就可以正確判斷。


注:這裏還有一個特殊:

console.log(typeof null);
console.log(typeof undefined);

結果是: Object

undefined

小編先寫這裏,如果有不對的地方,望博友們可以評論提出,謝謝!










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章