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 相关文章推荐
类似框架的js代码
Nov 09 Javascript
JS操作CSS随机改变网页背景实现思路
Mar 10 Javascript
JavaScript中的单引号和双引号报错的解决方法
Sep 01 Javascript
Javascript函数式编程语言
Oct 11 Javascript
Flow之一个新的Javascript静态类型检查器
Dec 21 Javascript
vue.js实现简单轮播图效果
Oct 10 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
Aug 16 Javascript
ZK中使用JS读取客户端txt文件内容问题
Nov 07 Javascript
js实现数字滚动特效
Dec 16 Javascript
vue-router为激活的路由设置样式操作
Jul 18 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
Aug 27 Javascript
ES6中的Javascript解构的实现
Oct 30 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获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
php二维码生成
2015/10/19 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
2019/11/14 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
如何利用python生成MD5并去重
2020/12/07 Python
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
几个SQL的面试题
2014/03/08 面试题
法律专业推荐信范文
2013/11/29 职场文书
运动会入场词200字
2014/02/15 职场文书
2014年高考决心书
2014/03/11 职场文书
消防安全主题班会
2015/08/12 职场文书
会计做账心得体会
2016/01/22 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS