instanceof typeof isArray

typeof

typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。

返回以下结果:
“number” “string” “undefined” “boolean” “function” “object”

判断一个变量是否存在可以用typeof ,而不能用if(a),应为a未定义会报错。

经常会在js里用到数组,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是数组. 

if(document.mylist.length != "undefined" ) {} //这个用法有误. 

正确的是 if( typeof(document.mylist.length) != "undefined" ) {} 

或 if( !isNaN(document.mylist.length) ) {}

typeof的运算数未定义,返回的就是 “undefined”.
typeof Null object
typeof Array object

instanceof

instanceof运算符用来判断一个构造函数的prototype属性(原型对象)是否存在另外一个要检测对象的原型链上。

var  a=function(){
this.name="a"
}
var A=new a()
A instanceof a     true
A instanceof Object   true

isArray()

Array.isArray() 用于确定传递的值是否是一个 Array。

当检测Array实例时, Array.isArray 优于 instanceof,因为Array.isArray能检测iframes.

var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // [1,2,3]

// Correctly checking for Array
Array.isArray(arr);  // true
// Considered harmful, because doesn't work though iframes
arr instanceof Array; // false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值