Javascript中常用的检测方法小结


Posted in Javascript onOctober 08, 2016

一、数组检测

1.使用ARRAY.ISARRAY()

Array.isArray(obj)

例如:

Array.isArray([]) //true
Array.isArray({}) //false

兼容性:

CHROME FIREFOX IE OPERA SAFARI
5 4.0(2.0) 9 10.5 5

可以使用以下方式,先检测是否支持Array.isArray

if(Array.isArray){
  return Array.isArray(obj);
}

2. 使用INSTANCEOF

arr instanceof Array

例如:

var arr=[];
console.log(arr instanceof Array); //true

3. 使用OBJECT.PROTOTYPE.TOSTRING方法

if( Object.prototype.toString.call(arr) === '[object Array]' ) {
  console.log("yes");
}

4.使用CONSTRUCTOR的方法

function isArray(obj){
  return !!obj && Array === obj.constructor;
}

二、类型检测

typeof操作符检测给定变量的数据类型

typeof operand //operand 是一个表达式,表示对象或原始值

以下是一些常见类型的返回结果,值得注意的是null返回的是object,其实对于引用类型的判断都为object。

 TYPE   RESULT
 Undefined “undefined”
 Null “object” (see below)
 Boolean “boolean”
Number “number”
String “string”
Symbol (new in ECMAScript 2015)  “symbol”
Host object (provided by the JS environment) Implementation-dependent
Function object (implements [[Call]] in ECMA-262 terms) “function”
Any other object “object”

三、对象类型检测

1. INSTANCEOF

用来检测 constructor.prototype是否存在于object 的原型链上

使用方式:

object instanceof constructor

举个例子:

function A(){};
var a=new A();
a instanceof A //true
a instanceof Object //true
a.prototype instanceof Object //true

2. ISPROTOTYPEOF

只要是原型链所派生的实例的原型,会返回true

Object.prototype.isPrototypeOf(instance);

这里需要注意的是与instanceof的区别,在constructors被复写,而又没有重新制定的情况下,照样可以使用isPrototype

var A = {
 //something
}
var B = Object.create(A);
var C = Object.create(B);

console.log(A.isPrototypeOf(C)); // true
console.log(C instanceof A);   //TypeError

3. HASOWNPROPERTY

hasOwnProperty() 方法用来判断某个对象是否含有指定的自身属性。

4. OBJECT.IS()

用来比较两个值是否严格相等,与===相同

四、基本类型检测

NUMBER

Number.isFinite()

用来检查一个数值是否为有限的(finite)

Number.isNaN()

用来检查一个值是否为NaN

Number.isInteger()

用来判断一个值是否为整数。在JavaScript中,整数和浮点数是同样的储存方法,所以1和1.0为同一个值.

Number.isSafeInteger()

JavaScript能够准确表示的整数范围在-2^53到2^53之间(不含两个端点),超过这个范围,无法精确表示这个值。

总结

目前接触到的一些方法,如果有新的日后再更新。感兴趣的朋友们可以继续关注三水点靠木,好了,以上就是这篇文章的全部内容了,希望对大家的学习或者工作能带来一定的帮助。

Javascript 相关文章推荐
js 提交和设置表单的值
Dec 19 Javascript
struts2+jquery组合验证注册用户是否存在
Apr 30 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
May 28 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
Mar 02 Javascript
jQuery获取剪贴板内容的方法
Jun 16 Javascript
javascript中活灵活现的Array对象详解
Nov 30 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
Oct 27 Javascript
Angular2实现的秒表及改良版示例
May 10 Javascript
JavaScript展开操作符(Spread operator)详解
Jul 20 Javascript
解决Vue打包后访问图片/图标不显示的问题
Jul 25 Javascript
实例讲解JavaScript 计时事件
Jul 04 Javascript
Element Carousel 走马灯的具体实现
Jul 26 Javascript
微信小程序 前端源码逻辑和工作流详解
Oct 08 #Javascript
AngularJS 2.0入门权威指南
Oct 08 #Javascript
省市区三级联动jquery实现代码
Apr 15 #Javascript
微信小程序 数据访问实例详解
Oct 08 #Javascript
Bootstrap Table的使用总结
Oct 08 #Javascript
js HTML5手机刮刮乐代码
Sep 29 #Javascript
原生js的RSA和AES加密解密算法
Oct 08 #Javascript
You might like
php cookis创建实现代码
2009/03/16 PHP
php地址引用(php地址引用的效率问题)
2012/03/23 PHP
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
PHP时间戳与日期之间转换的实例介绍
2013/04/19 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
JavaScript中的面向对象介绍
2012/06/30 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
layui type2 通过url给iframe子页面传值的例子
2019/09/06 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
2020/04/17 Javascript
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
Python 操作文件的基本方法总结
2017/08/10 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
什么是Smart Navigation?
2016/07/03 面试题
生日派对邀请函
2014/01/13 职场文书
办公室秘书自我鉴定
2014/01/18 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
法人委托书的范本格式
2014/09/11 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
实习生矿工检讨书
2014/10/13 职场文书
宾馆安全管理制度
2015/08/06 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL