JavaScript 数字与字符串的加减乘除运算

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

最后总结

  1. 除开字符串 + 数字的运算,会产生级联,其他情况下会将 String 转为 number 再进行数字运算。
  2. js 运算是从左到右的,所以一步一步来,不要跳步进行运算。

感觉有帮助的话,可以给我点个赞嘛 φ(≧ω≦*)♪~

  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值