所谓操作符,就是用来操作数据值的符号,在JAVAScript中包括算术操作符、位操作符、关系操作符和相等操作符 。这些操作符可以操作所有类型的数据,比如字符串、数字、布尔值,甚至对象 。
一元操作符所谓一元操作符就是只能对一个数据值进行操作,比如(递增、递减)操作符 。
递增、递减操作符是直接借鉴C语言的,它分前置型和后置型 。前置就是操作符在要操作的变量之前,后置在变量之后 。
如下示例:
// 前置型let age = 20;++age; // 递增console.log(age); // 结果输出21--age;//递减console.log(age); // 结果输出20
如上面例子,age通过++操作符递增变成21,又通过--操作符递减变成20;上面的操作等同下面的操作:
// 后置型let age = 20;age = age + 1; // 加1age = age -1;// 减1
同理使用后置操作符会得到上面同样的结果,但是前置和后置有区别 。前置操作符在语句被求值以前改变,后置是在语句被求值后改变 。通过下面的例子看下其区别:
// 前置let age = 20;let anotherAge = --age + 5;alert(age); // 输出19alert(anotherAge); // 输出24
由于前置操作符的优先级和执行语句相等,因此会从左到右依次求值 。上面的--age 会先进行递减操作,再继续后面的 + 5 运算,所以结果是24 。
// 后置时let age = 20;let anotherAge = age-- + 5;alert(age); // 输出19alert(anotherAge); // 输出25
但是后置的最终结果却是25,因为age-- 使用了递减前的值继续和后面进行+5运算 。
如果使用一个加号或减号时,加号代表正值、减号代表负值 。
加减乘除操作符操作多个数据值,比如加减乘除等:
let a = 1,b=2;let c = a + b; // 加let d = c - a; // 减let e = d * b; // 乘let f = e/d; // 除
注意加减乘除主要用来操作数字类型的数据,如果操作数不是数字类型,会先进性强制转换再进行计算,这样结果会不确定 。
位操作符位操作符,是指按内存中的表示的数值位来操作数值,通俗讲就是用来操作二进制的数据 。二进制数据都是由0、1组成的,在JavaScript中所有数值都是64位的格式存储,但位操作符不直接在64位的值上进行计算,会先转化成32位后再运算 。位操作符有以下几种:
按位非(NOT)
按位非操作符是(~)符号,就是将二进制中每位数值进行反码操作 。其规则如下:
数值
结果
~
1
0
~
0
1
如下示例:
let a = 25;let b = ~a;alert(b); // 输出-26
按位与(AND)使用(&)符号表示,它有2个操作数,当2个数对应的位都是1时返回1,任何一位是0则返回0 。如下规则:
操作符
数值2
结果
1
&
1
1
1
&
0
0
0
&
1
0
0
&
0
0
示例:
let a = 25 & 3;alert(a); // 输出结果是1
按位或(OR)用(|)符号表示,同样也是2个操作数 。其规则是只要有一位是1其结果就是1,负则结果是0;
操作符
数值2
结果
1
|
1
1
1
|
0
1
0
|
1
1
0
|
0
0
示例:
let a = 25 | 3;alert(a); // 输出结果是27
按位异或(XOR)由(^)符号表示,也是操作2个操作数,其当2个操作数的位值相同时返回0,负则返回1 。
操作符
数值2
结果
1
^
1
0
1
^
0
1
0
^
1
1
0
^
0
0
示例:
let a = 25 ^ 3;alert(a); // 输出结果是26
左移使用(<<)两个小于号表示,这个操作符会将数值每一位向左移动指定位数 。如下示例:
let a = 2;// 二进制 10let b = b << 5; // 二进制的 1000000,十进制64
上面,将二进制10向左移动5位,注意左移会多出5个空位,用0来填充,这样就会得到一个完整的32位二进制数据 。注意,左移不会影响符号位(二进制位中第一位表示数的正负),如-2 向左移5位结果是-64 。
有符号的右移
使用(>>)两个大于号表示,会将每位向右移动指定位数,但保留符号位(即正负号标记) 。如下示例:
推荐阅读
- 起死回生”扁鹊——春秋战国时期名医 起死回生的主人公是谁
- 自学气功入门呼吸法
- 翡翠|翡翠知识系列详解—A货翡翠一定时真的吗?
- 孔夫子搬家的歇后语有哪些?
- 金刚菩提|饰品手串—金刚菩提
- 玉雕|玉雕大师——董晓孟
- 秦岭淮河一线地理意义是什么?
- 东北话方言句子有哪些?
- |赌石,翡翠入门?必修一课
- 从千元入门到高端电动车盘点值得入手的电动车 电动车排名前十名