- 浏览: 123630 次
- 性别:
- 来自: 成都
-
文章分类
最新评论
-
煎蛋就是幸福:
...
试读《跨终端Web》 -
xiaoshitoushifa:
最好把demo贴上啊!发一份到435065893@qq.com ...
漂亮的系统后台UI 欣赏 -
xiaoshitoushifa:
只有图片 没有demo 啊
漂亮的系统后台UI 欣赏
<script type="text/javascript"> var aColors = ["red", "green", "blue"]; alert(typeof aColors[0]); //output "string" alert(aColors[0] instanceof String); //output "false"; </script>
你要区分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 运算符
返回一个 Boolean 值,指出对象是否是特定类的一个实例。
result = object instanceof class
参数
result
必选项。任意变量。
object
必选项。任意对象表达式。
class
必选项。任意已定义的对象类。
说明
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
示例
下面的例子举例说明了 instanceof 运算符的用法。
function objTest(obj){ var i, t, s = ""; // 创建变量。 t = new Array(); // 创建一个数组。 t["Date"] = Date; // 填充数组。 t["Object"] = Object; t["Array"] = Array; for (i in t) { if (obj instanceof t[i]) // 检查 obj 的类。 { s += "obj is an instance of " + i + "\n"; } else { s += "obj is not an instance of " + i + "\n"; } } return(s); // 返回字符串。 } var obj = new Date(); document.write(objTest(obj));
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)会返回true。
谈到instanceof我们要多插入一个问题,就是function的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会有些区别
alert(typeof(window) 会得 object
年轻的时候,先少废话,多做事。
发表评论
-
javascript 数据类型判断
2014-10-13 14:44 764javascript 中判断数据类型有两种情况:1.基本数据 ... -
阻止事件追加
2014-10-11 12:04 902有些时候可以使用 e.stopPropagation(); ... -
试读《ECMAScript6入门》
2014-09-20 00:01 1333ECMA 对于前端开发工作的我并不陌生,《Ja ... -
javascript 宽度获取
2014-09-11 11:27 623网页可见区域宽:document.body.clientWi ... -
用jquery开发幻灯片播放功能(完整版)
2014-04-10 12:08 955很久没有写了,今天写一个简单的效果,幻灯片无限滚动和大家一起 ... -
看了一篇 “javascript 绝句欣赏”
2013-07-24 16:37 0看了一篇 “javascript 绝句欣赏”这里面的代码写 ... -
javascript 闭包的理解
2013-05-17 16:06 1183javascript中的作用域、 ... -
javascript forEach的实现
2013-04-10 11:43 647function forEach(ary,fn){ ... -
call理解
2013-04-09 16:40 888call使用情况 1.class.call(obj) ... -
富文本框参考
2013-01-31 17:56 0http://www.cnblogs.com/bluedrea ... -
JavaScript中prototype、__proto__、Function、Object等
2012-11-07 15:46 942javascript 灵活度太大了,比如定义一个类,就可以使用 ... -
javascript call的使用
2012-11-06 01:18 717Javascript中call的使用自己感觉蛮纠结的,根 ... -
javascript 继承的实现
2012-11-06 00:55 8581.类抄写 function parent(){ ... -
利用正则表达式实现去除所有HTML标签代码
2012-09-22 10:00 2625"<[^>]*>"; / ... -
javascript判断页面加载(页面下载)是否完毕
2012-09-11 16:03 1632首先要明确两个概念 1.window.onload:页面加载 ... -
如何发送简单请求
2012-08-30 15:08 852使用XMLHttpRequest 对象发送请求的基本步骤: ... -
javascript 正则 捕获组与非捕获组
2012-08-30 11:26 2681捕获组 语法: ... -
dom
2012-08-23 11:08 794继承在dom中的重要性,以下为a标记继承关系图 ... -
查看浏览器dom支持情况
2012-08-23 10:15 768查看浏览器dom支持情况 http://www.w3. ... -
浏览器之间的差别是处理dom对象的不同
2012-08-22 17:24 769dom是一组用来描述脚本怎样与结构化文档进行交互和访问的 ...
相关推荐
JS 中 typeof 与 instanceof 的区别 在 JavaScript 中,typeof 和 instanceof 是两个常用的运算符,用来判断一个变量是否为空,或者是什么类型的。但是,这两个运算符之间还是有区别的。 typeof 运算符是一个一元...
typeof用以获取一个变量的类型,typeof一般只能返回如下几个结果:number,boolean,string,function,object,undefined。我们可以使用typeof来获取一个变量是否存在,如 if(typeof a != “undefined”){},而不要去...
在JavaScript中,typeof和instanceof是常用的两种检测数据类型的方式,它们各自有其适用的场景和特点。 ### typeof typeof 是一个一元运算符,它用于返回变量或表达式的类型。当使用typeof运算符时,它通常会返回...
在JavaScript中,`typeof`和`instanceof`是两种常用的类型检查操作符,它们各自有其独特的用法和局限性。 `typeof`操作符是一个一元运算符,它用于确定变量或表达式的类型,并返回一个表示该类型的字符串。`typeof`...
本文将深入探讨四种常用的方法来识别和判断JavaScript中的数据类型:`typeof`、`instanceof`、`constructor`以及`prototype`。 ### 1. `typeof` `typeof`操作符是最常见的类型检测方式之一,它返回一个表示未经计算...
在JavaScript中,`typeof`和`instanceof`是两种常用的类型检查操作符,它们都用于检测变量的类型,但有着不同的用法和返回结果。理解它们的区别对于编写健壮的JavaScript代码至关重要。 `typeof`是一个一元操作符,...
在JavaScript中,`instanceof`和`typeof`是两种常用的运算符,用于检查变量的数据类型或实例关系。本文将详细解析这两个运算符的用法和区别。 `typeof`运算符是一个一元运算符,用于获取表达式的数据类型的字符串。...
但是,无论是使用typeof还是instanceof,在面对JavaScript中类型判断的复杂性时,开发者都应时刻注意其局限性和可能出现的意外情况。例如,在处理复杂的继承关系、不同作用域下的变量类型判断,以及在使用多个框架或...
总结来说,`typeof`和`instanceof`的主要区别在于: - `typeof`主要用来检测基本数据类型,对于引用类型(除了函数)都返回 "object"。 - `instanceof`用于判断对象是否为特定构造函数的实例,依赖于原型链。 在...
在javascript中,typeof 和 instanceof 是用来判断数据类型比较通用的两个方法,这篇文章的目的是通过对这两个方法介绍来分析其存在的不足并提出优化方案。 typeof ——————————————————————...
在JavaScript编程语言中,`instanceof` 和 `typeof` 是两个非常重要的操作符,用于判断变量的类型。它们各自有着不同的用途和用法,对于理解和调试代码至关重要。 首先,我们来详细了解一下`instanceof`操作符。`...
写javascirpt代码时,typeof和instanceof这两个操作符时不时就会用到,堪称必用。但是!使用它们总是不能直接的得到想要的结果,非常纠结,普遍的说法认为“这两个操作符或许是javascript中最大的设计缺陷,因为几乎...