【JavaScript教程】#5 JavaScript 值的比较 (教你使用比较符去比较两个值) | Introduction To JavaScript Comparison Operators

 

https://youtu.be/sfQluAIYnaE

【JavaScript教程】#5 JavaScript 值的比较 (教你使用比较符去比较两个值) | Introduction To JavaScript Comparison Operators 我们的JavaScript教学今天来到了第四集,同学们看了前三集,觉得之前的教学对你有帮助吗?你们可以在下面的留言栏里告诉我,顺便也可以提提你们对学习JavaScript的意见。 今天的视频,我们来聊聊怎么在JavaScript里加减乘除。 ☕ ☕ ☕ 给我买杯咖啡提提神吧! ✅ https://bit.ly/3kCOpFK ✅ (免费) JavaScript教程系列: https://bit.ly/310cHle ✅ 更多精彩的JavaScript入门课程: http://bit.ly/js-for-beginners ✅ JavaScript相关书籍: 1:The Definitive Guide: Master the World's Most-Used Programming Language - 7th Edition (强烈推荐👍) https://amzn.to/31s30uH ✅(通告)”Codetisan 自学编程社区“ 已经正式开通啦,三人行必有我师,同学们再也不用独自一人闷头自学编程了,快去社区里和其他小伙伴们互动吧! ▶︎ https://bit.ly/2AHylzN 🔆订阅我的YouTube频道,让你从一个0基础编程的菜鸟快速成为编程大师!🔆 http://bit.ly/2TBkXo1 ▶︎ 文轩解码更精彩的平台 ◀︎ ‣‣ Blogger :https://bit.ly/2yMz0PC ‣‣ Twitter: https://bit.ly/2R74FS1 ‣‣ Facebook: https://bit.ly/35crcmz ‣‣ Instagram: https://bit.ly/2KH6Wjw ‣‣ Github: https://bit.ly/2SHtsx4 #javascript比较符号 #编程入门 #javascript入门


文字版内容:

Hi, 大家好,我是文轩

欢迎再次收看文轩解码

这是JavaScript编程教学的第五节课

如果你想和其他同学一起学习

和讨论JavaScript编程

可以扫描这个二维码

去到自学编程社区里一起互动

上期视频我们学习

怎么在JavaScript里加减乘除

这期视频我们就来说说

JavaScript怎么判断和比较两个值的大小

在数学课

如果我们要比较两个数值谁大谁小

常见的符号是小于

大于

小于等于

和大于等于符号

在JavaScript里

我们也可以做类似的比较

小于和大于符号是一样的

小于等于

和大于等于

则用这两个符号表示

这4种符号在JavaScript里我们统称

关系符号

relational operator

除了比较谁大谁小

我们有时候也需要JavaScript

替我们判断两个值是不是相等

在JavaScript

我可以使用这两种符号

相等符号 (Equal)

和严格相等符号(Strict Equal)

如果要判断两个值不相等

我们会使用不相等符号(Not Equal)

和 严格不相等值(Strict Not Equal)

等一下我会在实操部分

和同学们详细解说这四个符号的特性

使用这些比较符号做比较

JavaScript会给我们返回Boolean值

true或者false

好的,那现在我们进入实操的部分

今天我们直接在Console面板

给大家实操这几个比较符号

我们会针对同类型的数据作比较

比如数字对比数字

字符串对比字符串

我们还会比较不同类型的数据

像数字对字符串等等

我们先从简单的数字对比数字开始吧

我们可以这样对比两个数字

3是不是大于1

3是大于1的

返回的值是true

50小于10吗?

那肯定不对

所以会返回false

那看看 10 是大于 10吗

答案是false

这个好理解

10大于10是错的

所以返回false

我们在这里加个等于

10是不是大于等于10

答案是true

这个也很直观

每一个对比都会返回一个boolean值

我们可以把boolean值赋予一个变量

像这样

我们先声明一个变量isGreater

然后把 10大于1 返回的值赋予这个变量

isGreater的值是true

因为10是大于1的

接下来

我们对比字符串(string)

我们来看看a是否大于b? 

答案是false

a比b小

字符串究竟是怎么对比的?

大家都很好奇对吧

这里简单的给同学们科普一下

电脑处理器只能处理数字

如果要处理文本

文本就必须转换成数字才能被处理

在文本转数字的过程

电脑需要遵循国际公认的字符编码

Character Encoding

JavaScript字符串是使用

Unicode(统一编码)进行编码的

在Unicode编码里

每一个字符(Character)都有对应的数字

小写a对应的数字是97

小写b是98

所以当我们执行这一行的时候

JavaScript是这样对比的

 97 是否大于98

97大于98是错的

自然就会返回false

如果要更简单的理解

同学们可以把它想象成

字符是根据词典的顺序来对比

排在后面的字符大于排在前面的字符

c大于a

y大于c

以此类推

我们其实可以通过这个命令去检查字符对应的数字

如果我们对比的字符串超过一个字符

像这样

cat是否大于car?

JavaScript会逐字比较

先比较第一个字符

然后第二个字符

再到第三个字符

第一个字符和第二字符是相等的

第三个字符t是大于r

所以最后JavaScript判断cat是大于car

然后返回true值

刚才我们演示了同数据类型的对比

接下来

我们看看怎么对比数字(number)和字符串(string)

现在我们来对比数字10是否大于字符串20

10是数字

20是字符串

JavaScript不能直接对比数字和字符串

所以JavaScript会先把字符串20转换成数字

然后再对比

你可以把它想象成这样

Number()的功能是尝试把字符串转换成数字

数字10大于数字20是错的

所以会返回false值

那现在我们来对比10是否大于John

答案也是false

同学们能猜到为什么吗?

如果要对比数字和字符串

JavaScript会把字符串先转换成数字

像这样

我们先看看Number John返回的值是什么

Number John返回的值是Not A Number

因为John不是数字

没办法转换

所以只能返回Not A Number值

10大于NaN吗?

答案是false

因为NaN不是数字

数字对比非数字

JavaScript做不多

所以只能返回false

接下来

我们来说说JavaScript

要怎么判断两个值相等或者不相等

一般JavaScript比较可以分为两大类

抽象比较

abstract comparison

和 严格比较

strict comparison

抽象比较就像刚才我们演示的那样

会把字符串先转换成数字然后再作比较

严格比较有别于抽象比较

严格比较是不会做任何的类型转换

所谓严格

就是除了判断两个值是否一致以外

还要确定数据类型也是一致的

严格比较只适用于严格相等

和严格不相等这两种符号

只要你看到有三个符号

那就代表这是严格比较

其他的符号都是抽象比较

之前演示过了关系比较符

现在我们来演示一下抽象相等和严格相等

假设我们要判断数字10和数字2是否相等

我们可以这样表示

答案肯定是false

因为数字10不等于数字2

如果把数字2换成字符串10呢?

你们猜猜答案是什么?

左边是数字

右边是字符串

两个等于符号代表这是抽象比较

所以JavaScript需要先把字符串转换成数字

所以最终会变成这样

10等于等于10

答案是true

因为数字10是等于数字10

我们尝试把2个等于符号换成3个等于

之前我们说过

一旦看到3个等于符号

那就代表这是严格比较

严格比较是不会做任何的数据类型转换

它只会比较值和数据类型是否相等

首先JavaScript会检查这两个值的数据类型

如果数据类型不一样就会直接返回false

所以这个比较会返回false值

如果我们把字符串10换成数字10

2个值的类型都是数字

所以接着会判断这两个值是否相等

很明显

数字10和数字10是相等的

所以会返回true值

刚才演示过了相等符号

现在我们来看看不相等符号

假设现在我们要判断

数字10和数字20是否不相等

可以这样表示

数字10

感叹号

等于

数字20

这是抽象比较

中间有两个等于符号

两边都是数字

所以不用转换类型就可以直接比较

10不等于20是对的

JavaScript会返回true

把数字20换成字符串20看看

因为这是抽象比较

所以字符串会先被转换成数字

然后才比较

这个比较会返回true

因为数字10和转换成数字的20是不相等的

我们再把抽象不相等换成严格不相等

在后面这里加一个等于符号

这个数字10和字符串20

不管是值和数据类型都不一样

所以它们俩是不相等的

会返回true值

如果我们把字符串20换成数字10呢?

能猜到这个对比的结果吗?

数字10严格不等于数字10

这是错的

因为数字10是严格等于数字10

所以会返回false

我们来总结一下

第一

JavaScript值的比较始终返回boolean值

true或者false

第二

字符串的比较是根据Unicode编码的顺序

也可以理解为词典的顺序

c大于b

y大于c

以此类推

第三

值在进行不同数据类型比较的时候

它们必须被转换成数字才能进行比较

像字符串对比数字

字符串会先被转换成数字才进行对比

第四

JavaScript值的比较主要分为两大类

抽象比较和严格比较

严格比较由三个符号组成

其他比较均为抽象比较

严格比较除了对比值(value)

也会对比数据类型(data type)

严格比较不会做任何的数据转换

抽象比较则会在对比前对值进行数据类型转换

第五

尽量使用严格比较做相等和不相等的对比

这样能免去很多你意想不到的bug

除非你知道自己在干嘛

接下来

给你们出3道题

看看能不能破解这期的任务

你可以把答案发到自学编程社区里

或者直接在视频下方留言也可以

答案会在下周三公布

今天的分享就到这里

如果还有其他的问题

欢迎在留言栏里提问

喜欢这个视频的话

就帮忙点个赞吧

那我们下期见,拜拜!


Comments

  1. How do I make money from casino games? - WorkMaker Money
    If you want to make money from a 바카라사이트 casino game, then หารายได้เสริม it is important to find a game you can play. How 메리트 카지노 do I make money from a casino game?

    ReplyDelete

Post a Comment

Popular posts from this blog

【编程入门】使用 HTML CSS 制作登录页面 (零基础菜鸟必看) | How to create a login form in html css

怎么制作网页?仅使用html css制作你人生第一个专属网页 (免费网页设计教程) | How to create a website for free | 网页编程系列 第1集

2021 網頁編程自學小白要怎麼學才能真真快速入門編程? (內附路線圖+ 3個王牌技能) | Web Development Roadmap For Beginners 2021