JavaScript|JavaScript笔记(四)-----运算符

一、 赋值运算符=

注意!!
=赋值
==值相等
===值相等类型相同
二、 算术运算符
1. +加法运算符 当+两侧同时为数字时,表示加法运算
1 + 1 // 2

当+任何一侧为字符串,表示字符串拼接(进行了隐式转换)
效果如下:
'a' + 'bc' // "abc"

1 + 'a' // "1a" false + 'a' // "falsea"

第一行是两个布尔值相加,第二行是数值与布尔值相加。这两种情况,布尔值都会自动转成数值,然后再相加,效果如下:
true + true // 2 1 + true // 2

2.-减法运算符
a-b
3. *乘法运算符
x * y
4./除法运算符
x / y
5.%取余运算符
x%y
会返回前一个数值除以后一个数值所得的余数。
12 % 5 // 2

运算结果的正负号由第一个数值的正负号决定。
-1 % 2 // -1 1 % -2 // 1

自增和自减运算符,是一元运算符 6.自增运算符:++x 或者 x++
x++先输出,再自增
把x原来的值当做整个表达式的值输出
再进行自增
--x先自增,再输出
先进行自增
【JavaScript|JavaScript笔记(四)-----运算符】再把自增后的值作为整个表达式的值进行输出
7.自减运算符:--x 或者 x--
同上
var x = 1; ++x // 2 x // 2--x // 1 x // 1


除了加法运算符,其他算术运算符(比如减法、除法和乘法)一侧为数字时,都会先把该侧转为数值,再进行相应的数学运算,转换失败,最终结果为NaN(NotaNumber)非数字
1 - '2' // -1 1 * '2' // 2 1 / '2' // 0.5

二、 比较运算符
  1. < 小于运算符
  2. > 大于运算符
  3. <= 小于或等于运算符
  4. >= 大于或等于运算符
  5. == 相等运算符
  6. === 严格相等运算符
  7. != 不相等运算符
  8. !== 严格不相等运算符
比较运算符用于比较两个值的大小,然后返回一个布尔值
2 > 1 // true

比较运算符在比较过程中可能会进行类型转换


=====的区别:
1. ==比较两个值是否相等, === 比较它们是否为“同一个值”。
2.如果两个值不是同一类型,=== 直接返回false,而 == 会将它们转换成同一个类型,再用严格相等运算符进行比较。

三、逻辑运算符
1. 与 &&
多个条件同时成立为真,否则为假

逻辑与短路运算:
如果表达式1, 结果为真,则返回表达式2
如果表达式1, 结果为假,则返回表达式2

2.或||
多个条件有一个条件成立,就为真

逻辑或短路运算:
如果表达式1, 结果为真,则返回表达式1
如果表达式1, 结果为假,则返回表达式2

3.非!
取反, 假变真真变假
!true // false !false // true


对于非布尔值,取反运算符会将其转为布尔值。以下六个值取反后为true,其他值都为false
  • undefined
  • null
  • false
  • 0
  • NaN
  • 空字符串(''
!undefined // true !null // true !0 // true !NaN // true !"" // true!54 // false !'hello' // false ![] // false !{} // false

五、运算符的优先级
一元运算符里逻辑非优先级很高
逻辑与 比 逻辑 或 优先级高 先 && 后 ||
!> 算术运算符 >关系运算符> 逻辑运算符> 赋值运算符
可以用()提高运算的优先级,因为它的优先级是最高的
(4 + 5) * 6 // 54

因为圆括号不是运算符,所以不具有求值作用,只改变运算的优先级。

    推荐阅读