运算符:
- JavaScript中运算符主要用于连接简单表达式,组成一个复杂的表达式。常见的有算数表达式,比较表达式,逻辑表达式,赋值表达式,也有单目运算符,指操作原始表达式,大多数运算符都由标点符号组成(
+ > = !
),也有关键字表达式(typeof delete instanceof
)。 - 一些运算符可以作用于任何数据类型(比如:typeof),但大部分操作符希望操作数是特定的类型,而且大部分操作符会返回特定类型的值(比如:typeof返回的是string)。
- 在JavaScript中运算符通常会根据需要对操作数进行类型转换。(比如:'3' * '5' == 数字15)
算数运算符
- 加法运算符(Addition):x + y
- 减法运算符(Subtraction): x - y
- 乘法运算符(Multiplication): x * y
- 除法运算符(Division):x / y,求商:parseInt(x / y);
- 余数运算符(Remainder):x % y
- 自增运算符(Increment):++x 或者 x++
- 自减运算符(Decrement):--x 或者 x--
- 求负运算符(Negate):-x
- 数值运算符(Convert to number): +x // 把x转换成数值
+
运算符
- 在两个操作符都是数字的时候,会做加法运算。
- 两个参数都是字符串或者有一个参数是字符串的情况下会把另外一个参数转换成字符串进行字符串的拼接。
- 在参数有对象的情况下会调用其
valuOf
或者toString
。 - 在只有一个字符串参数的时候会将其转换成数字。
- 在只有一个数字参数的时候返回其正数值。
console.log(2+4);//6
console.log("2"+"4");//"24"
console.log(2+"4");//"24"
console.log(2+new Date());//"2Mon Jan 20 2014 17:15:01 GMT+0800 (China Standard Time)"
console.log(+"4");//4
TIM图片20190116123048.png
TIM图片20190116123342.png
自增运算符 ++x / x++
(--y自减同理)
-
a ++
:在结果展示完之后,先赋值在自加. -
++a
:先+1,在运算。
a = 100 //a赋值为100
b = a ++ // b的值为100
a // a的值为101
c = 100 // c赋值为100
d = ++c // d的值为101
c // c的值为101
赋值运算符
赋值运算符用于给变量赋值,最常见的赋值运算符是等号,表达式x=y表示将y赋值给x。除此之外,JavaScript还提供其他11个赋值运算符。
x += y // 等同于 x = x + y
x -= y // 等同于 x = x - y
x *= y // 等同于 x = x * y
x /= y // 等同于 x = x / y
x %= y // 等同于 x = x % y
x >>= y // 等同于 x = x >> y
x <<= y // 等同于 x = x << y
x >>>= y // 等同于 x = x >>> y
x &= y // 等同于 x = x & y
x |= y // 等同于 x = x | y
x ^= y // 等同于 x = x ^ y
比较运算符
比较运算符比较两个值,然后返回一个布尔值,表示是否满足比较条件。JavaScript提供了8个比较运算符。
-
==
相等 -
===
严格相等 // 例外: NaN !== NaN -
!=
不相等 -
!==
严格不相等 -
<
小于 -
<=
小于或等于 -
>
大于 -
>=
大于或等于
布尔运算符:返回布尔值
-
!
取反运算符:!或者!!
强制转换成布尔类型。 -
&&
且运算符 -
||
或运算符 -
condition? true case : false case
三元条件运算符,又结合的运算符
位运算符
- 或运算(or):符号为
|
,表示两个二进制位中有一个为1,则结果为1,否则为0。 - 与运算(and):符号为
&
,表示两个二进制位都为1,则结果为1,否则为0。 - 否运算(not):符号为
~
,表示将一个二进制位变成相反值。 - 异或运算(xor):符号为
ˆ
,表示两个二进制位中有且仅有一个为1时,结果为1,否则为0。 - 左移运算(left shift):符号为
<<
- 右移运算(right shift):符号为
>>
- 带符号位的右移运算(zero filled right shift):符号为
>>>
小括号
- 在JavaScript中,圆括号是一种运算符,它有两种用法:如果把表达式放在圆括号之中,作用是求值;如果跟在函数的后面,作用是调用函数。
- 把表达式放在圆括号之中,将返回表达式的值。
void
void运算符的作用是执行一个表达式,然后返回undefined。
void a // undefined
有些情况下undefined可以被赋值
function fn(){
var undefined = 3;
var a;
if(a === undefined){ // 避免undefined被赋值,所以在此处写`viod 0`
console.log('===');
}else {
console.log('!==');
}
}
fn()
逗号运算符
逗号运算符用于对两个表达式求值,并返回后一个表达式的值。
运算符优先级与结合性
运算符的优先级《JavaScript权威指南》中阐述的很好,其中R/L代表结合性是右结合还是左结合,num->num表示操作符期望的数据类型和计算结果类型,lval指左值
TIM图片20190116132906.png
TIM图片20190116132933.png
TIM图片20190116132959.png
网友评论