基本运算包括加减乘除。
console.log(100 + "100");
//结果为 100100
console.log(100 + "test");
//结果为 100test
console.log(100 - "10");
//结果为 90
console.log(100 - "test");
//结果为NaN
console.log(100 - "10");
//结果为 90
console.log(100 - "test");
//结果为NaN
由此可以得到:加法运算时,无论字符串是什么都会进行拼接;而减法、除法、乘法则会尽力转换字符串为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为101
var n = 100;
var result = ++n;
//result 的值为n运算后的结果 因为加号在前边,所以返回n运算的结果
console.log(result, n);
// result为101 n为101
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;
}
// 结果为 人工