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 相关文章推荐
jquery 操作两个select实现值之间的互相传递
Mar 07 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
jQuery+AJAX实现网页无刷新上传
Feb 22 Javascript
javascript作用域问题实例分析
Jul 13 Javascript
AngularJS中$interval的用法详解
Feb 02 Javascript
JavaScript中数组的22种方法必学(推荐)
Jul 20 Javascript
vue 挂载路由到头部导航的方法
Nov 13 Javascript
页面点击小红心js实现代码
May 26 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
详解javascript 变量提升(Hoisting)
Mar 12 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
Apr 15 Javascript
微信小程序遍历Echarts图表实现多个饼图
Apr 25 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 preg_replace替换实例讲解
2013/11/04 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
Python实现端口复用实例代码
2014/07/03 Python
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
Django日志模块logging的配置详解
2017/02/14 Python
python3处理含有中文的url方法
2018/05/10 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
Ajax的工作原理
2015/12/04 面试题
公司行政经理岗位职责
2013/12/24 职场文书
亲属关系公证书
2014/04/08 职场文书
消防安全责任书
2014/04/14 职场文书
社会实践活动总结报告
2014/04/29 职场文书
公司活动总结怎么写
2014/06/25 职场文书
任长霞观后感
2015/06/16 职场文书
2015年中秋晚会主持词
2015/07/01 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript