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代码压缩器
Oct 12 Javascript
详解new function(){}和function(){}() 区别分析
Mar 22 Javascript
Js 获取当前日期时间及其它操作实现代码
Mar 04 Javascript
精选的10款用于构建良好易用性网站的jQuery插件
Jan 23 Javascript
JSON辅助格式化处理方法
Mar 26 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
Mar 04 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
Jan 23 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
Jan 19 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
Jun 19 Javascript
react开发教程之React 组件之间的通信方式
Aug 12 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类
2006/10/09 PHP
深入PHP操作MongoDB的技术总结
2013/06/02 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
js 自定义的联动下拉框
2010/02/07 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
Javascript:为input设置readOnly属性(示例讲解)
2013/12/25 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
详解Vue项目中实现锚点定位
2019/04/24 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
python和ruby,我选谁?
2017/09/13 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
运动会广播稿500字
2014/01/28 职场文书
药剂专业自荐信范文
2014/04/16 职场文书
趣味运动会策划方案
2014/06/02 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python