算术运算符
- 和C语言不同的是JavaScript中整数除以整数如果不能整除结果是小数
var res4 = 10 / 3;
console.log(res4); // 3.3333
var result = 2 + NaN;
console.log(result); //NaN
- 参与运算的不是Number类型, 会先转换为Number类型后再运算
var res4 = 3 * false;
console.log(res4);
var res5 = 2 * null;
console.log(res5);
- 只有加法连接字符串才会转换为字符串, - * / %都会转换为Number
- 对于取模运算m%n, m小于n, 结果就是m; 如果m等于0, 结果就是0, 如果n等于0, 结果就是NaN
var res7 = 10 % 0;
console.log(res7);
关系运算符
- == 判断左右两侧的值是否相等
=== 除了需要判断左右两侧的值是相等以外, 还会判断类型是否相等
var num1 = 123;
var num2 = "123";
console.log(num1 == num2);//true
console.log(num1 === num2);//false
- 对于非Number类型的数据, 会先转换为Number类型之后再比较
- 对于null和undefined来说, 虽然null转换为Number之后是0, undefined转换为Number之后是NaN, 但是再和0做==比较的时候, 会返回false
var res = 0 == null;
console.log(res);//false
var res2 = 0 == undefined;
console.log(res2);//false
- 千万不要用其它值和NaN进行==比较, 也不要让两个NaN之间进行比较
判断是否属于NaN可以使用isNaN()
函数
var num = 666;
var res = isNaN(num);
console.log(res);//false
var num2 = NaN;
var res2 = isNaN(num2);
console.log(res2);//true
逻辑运算符
- 对于非Boolean类型的数据, 会先转换为Boolean类型之后再判断
判断之后的返回值, 逻辑与和逻辑或都有自己的规则
var res = 10 && true;
console.log(res);
var res1 = 0 && true;
console.log(res1);
var res2 = 1 || 0;
console.log(res2);
网友评论