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 相关文章推荐
2007/12/23更新创意无限,简单实用(javascript log)
Dec 24 Javascript
js获取多个tagname的节点数组
Sep 22 Javascript
js实现select二级联动下拉菜单
Apr 17 Javascript
Node连接mysql数据库方法介绍
Feb 07 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
Mar 21 Javascript
使用webpack搭建react开发环境的方法
May 15 Javascript
详解Axios 如何取消已发送的请求
Oct 20 Javascript
详解JS实现系统登录页的登录和验证
Apr 29 Javascript
layui switch 开关监听 弹出确定状态转换的例子
Sep 21 Javascript
JS面向对象实现飞机大战
Aug 26 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
Oct 29 Javascript
springboot+VUE实现登录注册
May 27 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
2006/11/25 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
读jQuery之一(对象的组成)
2011/06/11 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
python分割文件的常用方法
2014/11/01 Python
Python基本语法经典教程
2016/03/11 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
python框架django基础指南
2016/09/08 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
Python探索之创建二叉树
2017/10/25 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
10款最好的Python开发编辑器
2019/07/03 Python
python字符串的拼接方法总结
2019/11/18 Python
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
房地产开发计划书
2014/01/10 职场文书
预防艾滋病宣传标语
2014/06/25 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
党员理论学习心得体会
2016/01/21 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
详细总结Python常见的安全问题
2021/05/21 Python