5.JavaScript-算数运算符的注意点
2019-04-02 本文已影响0人
乄Denve彡
1.加法运算的注意点
1.1任何非数值类型的数据在参与加法运算之前,都会被自动的转换为数值类型之后,再参与运算
let bool = true;
let num = 1;
let sum = bool + num; // 先将true转换为数值1 才参与计算
console.log(sum); // 2
1.2任何数据和NaN运算,结果都是NaN
let nan = NaN;
let num = 1;
let sum = nan + num;
console.log(sum); // NaN
1.3任何数据和字符串相加,都会被先转换成(字符串)之后再运算
原因是通过 "+" 可以将其他类型转换成字符串类型,(本质就是调用String()函数)
let str = "123";
let num = 1;
let sum = str + num;
console.log(sum); // 1231
2.减法运算的注意点
2.1任何非数值类型的数据在参与加法运算之前,都会被自动的转换为数值类型之后,再参与运算
let bool = true;
let num = 1;
let sum = bool - num; // 先将true转换为数值1 才参与计算
console.log(sum); // 0
2.2任何数据和NaN运算,结果都是NaN
let nan = NaN;
let num = 1;
let sum = nan - num;
console.log(sum); // NaN
2.3任何数据和字符串相减,都会先把字符串转换成(数值类型)之后再运算
let str = "123";
let num = 1;
let sum = str - num;
console.log(sum); // 122
3.乘法和除法运算的注意点
3.1任何非数值类型的数据在参与加法运算之前,都会被自动的转换为数值类型之后,再参与运算
let bool = true;
let num = 1;
let sum = bool * num; // 先将true转换为数值1 才参与计算
console.log(sum); // 1
3.2任何数据和NaN运算,结果都是NaN
let nan = NaN;
let num = 1;
let sum = nan * num;
console.log(sum); // NaN
3.3任何数据和字符串相乘/除,都会先把字符串转换成(数值类型)之后再运算
let str = "123";
let num = 2;
let sum = str * num;
console.log(sum); // 246
4.取模(取余)运算注意点
4.1 如果m>n,那么就正常取余
4.2 如果m<n,那么结果就是m
4.3 如果n是0,那么结果就是NaN
4.4 取余运算结果的正负性,取决于m而不是n
// m>n,正常取余
let m = 5;
let n = 2;
let res = m % n;
console.log(res); // 1
// m<n,结果为m
let m = 2;
let n = 5;
let res = m % n;
console.log(res); // 2
// 如果n是0,那么结果就是NaN
let m = 2;
let n = 0;
let res = m % n;
console.log(res); // NaN
// 取余运算结果的正负性,取决于m
let m = -12;
let n = 5;
let res = m % n;
console.log(res); // -2