TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网互联网干货javascript值的比较思维导图

javascript值的比较思维导图

  收藏
  分享
免费下载
免费使用文件
U913167374 浏览量:112022-11-14 12:35:58
已被使用0次
查看详情javascript值的比较思维导图

认识javascript值的比较,包括字符串的比较和不同类型的比较,还有一些特殊值比较的注意事项

树图思维导图提供 javascript值的比较 在线思维导图免费制作,点击“编辑”按钮,可对 javascript值的比较  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:5bce43ee912b587cf46ac88aadf7c8e5

思维导图大纲

javascript值的比较思维导图模板大纲

所有比较运算符均返回布尔值

字符串比较

字符串是按字符(母)逐个进行比较的

示例

alert( 'Z' > 'A' ); // true

alert( 'Glow' > 'Glee' ); // true

alert( 'Bee' > 'Be' ); // true

比较算法

原理

首先比较两个字符串的首位字符大小。

如果一方字符较大(或较小),则该字符串大于(或小于)另一个字符串。算法结束。

否则,如果两个字符串的首位字符相等,则继续取出两个字符串各自的后一位字符进行比较。

重复上述步骤进行比较,直到比较完成某字符串的所有字符为止。

如果两个字符串的字符同时用完,那么则判定它们相等,否则未结束(还有未比较的字符)的字符串更大。

示例

alert( 'Glow' > 'Glee' ); // true

G 和 G 相等。

l 和 l 相等。

o 比 e 大,算法停止,第一个字符串大于第二个。

字符按Unicode 编码顺序

大小写敏感

a > A

不同类型间的比较

比较方式:先将其转化为数字(number)再判定大小

alert( '2' > 1 ); // true,字符串 '2' 会被转化为数字 2

alert( '01' == 1 ); // true,字符串 '01' 会被转化为数字 1

alert( true == 1 ); // true

alert( false == 0 ); // true

一个有趣的现象

若直接比较两个值,其结果是相等的。

若把两个值转为布尔值,它们可能得出完全相反的结果,即一个是 true,一个是 false。

示例

let a = 0;

alert( Boolean(a) ); // false

let b = "0";

alert( Boolean(b) ); // true

alert(a == b); // true!

严格相等

普通的相等性检查 ==

不能区分出 0 和 false

alert( 0 == false ); // true

无法区分空字符串和 false

alert( '' == false ); // true

严格相等运算符 ===

在进行比较时不会做任何的类型转换

alert( 0 === false ); //false,因为被比较值的数据类型不同

对 null 和 undefined 进行比较

=== 比较

不相等

alert( null === undefined ); //false

== 比较

相等

alert( null == undefined ); //true

注意

数学式 或者 < > <= >= 比较

null/undefined 会被转化为数字

null 被转化为 0

undefined 被转化为 NaN

注意

奇怪的结果:null vs 0

alert( null > 0 ); // (1) false

普通比较符比较

alert( null == 0 ); // (2) false

相等性检查:和普通比较符比较逻辑独立

alert( null >= 0 ); // (3) true

普通比较符比较

进行值的比较时,null 会被转化为数字,因此它被转化为了 0。

特立独行的 undefined

undefined 不应该被与其他值进行比较

alert( undefined > 0 ); //false (1)

alert( undefined < 0 ); // false (2)

alert( undefined == 0 ); // false (3)

原因

(1) 和 (2) 都返回 false 是因为 undefined 在比较中被转换为了 NaN,而 NaN 是一个特殊的数值型值,它与任何值进行比较都会返回 false。

(3) 返回 false 是因为这是一个相等性检查,而 undefined 只与 null 相等,不会与其他值相等。

避免问题

除了严格相等 === 外,其他但凡是有 undefined/null 参与的比较,我们都需要格外小心。

除非你非常清楚自己在做什么,否则永远不要使用 >= > < <= 去比较一个可能为 null/undefined 的变量。对于取值可能是 null/undefined 的变量,请按需要分别检查它的取值情况。

相关思维导图模板

中国古典园林的发展思维导图

树图思维导图提供 中国古典园林的发展 在线思维导图免费制作,点击“编辑”按钮,可对 中国古典园林的发展  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:36d78f9402e836746f76d2d103c47efa

新时代四有教师的师德修养(刘海涛教授)彭深惠2023.10.19思维导图

树图思维导图提供 新时代四有教师的师德修养(刘海涛教授)彭深惠2023.10.19 在线思维导图免费制作,点击“编辑”按钮,可对 新时代四有教师的师德修养(刘海涛教授)彭深惠2023.10.19  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:d48fbbe524235782b9dd8c7f5a8cf009