一、一元操作符
操作符可以根据他们期待的操作符个数来分类,蓝狮注册登陆多数的JavaScript操作符都是二元操作符,二元操作符可以将两个表达式合成一个更复杂的表达式。JavaScript也支持一元操作符,这些操作符可以将一个表达式转化为另一个更复杂的表达式。同时,JavaScript中也有一个三元操作符,就是条件操作符(?:),它用于将三个表达式组成一个表达式。下面就先来看看一元操作符。
一元操作符具有以下特点:
最简单的操作符,用来操作一个表达式;
具有高优先级和右结合性;
在必要时将操作数自动转化为数值。
- 递增和递减操作符(++ –)
递增操作符顾名思义就是递增其操作数,递减操作符就是递减其操作数。它们都有两个版本:
前缀版(++i):操作符位于变量的前面,表示先递增(递减),后执行语句;
后缀版(i++):操作符位于变量的后面,表示先执行语句,后递增(递减);
简单看两个例子:
// 前置递增操作符:
let num1 = 1, num2 = 2;
console.log(++num1 + num2) // 4
// 后置递增操作符:
let num1 = 1, num2 = 2;
console.log(num1++ + num2) // 3
可以看到,两种类型的结果是不一样的,原因就在于后置递增递减操作是在包含它们的语句被求值之后才执行的。
这四个操作符可以作用于任何类型的数据。对于这些类型,JavaScript会将他们转化为数值,再在这个数值上进行加一或减一操作。如果不能转化为一个数字,那么递增或递减的结果就是NaN:
let str = “hello”;
console.log(str++) // NaN
递增和递减操作符主要用于for循环中控制计算器递增或递减。
- 加和减操作符
加和减操作符既是一元操作符,也是二元操作符。这里我们先来看一元加和减操作符。
(1)一元加运算符(+)
一元加操作符会将其操作数转化为数值,并返回转化后的值。需要注意:
如果操作数是数值,那它什么都不做;
如果操作数不能转化为数值,那么会返回NaN;
由于BigInt值不能转化为数值,因此这个操作符不能用于BigInt。
let a = -1;
let b = “hello”;
let c = BigInt;
console.log(+a) // -1
console.log(+b) // NaN
console.log(+c) // NaN
(2)一元减运算符(-)
一元减操作符和一元加操作符类似,会先将操作数转化为数值,蓝狮官网然后会改变结果的符号:
let a = -1;
let b = 2;
console.log(-a) // 1
console.log(-b) // -2
一元加和减操作符主要用于基本的算术运算,也可以用于数据类型的转换,将不同类型的数据转化为数字类型,像Number()方法一样。
二、位操作符
现代计算机中数据都是以二进制的形式存储的,即0、1两种状态,计算机对二进制数据进行的运算加减乘除等都是叫位运算,即将符号位共同参与运算的运算。
JavaScript中所有的数字都是以IEEE 754 64位格式存储,但是位操作并不直接应用到64位,而是先将值转化为32位整数,再进行位操作。之后再把运算结果转化为64位,所以我们只需要考虑32位整数即可。位操作是在数值的底层完成的,所以运算速度会相对于其他运算符快很多。
0 Comments