常见运算符有 + - * / %
(加减乘除求余),其中求幂是 **
例如:
let num= 2**4;
alert(num); //16
+
运算符在二元运算中, 如果被应用于字符串则表示拼接字符串,如果其中一个运算元是字符串,那么另一个运算元也将会被转换为字符串
alert( '1' + 2 ); // "12"
alert( 2 + '1' ); // "21"
并且+
运算符是唯一以这种方式支持字符串的运算符。 其他算术运算符仅使用数字,并且始终将其操作数转换为数字。
当 +
运算符只有一个运算元时,如果运算元不是数字,那么将会被转换为数字,例如 +"1"
,此时会将字符串1转换为数字1,这种转换数字的方式有时候可以替代Number()
例如:
alert( +true ); // 1
所以如果想要让alert( '1' + 2 );
输出3,可以这样
alert(+'1' + +2);
运算符的优先级
只需要记住一元运算符的优先级比二元运算符的优先级高。
赋值运算符
=
表示赋值运算符
let n = 2;
n = n + 5;
n = n * 2;
可简写成
let n = 2;
n += 5; // now n = 7 (same as n = n + 5)
n *= 2; // now n = 14 (same as n = n * 2)
相等运算符
JavaScript 中有两种相等运算符,==
和 ===
相等运算==
比较相同类型的数据时,和严格相等===
一样,
原始类型值比较
原始类型的值会转换成数值再进行比较。
举例:
2==true; //flase
//Number(true)=1
2==false; //false
//Number(false)=1
0==false; //true
//Number(false)==0
严格相等运算符
不同类型的值
如果两个值数据类型不相同就会直接返回false,
同一类的原始类型值
原始类型值包括Number /Boolean/ String
值相同返回true , 不相同就返回false
NaN 不等于任何值,包括它 本身,+0 等于 -0
复合类型
对象,数组和函数比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个地址,
{}==={};//false
[]===[];//false
(function () {} === function () {}) // false
如果两个变量引用同一个对象,那么它们相等。
undefined 和 null
它们本身严格相等,
undefined === undefined // true
null === null // true
let va1,va2;
va1===va2;//true