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的构造函数和constructor属性
Jan 09 Javascript
JavaScript 对象模型 执行模型
Oct 15 Javascript
javascript 保存文件到本地实现方法
Nov 29 Javascript
jQuery中next方法用法实例
Apr 24 Javascript
javascript实现可全选、反选及删除表格的方法
May 15 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
Aug 11 Javascript
javascript html5轻松实现拖动功能
Mar 01 Javascript
浅谈Angular4实现热加载开发旅程
Sep 08 Javascript
使用javascript做时间倒数读秒功能的实例
Jan 23 Javascript
关于JS解构的5种有趣用法
Sep 05 Javascript
Echarts.js无法引入问题解决方案
Oct 30 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
Nov 09 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
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
8个实用的jQuery技巧
2014/03/04 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
python merge、concat合并数据集的实例讲解
2018/04/12 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
Shein英国:女性时尚网上商店
2019/04/10 全球购物
会员卡清退活动总结
2014/08/27 职场文书
二手房购房协议书范本
2014/10/05 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
2014年小学工作总结
2014/11/26 职场文书
工作调动申请报告
2015/05/18 职场文书
关于分班的感言
2015/08/04 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python