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
Sep 24 Javascript
JavaScript几种形式的树结构菜单
May 10 Javascript
jQuery基本选择器选择元素使用介绍
Apr 18 Javascript
javascript与cookie 的问题详解
Nov 11 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
Feb 01 Javascript
三个js循环的关键字示例(for与while)
Feb 16 Javascript
第七章之菜单按钮图标组件
Apr 25 Javascript
javascript Function函数理解与实战
Dec 01 Javascript
Javascript地址引用代码实例解析
Feb 25 Javascript
vue 清空input标签 中file的值操作
Jul 21 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
Sep 28 Javascript
微信小程序实现电影App导航和轮播
Nov 30 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数组指针函数功能及用法示例
2020/02/11 PHP
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
js正则表达式的使用详解
2013/07/09 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
javascript的函数作用域
2014/11/12 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
原生JS实现圆环拖拽效果
2017/04/07 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
2018/01/22 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
JS写滑稽笑脸运动效果
2020/05/28 Javascript
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
Python中pass的作用与使用教程
2020/11/13 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
幼儿园教师的考核评语
2014/04/18 职场文书
找工作求职信
2014/07/07 职场文书
党员群众路线剖析材料
2014/10/08 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
小学副班长竞选稿
2015/11/21 职场文书
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS
超详细Python解释器新手安装教程
2021/05/10 Python