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 实例详细说明教程
Oct 31 Javascript
jquery提取元素里的纯文本不包含span等里的内容
Sep 30 Javascript
对JavaScript中this指针的新理解分享
Jan 31 Javascript
编写高质量JavaScript代码的基本要点
Mar 02 Javascript
Bootstrap表单布局样式代码
May 31 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
Jan 20 Javascript
Angular.js中下拉框实现渲染html的方法
Jun 18 Javascript
关于vue-router的beforeEach无限循环的问题解决
Sep 09 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
Jan 18 Javascript
基于vue 开发中出现警告问题去除方法
Jan 25 Javascript
layui实现多图片上传并限制上传的图片数量
Sep 26 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
Mar 11 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中substr()函数参数说明及用法实例
2014/11/15 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
PHP常用的三种设计模式
2017/02/17 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
jQuery oLoader实现的加载图片和页面效果
2015/03/14 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
好矿嫂事迹材料
2014/01/21 职场文书
公司拓展活动方案
2014/02/13 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
课外活动总结范文
2014/07/09 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js