JavaScript中判断变量是数组、函数或是对象类型的方法


Posted in Javascript onFebruary 25, 2015

数组

     ECMAScript5中Array.isArray是原生的判断数组的方法,IE9及以上支持。考虑到兼容性,在没有此方法的浏览器中,可以使用 Object.prototype.toString.call(obj) === '[object Array]'替代。

var isArray = Array.isArray || function(obj) {

    return Object.prototype.toString.call(obj) === '[object Array]';

}

函数

     最简单且性能最好的办法就是 typeof obj == 'function'。考虑到某些版本浏览器存在的bug,最靠谱的办法是 Object.prototype.toString.call(obj) === '[object Function]'。

var isFunction = function(obj) {

    return Object.prototype.toString.call(obj) === '[object Function]';

}

if(typeof /./ != 'function' && typeof Int8Array != 'object') {

    isFunction = function(obj) {

        return typeof obj == 'function';

    }

}

对象

     在JavaScript中复杂类型是对象,函数也是对象。对上述2者使用typeof,可以分别得到'object'和'function'。另外,还要排除null值的情况,因为typeof null 得到的也是 'object'。

var isObject = function(obj) {

    var type = typeof obj;

    return type === 'function' || type === 'object' && !!obj;

}

以上就是本文全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
JSON 编辑器实现代码
Dec 06 Javascript
js 一个关于图片onload加载的事
Nov 10 Javascript
setTimeout自动触发一个js的方法
Jan 15 Javascript
javaScript数组迭代方法详解
Apr 14 Javascript
jQuery通过ajax快速批量提交表单数据
Oct 25 Javascript
js oncontextmenu事件使用详解
Mar 25 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
Jan 16 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
如何在微信小程序中存setStorage
Dec 13 Javascript
原生js实现购物车
Sep 23 Javascript
JavaScript实现显示和隐藏图片
Apr 29 Javascript
VUE递归树形实现多级列表
Jul 15 Vue.js
Js可拖拽放大的层拖动特效实现方法
Feb 25 #Javascript
JS实现自适应高度表单文本框的方法
Feb 25 #Javascript
如何编写高质量JS代码(续)
Feb 25 #Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
Feb 25 #Javascript
javascript实现点击按钮让DIV层弹性移动的方法
Feb 24 #Javascript
JS+CSS实现仿新浪微博搜索框的方法
Feb 24 #Javascript
JS实现让访问者自助选择网页文字颜色的方法
Feb 24 #Javascript
You might like
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
phpfpm的作用和用法
2019/10/10 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
js倒计时小程序
2013/11/05 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
js里面的变量范围分享
2020/07/18 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
python选择排序算法的实现代码
2013/11/21 Python
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
python开启多个子进程并行运行的方法
2015/04/18 Python
Python中的默认参数详解
2015/06/24 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
耐克中国官方商城:Nike中国
2018/10/18 全球购物
Yahoo-PHP面试题2
2014/12/06 面试题
英语专业自荐书
2014/06/13 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
小学科学课教学反思
2016/02/23 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
php访问对象中的成员的实例方法
2021/11/17 PHP