开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情*
自增自减
我们在做一些算法题目的时候,通常会用到自增和自减两个概念,说白了自增和自减无非就是在自身的基础上进行+1或-1的操作,是最常见的数学运算符之一
自增:++ 自减: --
自增和自减只能用于变量,不能用于常数
++和--的位置
运算符++
和--
可以置于变量前,也可以置于变量后
- 当运算符置于变量后,被称为后置形式 (postfix form)
- 当运算符置于变量前,被称为前置形式 (prefix form)
前置形式和后置形式的区别
- 这两者是有区别的,但只有当我们使用 ++/-- 的返回值时才能看到区别
- 如果自增/自减的值不会被使用,那么两者形式没有区别
- 如果我们想要对变量进行自增操作,并且需要立刻使用自增后的值,那么我们需要使用前置形式
- 前置形式返回一个新的值,但后置返回原来的值
运算符的优先级
符号 | 运算顺序 |
---|---|
** | 从右往左 |
** | 从左往右 |
/ | 从左往右 |
% | 从左往右 |
+ | 从右往左 |
- | 从右往左 |
比较运算符
- 大于 / 小于: a > b ,a < b
- 大于等于 / 小于等于: a >= b ,a <= b
- 检查两个值的相等: a == b,请注意双等号 == 表示相等性检查,而单等号 a = b 表示赋值
- 检查两个值不相等: 不相等在数学中的符号是 ≠,但在 JavaScript 中写成 a != b
**===和==**的区别
在我们写项目的时候,有时候会需要检查两个值是否相等,但是如果我们使用普通的==进行判断,会存在一个问题:它不能区分出 0 和 false,或者空字符串和 false这类运算
原因
- 这是因为在比较不同类型的值时,处于判断符号
==
两侧的值会先被转化为数字 - 空字符串和
false
也是如此,转化后它们都为数字 0,因此见下图
很多情况下,我们是需要严格区分0和false的,这个时候===
就派上用场了😎
使用===的好处
- 严格相等运算符===在进行比较时不会做任何的类型转换
- 换句话说,如果a和b属于不同的数据类型,那么
a === b
不会做任何的类型转换而立刻返回 false - 同样的,不相等符号 != 类似,严格不相等表示为 !==
- 严格相等的运算符虽然写起来稍微长一些, 但是它能够很清楚地显示代码意图 ,降低你犯错的可能性
- 在日常编写代码或者写项目的时候,我更推荐大家使用===来降低代码犯错的可能性😆