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 相关文章推荐
Jquery下的26个实用小技巧(jQuery tips, tricks & solutions)
Mar 01 Javascript
javascript正则表达式使用replace()替换手机号的方法
Jan 19 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
JS简单测试循环运行时间的方法
Sep 04 Javascript
轻松实现js弹框显示选项
Sep 13 Javascript
js实现打地鼠小游戏
Feb 13 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
Nov 28 Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 Javascript
对layui初始化列表的CheckBox属性详解
Sep 13 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
Feb 24 Javascript
Vue父组件向子组件传值以及data和props的区别详解
Mar 02 Javascript
WebStorm中如何将自己的代码上传到github示例详解
Oct 28 Javascript
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
杏林同学录(二)
2006/10/09 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
分分钟玩转Vue.js组件(二)
2017/03/01 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
Vue.use源码分析
2017/04/22 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
python的列表List求均值和中位数实例
2020/03/03 Python
NET程序员上机面试题
2015/05/23 面试题
css animation配合SVG制作能量流动效果
2021/03/24 HTML / CSS
幼儿园大班教学反思
2014/02/10 职场文书
入党积极分子评语
2014/05/04 职场文书
文艺晚会策划方案
2014/06/11 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
护士个人总结范文
2015/02/13 职场文书
趣味运动会新闻稿
2015/07/17 职场文书
企业财务管理制度范本
2015/08/04 职场文书
《开国大典》教学反思
2016/02/16 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
mysql数据库入门第一步之创建表
2021/05/14 MySQL
详解PyTorch模型保存与加载
2022/04/28 Python