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 相关文章推荐
解析JavaScript中点号“.”的多义性
Dec 02 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
Sep 10 Javascript
基于javascript实现简单计算器功能
Jan 03 Javascript
js轮盘抽奖实例分析
Apr 17 Javascript
在线引用最新jquery文件的实现方法
Aug 26 Javascript
javascript history对象详解
Feb 09 Javascript
JS实现简易换图时钟功能分析
Jan 04 Javascript
vue编译打包本地查看index文件的方法
Feb 23 Javascript
opencv 识别微信登录验证滑动块位置
Aug 07 Javascript
Iview Table组件中各种组件扩展的使用
Oct 20 Javascript
微信小程序实现打卡签到页面
Sep 21 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
Oct 18 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安装攻略:常见问题解答(三)
2006/10/09 PHP
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
php实现12306余票查询、价格查询示例
2014/04/17 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
php设计模式之委托模式
2016/02/13 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
php获取excel文件数据
2017/04/21 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
详解用python写一个抽奖程序
2019/05/10 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
2019/05/10 Python
python:解析requests返回的response(json格式)说明
2020/04/30 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
入党积极分子思想汇报
2014/01/02 职场文书
自我介绍演讲稿
2014/01/15 职场文书
售后服务经理岗位职责
2014/02/25 职场文书
导游个人求职信
2014/04/25 职场文书
结婚典礼致辞
2015/07/28 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
素质拓展训练感想
2015/08/07 职场文书
初级职称评定工作总结
2015/08/13 职场文书