运算符,算数运算符,赋值运算符,字符运算符等

运算符

赋值运算符

赋值运算符将它右边操作数的值赋给它左边的操作数。最简单的赋值运算符是等于(=),它将右边的操作数值赋给左边的操作数。那么 x = y 就是将 y 的值赋给 x。

还有一些复合赋值操作符,它们是下表列出的这些操作的简写:

名字

简写的运算符

含义

赋值

x = y

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

按位异或赋值

x ^= y

x = x ^ y

按位或赋值

x |= y

x = x | y

逻辑与赋值

x &&= f()

x && (x = f())

逻辑或赋值

x ||= f()

x || (x = f())

逻辑空赋值

x ??= f()

x ?? (x = f())

字符串运算符

可以在字符串值中使用,连接操作符(+)连接两个字符串值相连接,返回另一个字符串,

简写操作符 += 也可以用来拼接字符串

console.log("my " + "string"); // console logs the string "my string".

var myString = "alpha";

myString += "bet"; // 返回 "alphabet"

算数运算符

算术运算符使用数值 (字面量或者变量) 作为操作数并返回一个数值。标准的算术运算符就是加减乘除 (+ - * /)。当操作数是浮点数时,这些运算符表现得跟它们在大多数编程语言中一样(特殊要注意的是,除零会产生Infinity)。例如:

Js

1 / 2; // 0.5

1 / 2 == 1.0 / 2.0; // true

运算符

描述

示例

求余(%

二元运算符。返回相除之后的余数。

12 % 5 返回 2

自增(++

一元运算符。将操作数的值加一。如果放在操作数前面(++x),则返回加一后的值;如果放在操作数后面(x++),则返回操作数原值,然后再将操作数加一。

var x=3; console.log(++x); //4 console.log(x); //4 var y=3; console.log(y++); //3 console.log(y); //4

自减(--

一元运算符。将操作数的值减一。前后缀两种用法的返回值类似自增运算符。

var x=3; console.log(--x); //输入 2,x=2var y=3;console.log(y--);//输出 3,x=2;

一元负值符(-

一元运算符,返回操作数的负值。

var x=3; console.log(-x); //输入 -3

一元正值符(+

一元运算符,如果操作数在之前不是数值,试图将其转换为数值。

console.log( +'3' ); // 3 console.log( '3' ); // '3' console.log(+true); // 1

指数运算符(**

计算底数(base)的指数(exponent)次方,表示为 base^exponent

2 ** 3 返回 810 ** -1 返回 0.1

比较运算符

比较运算符用于对两个数据进行比较,比较结果是布尔值 true 或 false

运算符

描述

返回 true 的示例

等于 Equal (==)

如果两边操作数相等时返回 true

3 == var1 "3" == var1 3 == '3'

不等于 Not equal (!=)

如果两边操作数不相等时返回 true

var1 != 4 var2 != "3"

全等 Strict equal (===)

两边操作数相等且类型相同时返回 true。参

3 === var1

不全等 Strict not equal (!==)

两边操作数不相等或类型不同时返回 true

var1 !== "3" 3 !== '3'

大于 Greater than (>)

左边的操作数大于右边的操作数返回 true

var2 > var1 "12" > 2

大于等于 Greater than or equal (>=)

左边的操作数大于或等于右边的操作数返回 true

var2 >= var1 var1 >= 3

小于 Less than (<)

左边的操作数小于右边的操作数返回 true

var1 < var2 "2" < 12

小于等于 Less than or equal (<=)

左边的操作数小于或等于右边的操作数返回 true

var1 <= var2 var2 <= 5

==、!=在比较不相同类型的数据时,首先会自动将要进行比较的数据转换成相同的 数据类型,然后再进行比较。

===、!==在比较不相同类型的数据时,不会进行数据类型的转换。

逻辑运算符

逻辑运算符常用于布尔(逻辑)值之间; 当操作数都是布尔值时,返回值也是布尔值。不过实际上&&和||返回的是一个特定的操作数的值,所以当它用于非布尔值的时候,返回值就可能是非布尔值。逻辑运算符的描述如下。

运算符

范例

描述

逻辑与 (&&)

expr1 && expr2

(逻辑与) 如果 expr1 能被转换为 false,那么返回 expr1;否则,返回expr2。因此&&用于布尔值时,当操作数都为 true 时返回 true;否则返回 false.

逻辑或 (||)

expr1 || expr2

(逻辑或) 如果 expr1 能被转换为 true,那么返回 expr1;否则,返回expr2。因此,|| 用于布尔值时,当任何一个操作数为 true 则返回 true;如果操作数都是 false 则返回 false

逻辑非 (!)

!expr

(逻辑非) 如果操作数能够转换为 true 则返回 false;否则返回 true

// 逻辑“与”

 console.log(123 && 456); // 输出结果:456

 console.log(0 && 456); // 输出结果:0

 console.log(2 > 1 && 3 > 1); // 输出结果:true

 console.log(2 < 1 && 3 > 1); // 输出结果:false

 // 逻辑“或”

 console.log(123 || 456); // 输出结果:123

 console.log(0 || 456); // 输出结果:456

 console.log(2 > 1 || 3 < 1); // 输出结果:true

 console.log(2 < 1 || 3 < 1); // 输出结果:false

 // 逻辑“非”

 console.log(!(2 > 1)); // 输出结果:false

 console.log(!(2 < 1)); // 输出结果:true

如果通过左表达式能够确定最终值时,则不运算右表达式的值,此时称为短路。

短路效果的示例代码如下。

var num = 1;

false && num++; // && 短路情况

console.log(num); // 输出结果:1

三元运算符

三元运算符也称为三元表达式,使用问号“?”和冒号“:”两个符号来连接,,运算的结果根据给定条件在两个值中取其一。语法为:

条件 ? 值 1 : 值 2

如果条件为真,则结果取值 1。否则为值 2。你能够在任何允许使用标准运算符的地方使用条件运算符。

var age = 15;

var status = age >= 18 ? '已成年' : '未成年';

console.log(status); // 输出结果:未成年

位运算符

位运算符将它的操作数视为 32 位元的二进制串(0 和 1 组成)而非十进制八进制或十六进制数。例如:十进制数字 9 用二进制表示为 1001,位运算符就是在这个二进制表示上执行运算,但是返回结果是标准的 JavaScript 数值

Operator

Usage

Description

按位与 AND

a & b

a,b 的位表示中,每一个对应的位都为 1 则返回 1,否则返回 0.

按位或 OR

a | b

a,b 的位表示中,每一个对应的位,只要有一个为 1 则返回 1,否则返回 0.

按位异或 XOR

a ^ b

a,b 的位表示中,每一个对应的位,两个不相同则返回 1,相同则返回 0.

按位非 NOT

~ a

反转被操作数的位。

左移 shift

a << b

a 的二进制串向左移动 b 位,右边移入 0.

算术右移

a >> b

a 的二进制表示向右移动 b 位,丢弃被移出的所有位。(译注:算术右移左边空出的位是根据最高位是 0 1 来进行填充的)

无符号右移 (左边空出位用 0 填充)

a >>> b

a 的二进制表示向右移动 b 位,丢弃被移出的所有位,并把左边空出的位都填充为 0

运算符优先级

运算符的优先级,用于确定一个表达式的计算顺序。在你不能确定优先级时,可以通过使用括号显式声明运算符的优先级。

JavaScript 中运算符的优先级,表中由上至下递减,结合方向表示同级运算符执行顺序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值