在生活中我们常常都需要做判断,例如肚子饥饿的程度,假设满分是10分,若饥饿的程度大约7分,可能只想吃个小东西,若饥饿的程度为5分以下,可能就要吃个便当之类的,大脑会自动帮我们去做判断。
程式上也是有类似的情境,所以才会有一些用来做判断的比较运算子,以下就来介绍两种 ==
(等于) 和 !==
(不等于)
以下範例都可以自行在 console 下做练习,若用数学上来比较的话:
数字5等于数字5,若此时在 console 这样去做比较的话5 == 5
会回传 true
数字5等于数字6?5 == 6
此时会回传 false
,因为5并不等于6
那如果换个说法,数字5不等于数字6?5 !== 6
这时候会回传 true
,因为5不等于6
小提醒:=
和 ==
,在 JavaScript 的世界里是不一样的=
是赋予的意思,例如 var a = 5;
代表 a 这个变数被赋予5这个值,并不是 a 等于5==
才是等于的意思,这是额外补充的小提醒。
我们除了可以用数字做为例子才比较运算之外,布林值也可以用来做比较,例如:true == true
会回传 true
true == false
会回传 false
false == false
会回传 true
另外有一个较为严谨的比较模式,就是===
在==
的时候,左右两边并不会比较资料型别,而会自动去转型做比较
例如: 1 == '1'
,数字1等于字串1,这时候会回传 true
,JavaScript 会自动把字串1先转型成数字1,再去做比较,转型的部分比较複杂(这里就先不多提)
如果在===
的情况下,1 === '1'
,数字1并不会等于字串1,会回传 false
因为数字跟字串本身就是不一样的资料型别,所以在比较的时候会先从资料型别去做比较,如果两边的资料型别不一样,则就先回传 false
,所以这是较严谨的比较模式
之后再陆续介绍其他的比较运算子