javascript核心技术(七)判断数据类型的方法汇总

[复制链接]
查看: 3443|回复: 31
发表于 2023-1-21 15:49:45 | 显示全部楼层 | 阅读模式
首先我们将最常用的数据类型判断命令列出,然后再逐个讲解,如下:

命令名称命令来源 说明
typeof(); 原生例如:typeof(num); 判断对象、数组、null全都返回Object,无法区分。返回数据类型
instanceof原生例如:arr instanceof Array; 可以区分数组、对象、null。返回布尔值
isNaN();原生例如:NaN isNaN(); 判断变量是否为Nan
$.type();jQ例如:$.type(arr); 判断变量arr的数据类型,可以区分数组、对象、null和基本数据类型,返回数据类型
$.isArray();jQ例如:$.isArray(arr); 判断是否为数组,返回布尔值
$.isFunction(); jQ例如:$.isFunction(fn); 判断是否为函数,返回布尔值
$.isEmptyObject(); jQ例如:$.isEmptyObject(arr); 判断是否是否空对象,返回布尔值
$.isPlainObject(); jQ例如:$.isPlainObject({'name':'zhangsan','age':40}); 判断是否是否纯对象,即该对象是否是通过"{}"或"new Object"创建的,返回布尔值
$.isNumeric();jQ例如:$.isNumeric("123"); 判断是否为数值,返回布尔值

在之前的讲解中,我们曾说过,使用typeof来判断null时,它输出的是object,object与基本数据类型一样,不过它是一个复合数据类型,这个数据类型的中文名叫对象类型。由于目前我们还没有讲到object,之前我们也并未测试typeof判断object类型数据的情形,这里直接告诉大家,使用typeof判断对象、数组和null它全部返回object,所以这三者无法区分。

所以就有了下面这个命令:
  1. instanceof
复制代码
我们使用instanceof来判断看看结果是什么

javascript核心技术(七)判断数据类型的方法汇总
通过以上实验得出:数组属于object,但object不属于数组,null既不是数组又不是对象。
所以:在以后判断数据类型时,我们可以先判断一下是否为object,如果是,那么它不是数组就是对象,然后继续用instanceof判断它是数组还是对象。如果不是,那么它不是基本数据类型就是null,然后用typeof判断是否是对象,如果不是就是基本数据类型,如果是就是null。

看到以上描述,大家是否感到头大呢,是的,所以jquery为我们解决了这个问题,下面我们用jquery中的$.type()判断一下看看
javascript核心技术(七)判断数据类型的方法汇总

实验证明,$.type()可以完全区分。
既然$.type()这么好用,我们为什么还要讲typeof和instanceof呢?
一者、因为我们需要知道使用jquery的意义是什么。二者、由于typeof和instanceof是原生的,别人如果用了,我们要看的懂。

下面再看一下其它命令的判断结果


javascript核心技术(七)判断数据类型的方法汇总


ok,以上就是对数据类型判断的讲解,后面的一切讲解都建立在这些基础之上,请大家务必记住以上命令,否则后面可能会越来越糊涂的。


易博软件介绍

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-2-15 01:08:51 | 显示全部楼层
我是个初学者现状学的一塌糊涂的.自己感觉没有找到门路和学习方法.还请你指教指教.  看了你的文章打心里佩服你

0

主题

20

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-2-26 00:38:00 | 显示全部楼层
已经看过了但是现在看到还是要顶你呵呵

0

主题

13

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-3-8 10:52:51 | 显示全部楼层
看这篇文章的时候,当作者给出了两个程序而监考官依然不满意的时候,我也思考了一下更优的解法,也许就是-1的连续相乘呢..我很高兴我的判断是对的,我学c语言的时间不怎么长,也有做过那样的题目,老师给出的答案也跟作者写的差不多..其实初看到题目的时候,我也有过那种简洁的思路,只是那种想法转瞬即逝..  有一次,我重复做一道老师给的题目(附答案),后来我把程序给我的男朋友做(他也是学计算机的,而且算法还可以),他说老师的做法太差,然后给了我他做的答案....  有时候,一些算法还是要靠我们自己去摸索的....  感谢作者让我重新认识到这一点!

0

主题

19

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-3-19 16:42:18 | 显示全部楼层
你写得很不错 我是新手 现在还不会写 但你说的 会让我少走很多弯路,是啊!变成要有想象力 失败了再爬起来!!我祝你工作顺利 祝我自己学习有成

0

主题

19

帖子

10

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
10
发表于 2023-3-27 00:52:47 | 显示全部楼层
受益匪浅呀,我一定好好学习,好好把握剩下的大学时光

0

主题

24

帖子

13

积分

营销入门

Rank: 2

积分
13
发表于 2023-4-2 02:09:09 | 显示全部楼层
成功/对我来说,,成功就是一个新的起点,,什么叫成功,我才刚上路咧  引用发哥的话,。  无论什么时候,我们都要想的是一个新的起点,这样我们才不会满足现状,目标也会更清晰  现在的我自信心越来越膨胀,我感觉有种云里雾里的感觉可能得来太容易了,我发现我太狂了,言不由衷。  

0

主题

18

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-4-7 00:16:22 | 显示全部楼层
我让人受用,人之间就应该这样交流。

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-4-11 20:09:33 | 显示全部楼层
写的很好,让我感触颇深,我是一个即将毕业的大四学生,我虽然不是计算机系的,但是我很喜欢编程,真是学海无涯啊!真的很好,谢谢!这是我们大多数编程序人的心声,佩服!

0

主题

18

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-4-16 13:13:53 | 显示全部楼层
在其他地方看到过,很受欢迎的一篇文章  在其他地方看到过,很受欢迎的一篇文章  这个吗~学校就是这个样子的啦~、  大多数还是靠自己,,,,,,,。。。。。。。。。  算了~反正我也是个菜鸟,。,,,没资格说些什么~、  看了你的文章,真有点感触·
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表