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 处理缓存
Apr 27 Javascript
非常不错的功能强大代码简单的管理菜单美化版
Jul 09 Javascript
Jquery cookie操作代码
Mar 14 Javascript
jQuery中调用WebService方法小结
Mar 28 Javascript
pace.js页面加载进度条插件
Sep 29 Javascript
H5图片压缩与上传实例
Apr 21 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
Aug 08 Javascript
React-Native左右联动List的示例代码
Sep 21 Javascript
JS闭包经典实例详解
Dec 20 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 jQuery
浅谈实现在线预览PDF的几种解决办法
Aug 10 Javascript
详解Vue2的diff算法
Jan 06 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时间戳使用实例代码
2008/06/07 PHP
第五章 php数组操作
2011/12/30 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
D3.js实现散点图和气泡图的方法详解
2016/09/21 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
Js apply方法详解
2017/02/16 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
Python中的默认参数实例分析
2018/01/29 Python
对python函数签名的方法详解
2019/01/22 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
python能做什么 python的含义
2019/10/12 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
python基于event实现线程间通信控制
2020/01/13 Python
python画图常规设置方式
2020/03/05 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
面试后感谢信
2014/02/01 职场文书
亲戚结婚的请假条
2014/02/11 职场文书
护理中职生求职信范文
2014/02/24 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
导游欢送词
2015/01/31 职场文书
python使用torch随机初始化参数
2022/03/22 Python