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 相关文章推荐
一个JS小玩意 几个属性相加不能超过一个特定值.
Sep 29 Javascript
读jQuery之五(取DOM元素)
Jun 20 Javascript
javascript学习笔记(十) js对象 继承
Jun 19 Javascript
jQuery插件实现适用于移动端的地址选择器
Feb 18 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
Jan 08 Javascript
JS实现json的序列化和反序列化功能示例
Jun 13 Javascript
Vue调试神器vue-devtools安装方法
Dec 12 Javascript
在vue-cli中组件通信的方法
Dec 16 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
Jan 31 Javascript
vue使用中的内存泄漏【推荐】
Jul 10 Javascript
详解Nuxt内导航栏的两种实现方式
Apr 16 Javascript
JavaScript实现弹出窗口效果
Dec 09 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 数据库树的遍历方法
2009/02/06 PHP
yii框架源码分析之创建controller代码
2011/06/28 PHP
fgetcvs在linux的问题
2012/01/15 PHP
详解PHP数组赋值方法
2015/11/07 PHP
取键盘键位ASCII码的网页
2007/07/30 Javascript
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
js简单时间比较的方法
2016/08/02 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
分享几道你可能遇到的python面试题
2017/07/24 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
介绍一下EJB的体系结构
2012/08/01 面试题
建筑工程专业毕业生自荐信
2013/10/19 职场文书
社团成立邀请函
2014/01/08 职场文书
优秀部门获奖感言
2014/02/14 职场文书
市场营销求职信范文
2014/02/21 职场文书
安全责任书范本
2014/04/15 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书