javascript
JavaScript中instanceof运算符的用法以及和typeof的区别
栗子①: var aColors = ["red", "green", "blue"]; alert(typeof aColors[0]); //"string" alert(aColors[0] instanceof String); //"false"
alert(aColors instanceof Array); //true
你要區分string 與 String的區別 ,?aColors[0] 是 string值類型, 當然不是String的實例啦。
參考下面代碼?
var aColors = ["red", "green", "blue"]; aColors[0]= new String("1") alert(typeof aColors[0]); //output "Object" alert(aColors[0] instanceof String); //output "true";instanceof和typeof都能用來判斷一個變量是否為空或是什么類型的變量。?
typeof:用以獲取一個變量的類型,typeof一般只能返回如下幾個結果:number,boolean,string,function,object,undefined。
我們可以使用typeof來獲取一個變量是否存在,如if(typeof a!="undefined"){},而不要去使用if(a)因為如果a不存在(未聲明)則會出錯,對于Array,Null等特殊對象使用typeof 一律返回object,這正是typeof的局限性。?
如果我們希望獲取一個對象是否是數組,或判斷某個變量是否是某個對象的實例則要選擇使用instanceof。
instanceof用于判斷一個變量是否某個對象的實例,如
var a=new Array(); alert(a instanceof Array); //會返回true alert(a instanceof Object) //也會返回true;這是因為Array是object的子類function test(){}; var a=new test(); alert(a instanceof test) //會返回truefunction的arguments,我們大家也許都認為arguments是一個Array,但如果使用instaceof去測試會發現arguments不是一個Array對象,盡管看起來很像。?
?測試?
var a=new Array(); if (a instanceof Object) alert('Y'); else alert('N'); //Y但 :
if (window instanceof Object) alert('Y'); else alert('N'); //N所以,這里的instanceof測試的object是指js語法中的object,不是指dom模型對象。?
使用typeof會有些區別?
?
年輕的時候,少說廢話,多做事。
摘自:http://www.jb51.net/article/22717.htm
轉載于:https://www.cnblogs.com/yuqingfamily/p/5792259.html
總結
以上是生活随笔為你收集整理的JavaScript中instanceof运算符的用法以及和typeof的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷P1546 最短网络 Agri-Ne
- 下一篇: 【有美女看】提升用户体验,你不得不知道的