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 相关文章推荐
javascript里的条件判断
Feb 27 Javascript
原生javascript实现隔行换色
Jan 04 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
Aug 19 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
Dec 08 Javascript
JavaScript实现倒计时跳转页面功能【实用】
Dec 13 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
Dec 31 Javascript
jQuery Chosen通用初始化
Mar 07 Javascript
windows下vue-cli导入bootstrap样式
Apr 25 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
Jul 13 Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
Jul 21 Javascript
vue 动态创建组件的两种方法
Dec 31 Vue.js
微信小程序 前端源码逻辑和工作流详解
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
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
Yii2如何批量添加数据
2016/05/17 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
JavaScript 撑出页面文字换行
2009/06/15 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
python实现批量改文件名称的方法
2015/05/25 Python
Python画图学习入门教程
2016/07/01 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
python实现员工管理系统
2018/01/11 Python
python将txt文件读取为字典的示例
2018/12/22 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
初中生个人学习的自我评价
2013/12/04 职场文书
八项规定对照检查材料
2014/08/31 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
大学生创业计划书
2019/06/24 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript
element多个表单校验的实现
2021/05/27 Javascript
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python