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 相关文章推荐
nicejforms——美化表单不用愁
Feb 20 Javascript
一款JavaScript压缩工具:X2JSCompactor
Jun 13 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
Sep 05 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
JS动态增删表格行的方法
Mar 03 Javascript
Bootstrap实现下拉菜单效果
Apr 29 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
Jun 14 Javascript
第一次接触神奇的Bootstrap基础排版
Jul 26 Javascript
完美解决IE9浏览器出现的对象未定义问题
Sep 29 Javascript
浅析Javascript的自动分号插入(ASI)机制
Sep 29 Javascript
vue2使用keep-alive缓存多层列表页的方法
Sep 21 Javascript
在vue中使用setInterval的方法示例
Apr 16 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删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
BootStrapTable 单选及取值的实现方法
2017/01/10 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
Python和C/C++交互的几种方法总结
2017/05/11 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
公司会计主管岗位责任制
2014/03/01 职场文书
开学典礼决心书
2014/03/11 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
本科毕业生求职信
2014/06/15 职场文书
小学重阳节活动总结
2015/03/24 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
学困生转化工作总结
2015/08/13 职场文书
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL