03JavaScript运算符
基本运算
基本运算包括加减乘除。
当数字与任意字符串都相加时相当于字符串拼接
console.log(100 + "100"); //结果为 100100 console.log(100 + "test"); //结果为 100test当数字与一个字符串类型的数字相减时就返回正确的结果,与非数字的字符串相见返回NAN
console.log(100 - "10"); //结果为 90 console.log(100 - "test"); //结果为NaN乘法、除法与减法类似。
console.log(100 * "test"); //结果为 NaN console.log(100 * "10"); //结果为 1000 console.log(100 / "test"); //结果为 NaN console.log(100 / "10"); //结果为 10
由此可以得到:加法运算时,无论字符串是什么都会进行拼接;而减法、除法、乘法则会尽力转换字符串为number类型,如果无法转换结果为NaN,否则返回运算结果。
取余运算
当左边的操作数位正数时,那么结果也为整数
当左边的操作数位负数时,那么结果也为负数
console.log(10 % 3);
//结果为 1
console.log(-10 % 3);
//结果为 -1
console.log(10 % -3);
//结果为 1
console.log(-10 % -3);
//结果为 -1自增运算
自增(自减)运算结果的确定其实很简单,因为n++是n=n+1的简写,所以当加号在后边的时候n++那么返回的是n,也就是直接返回结果在计算。反之,当++n时返回的就是运算结果。
var n = 100;
var result1 = n++;
//result 的值为n的值 因为加号在后边,所以返回n而不是返回运算后的值
console.log(result1, n);
// result1为100 n为101var n = 100;
var result = ++n;
//result 的值为n运算后的结果 因为加号在前边,所以返回n运算的结果
console.log(result, n);
// result为101 n为101
全等与不等运算
判断是否为NaN
console.log(isNaN('test')); //NaN只判断值而不判断类型
// 只判断值是否相等 相等返回true 不等返回false console.log(2 == "2"); //true // 只判断值是否不等于 不等于返回true 等于返回false console.log(2 != "2"); //false即判断值也判断类型
// 判断值与类型是否全相同 全相同返回true 不全相同返回false console.log(2 === "2"); //false // 判断值与类型是否不相同 不相同返回true 相同返回false console.log(2 !== "2"); //true
逻辑运算符
| 运算符 | 描述 | 案例 |
|---|---|---|
逻辑与运算符(&&) | 如果左边操作数转换为 boolean 类型的值为 false,则返回左边操作数,否则返回右边操作数 | true && false 的结果为 false |
逻辑或运算符(||) | 如果左边操作数转换为 boolean 类型的值为 true,则返回左边操作数,否则返回右边操作数 | false || true 的结果为 true |
逻辑非运算符(!) | 将操作数转换为 boolean 类型的值,如果为 true 的话则返回 false,否则返回 true | !true 的结果为 false |
赋值运算符
赋值运算符中a=a+1可以简写为a+=1。
简写与不简写的区别:简写的执行效率高于不简写
条件运算符与条件语句
条件运算符即condition ? exprIfTrue : exprIfFalse
var age = 20
var result = age > 18 ? '成年人' : '未成年人'
console.log(result)
// 成年人在JavaScript中:
- 条件语句和条件运算符可以相互改写
- 运算符的执行优先级别高于语句的
- 条件运算符的效率更高
在if-else里if-else结构优于层级嵌套。
在switch语句中,default不一定写在末尾。
var num = 'test';
switch (num) {
default:
console.log("人工");
break;
case 0:
console.log(0);
break;
case 1:
console.log(1);
break;
case 2:
console.log(2);
break;
case 3:
console.log(3);
break;
}
// 结果为 人工
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小康博客!
评论
TwikooDisqusjs








