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 相关文章推荐
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
Aug 28 Javascript
JavaScript动态创建div属性和样式示例代码
Oct 09 Javascript
jQuery给动态添加的元素绑定事件的方法
Mar 09 Javascript
iScroll中事件点击触发两次解决方案
Mar 11 Javascript
整理Javascript流程控制语句学习笔记
Nov 29 Javascript
Javascript之Date对象详解
Jun 07 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
Oct 20 Javascript
详解封装基础的angular4的request请求方法
Jun 05 Javascript
微信小程序全局变量功能与用法详解
Jan 22 Javascript
浅谈redux, koa, express 中间件实现对比解析
May 23 Javascript
微信小程序左右滚动公告栏效果代码实例
Sep 16 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
Oct 23 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+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
php读取excel文件的简单实例
2013/08/26 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
2017/10/16 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
微信小程序云开发之使用云函数
2019/05/17 Javascript
jquery实现直播弹幕效果
2019/11/28 jQuery
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
python批量修改文件名的实现代码
2014/09/01 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
浅析Python 条件控制语句
2020/07/15 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
思想政治教育专业个人求职信范文
2013/12/20 职场文书
大学生职业规划书的范本
2014/02/18 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
怎样写好工作计划
2019/04/10 职场文书
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技