加法运算的注意点
- 任何非数值类型的数据在参与加法运算之前, 都会被自动的转换成数值类型之后, 再参与运算
- 任何数据和 NaN 进行运算, 结果都是 NaN
- 任何数据和字符串相加, 都会被先转换成字符串之后再运算
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let res1 = 1 + true;
let res2 = 1 + 1;
let res3 = 1 + null;
let res4 = 1 + 0;
let res5 = 1 + NaN;
// let res = "1" + "123";字符串相加的本质就是字符串拼接 "1123"
let res6 = 1 + "123";
console.log(res1);
console.log(res2);
console.log(res3);
console.log(res4);
console.log(res5);
console.log(res6);
</script>
</head>
<body>
</body>
</html>
减法运算的注意点
- 任何非数值类型的数据在参与减法运算之前, 都会被自动的转换成数值类型之后, 再参与运算
- 任何数据和 NaN 进行运算, 结果都是 NaN
- 任何数据和字符串相减, 都会先把字符串转换成数值类型之后再运算
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let res1 = 1 - true;
let res2 = 1 - 1;
let res3 = 1 - NaN;
// let res = 1 - 123; -122
let res4 = 1 - "123";
console.log(res1);
console.log(res2);
console.log(res3);
console.log(res4);
</script>
</head>
<body>
</body>
</html>
乘法和除法运算的注意点
和减法运算的注意点一模一样
取模(取余)运算的注意点
格式:m % n = 余数
- 如果 m > n 的, 那么就正常取余
- 如果 m < n 的, 那么结果就是 m
- 如果 n 是 0, 那么结果就是 NaN
- 取余运算结果的正负性, 取决于 m 而不是 n
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let res1 = 10 % 3;
let res2 = 3 % 10;
let res3 = 3 % 0;
// 1
let res4 = 10 % -3;
// -1
let res5 = -10 % 3;
console.log(res1);
console.log(res2);
console.log(res3);
console.log(res4);
console.log(res5);
</script>
</head>
<body>
</body>
</html>