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中文入门指南,翻译加实例,jQuery的起点教程
Jan 13 Javascript
一段利用WSH获取登录时间的jscript代码
May 11 Javascript
jQuery之尺寸调整组件的深入解析
Jun 19 Javascript
深入浅析JavaScript中的constructor
Apr 19 Javascript
使用D3.js制作图表详解
Aug 13 Javascript
基于js中document.cookie全面解析
Sep 14 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
Feb 27 jQuery
深入浅析Vue全局组件与局部组件的区别
Jun 15 Javascript
菊花转动的jquery加载动画效果
Aug 19 jQuery
vue axios数据请求及vue中使用axios的方法
Sep 10 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
Jul 20 Javascript
vue使用原生swiper代码实例
Feb 05 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
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
Javascript 按位与运算符 (&)使用介绍
2014/02/04 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
Node 代理访问的实现
2019/09/19 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
Python科学计算包numpy用法实例详解
2018/02/08 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
Python实现微信小程序支付功能
2019/07/25 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
python 日志 logging模块详细解析
2020/03/31 Python
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
会计职业生涯规划范文
2014/01/04 职场文书
转让协议书范本
2014/04/15 职场文书
教师节活动总结
2014/08/29 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书
教你用Python matplotlib库制作简单的动画
2021/06/11 Python
python如何查找列表中元素的位置
2022/05/30 Python
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技