关于JavaScript和jQuery的类型判断详解


Posted in Javascript onOctober 08, 2016

对于类型的判断,JavaScript用typeof来进行。

栗子:

console.log(typeof null);      //object
console.log(typeof []);       //object
console.log(typeof {});       //object
console.log(typeof new Date());   //object
console.log(typeof new Object);   //object
console.log(typeof function(){});  //function
console.log(typeof alert);      //function
console.log(typeof 1);        //number
console.log(typeof "abc");      //string
console.log(typeof true);      //boolean

可以看到,typeof并不能够准确的判断出每一种数据类型,比如null和数组等都是object类型。因此,JavaScript判断数据类型不推荐使用typeof。

那么要如何具体判断呢??看一下语法<( ̄3 ̄)> !

{}.toString.call(obj);

栗子:

console.log({}.toString.call(null));      //[object Null]
console.log({}.toString.call([]));       //[object Array]
console.log({}.toString.call({}));       //[object Object]
console.log({}.toString.call(new Date()));   //[object Date]
console.log({}.toString.call(function(){}));  //[object Function]
console.log({}.toString.call(new Object));   //[object Object]
console.log({}.toString.call(alert));      //[object Function]
console.log({}.toString.call(1));        //[object Number]
console.log({}.toString.call('abc'));      //[object String]
console.log({}.toString.call(true));      //[object Boolean]

哈哈,是不是一目了然呀!!

那如果你用的是jQuery,就不用这么麻烦喽,可以直接用工具方法$.type(),进行判断

栗子:

console.log($.type(null));         //null
console.log($.type([]));          //array
console.log($.type({}));          //object
console.log($.type(1));           //number
......不全写完了,结果和{}.toString.call(obj);是一样的

实际上{}.toString.call(obj);就是jQuery中$.type()这个工具方法的实现最重要的一段代码(⊙o⊙)哦,神奇吧!赶快去jQuery源码中找找看吧~~

以上就是小编为大家带来的关于JavaScript和jQuery的类型判断详解全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
js no-repeat写法 背景不重复
Mar 18 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
Jun 27 Javascript
基于JavaScript 下namespace 功能的简单分析
Jul 05 Javascript
js如何调用qq互联api实现第三方登录
Mar 28 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
Aug 10 Javascript
浅析JavaScript中浏览器的兼容问题
Apr 19 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
canvas实现手机端用来上传用户头像的代码
Oct 20 Javascript
vue开发调试神器vue-devtools使用详解
Jul 13 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
Sep 27 Javascript
你不可不知的Vue.js列表渲染详解
Oct 01 Javascript
浅谈vue中resetFields()使用注意事项
Aug 12 Javascript
js基本算法:冒泡排序,二分查找的简单实例
Oct 08 #Javascript
javascript中获取元素标签中间的内容的实现方法
Oct 08 #Javascript
Jquery和Js获得元素标签名称的方法总结
Oct 08 #Javascript
JS获取html元素的标记名实现方法
Oct 08 #Javascript
js获取元素的标签名实现方法
Oct 08 #Javascript
什么是JavaScript中的结果值?
Oct 08 #Javascript
如何利用模板将HTML从JavaScript中抽离
Oct 08 #Javascript
You might like
PHP strtok()函数的优点分析
2010/03/02 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
理解Javascript_03_javascript全局观
2010/10/11 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
详解前后端分离之VueJS前端
2017/05/24 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
python开发中module模块用法实例分析
2015/11/12 Python
Python实现自动上京东抢手机
2018/02/06 Python
python 随机森林算法及其优化详解
2019/07/11 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
python实现批量转换图片为黑白
2020/06/16 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
药学专业学生的自我评价分享
2014/02/06 职场文书
超市开店计划书
2014/04/26 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
乱世佳人观后感
2015/06/08 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers