在 JavaScript 里一个等号 =
代表的意思是指定、赋值。
而两个等号跟三个等号是用来比较数值。
两等号 ==
:若两边型别不同会自动转型再进行比较。
三等号 ===
:不做转型直接比较。
容易造成的误解:两等号不检查型别,三等号会检查型别。
真相是:两等号会自动转型,三等号不会。
var a = 21;
var b = "21";
console.log(a==b); // true,b 字串被自动转型成数字所以相等
console.log(a===b); // false,不做转型直接比较
再来看看一些有趣的结果
true == 1; // true,左边 true 布林值转数字是 1
true == "true"; // false,"true" 字串转成数字是 NaN
false == 0; // true,左边 false 布林值转数字是 0
false == "false"; // false,"false" 转数字也是 NaN
[] == []; // false,记忆体位置不同
转自 MDN 比较运算子
P.S. =>
是 ES6 的箭头函式,不是运算子,可以用书写顺序不同来分别。
JavaScript 经常会对两侧数值做自动转型,规则如下:
一般不会遇到太多极端的情况(如果遇到了就只能...),这里有一个真值表可以仔细观察转型规则。
参考资料
0 陷阱!0 误解!8 天重新认识 JavaScript!
MDN 比较运算子
真值表转自 https://thomas-yang.me/projects/oh-my-dear-js/
<<: DAY6 建立Messaging API channel
简介 本系列内容将会提及D3Js和资料相关内容的知识,主题订定为资料驾驭网页,其实一部分原因来自D3...
前言 本日主要内容包含另一个网路撷取资料方式Convert HTML Tables To JSON、...
我的开发环境是ubuntu20,但是部署环境是ubuntu18; 开发的语言是python,出现了一...
昨天写完「程序竞赛前中後准备技巧」後,今天下午便紧接着 NCPC,因此想趁这个机会做个纪录,顺便为上...
大家好,我是Hank。 目前就读於台科大资工所的研究生。 很高兴有机会向大家分享我在开发Google...