JavaScript 数字与字符串的加减乘除运
老几次做题懵逼,遇到一大串运算句开始晕哪个打哪个,这次就一次性看透= =,免得再有下一次。
-
JavaScript 数字 number:
数值始终是 64 位浮点数,整数最大 15位,小数最大 17 位 -
JavaScript 字符串是引号中的零个或多个字符:
可使用单引号 | 双引号
注意: 在所有数字运算中, JavaScript 会将字符串转为数字,但是加法会进行级联
/* ➕ */
// 都是 number -> 最后获得 number
console.log(12 + 10); // 22
// 都是 string -> 发生级联,最后获得字符串
console.log("12" + "10"); // 1210,字符串级联
// number + string | string + number -> 最后获得都是字符串
console.log(12 + "12"); //1212
console.log("12" + 12); //1212
console.log("apple" + 12 + 10); // apple1210,放大看,实质上本质就是 apple(string) + (12 + 10)(number)
// js 是从左到右进行编译的
console.log(12 + 10 + "12"); //2212,先进行数字运算 12 + 10 =22,再进行字符串级联 2212
/* ➖ */
// 都是 number -> 最后获得数字
console.log(12 - 10); //2
// 都是 string -> 先转化为 number 再进行运算,最后获得数字
console.log("12" - "10"); //2
console.log(typeof ("12" - "10")); // number
// number - string | string - number -> number
console.log(12 - "12"); //0,"12" 转化为 number 再进行运算,最后获得数字0
console.log(typeof (12 - "12")); // number
console.log("12" - 12); // 0,先 "12" 转化为 number 再进行运算,最后获得数字0
console.log(typeof ("12" - 12)); // number
/* ✖ */
// 都是 string -> 先转化为 number 再进行运算,最后获得数字
console.log(12 * 10); // 120
console.log("12" * "10"); // 120
console.log(typeof ("12" * "10")); // number
console.log(12 * "12"); // 144
console.log(typeof (12 * "12")); // number
console.log("12" * 12); // 144
console.log(typeof ("12" * 12)); // number
/* / */
// 都是 string -> 先转化为 number 再进行运算,最后获得数字
console.log(12 / 10); // 1.2
console.log("12" /"10"); // 1.2
console.log(typeof ("12" / "10")); // number
console.log(12 / "12"); // 1
console.log(typeof (12 /"12")); //number
console.log("12" / 12); // 1
console.log(typeof ("12" / 12)); //number
/* % */
// 都是 string -> 先转化为 number 再进行运算,最后获得数字
console.log(12 % 10); // 2
console.log("12" %"10"); // 2
console.log(typeof ("12" % "10")); // number
console.log(12 % "12"); // 0
console.log(typeof (12 %"12")); //number
console.log("12" % 12); // 0
console.log(typeof ("12" % 12)); //number
// true 布尔值 在运算时候回转为 1,false 同理会转为 0
console.log(12 + true); // 13
console.log("12" + true); //12true,字符串级联
console.log(12 - true); // 11
console.log("12" - true); // 11
console.log(12 * true); //12
console.log("12" * true); // 12
console.log(12 / true); //12
console.log("12" / true); //12
console.log(12 % true); //0
console.log("12" % true); //0
最后总结
- 除开字符串 + 数字的运算,会产生级联,其他情况下会将 String 转为 number 再进行数字运算。
- js 运算是从左到右的,所以一步一步来,不要跳步进行运算。
感觉有帮助的话,可以给我点个赞嘛 φ(≧ω≦*)♪~