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

instanceof typeof isArray相关推荐

  1. javascript : instanceof,typeof,constructor

    数据类型 javascript中包含6种数据类型:undefined.null.string.number.boolean和object.其中,前5 种是原始数据类型,object是对象类型. obj ...

  2. java判断对象是否为数组 并且取得数组的值 --- 用instanceof或则isArray() 方法

    今天项目逻辑需要传个数组过去..然后调用一个通用方法.但是这个方法的参数是 object  如果改变这个参数类型 其他模块调用这个方法就会出现问题 最后解决办法是在dao层加入了一个判断 这是dao层 ...

  3. 判断对象是否是数组instanceof和isArray

    instanceof问题在于,它假定了单一的全局执行环境.如果网页中包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的Array构造函数.如果你从一个框架向另一个框架传 ...

  4. instanceof 与 isArray

    当检测Array实例时,Array.isArray 优于 instanceof ,因为 Array.isArray 可以检测出 iframes var iframe = document.create ...

  5. 《前端防坑》- JS基础 - Array.isArray()结果一定准确吗?

    在研究伪数组的时候发现了一个小问题,记录下,就是Array.isArray()判断数组的方法可能与instanceof判断出的结果可能不同. 参考文章:https://www.jianshu.com/ ...

  6. typeof和instanceof

    typeof一般用于检测基本类型,而对引用类型的检测一般用 instanceof. typeof和instanceof属于运算符,和+  -  *  /是一样的. typeof的返回值是字符串包括:' ...

  7. javascript Array.isArray

    Array.isArray(obj) 可以用来判断obj是不是一个数组 Array.isArray 是ES5引入的方法,可以使用Object.prototype.toString.call()来实现 ...

  8. 如何判断一个变量是否为数组(isArray)

    在我们平时的工作中经常会用到如何判断一个变量是否为数组.常用的方法很多,有用常用框架里面的,isArray.但是关于这个isArray的实现,各有不同. 常用的方法有如下几种 1.instanceof ...

  9. 前端JavaScript基础知识点

    JavaScript基础 阶段说明 JavaScript基础 Web API JavaScript高级 ##第一天重点内容 变量的声明及使用 数据类型 类型转换 运算符 JavaScript的组成 E ...

最新文章

  1. DevExpress的XtraReport中的Report Bands介绍和使用心得(帮助文档)
  2. 找不到_笔记本找不到无线网络怎么办
  3. 尝鲜 workerize 源码
  4. 原生js cookie本地存储
  5. maven 打包时缺少文件_maven父子工程---子模块相互依赖打包时所遇到的问题:依赖的程序包找不到...
  6. 华为机试——合并表记录
  7. CentOS7.2中使用Kubernetes(k8s)1.4.6源码搭建k8s容器集群环境
  8. 向架构师进军--定义需求
  9. Linux下的free命令
  10. Documentation目录下的as-iosched.txt文档翻译
  11. .ipynb文件的使用问题
  12. tbslog乱码转换_word 编码 转换器 在线转换器
  13. WPS国际版2019 中文
  14. ICP算法学习笔记(原理加公式理解)
  15. 【C++】实现自旋锁互斥(TAS 算法和 CAS 算法)
  16. 计算机硬盘使用率测试软件,测试硬盘速度的10款软件
  17. 孩子们的世界很大,很大...(评刘海强日记)
  18. linux最后一行awk,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  19. ctfshow—2023愚人杯wp
  20. UE4关于材质的几个小技巧

热门文章

  1. 最佳实践-代码评审歪诗
  2. 统计学(三):几种常见的概率分布
  3. 截的图片有边框怎么删除_【未解决】mac中去除所有截图工具截图截取窗口时的边框...
  4. Vue2.0 Vue路由_路由的几个注意点
  5. 马云西点军校华为_马云西点军校演讲:领导力是因为相信,所以看见!
  6. Android实现时间选择器
  7. JS - 实现时间选择器
  8. element日期时间选择器限制时间选择(精确到小时)
  9. 7TPSM4220微型步进电机驱动器--ARDUINO驱动
  10. 房贷计算器——新增选择还款方式