javascript中的不同类型之间的四则远算

笔试时经常会考到不同类型的值加减法问题,每次都很头大,于是抽空总结一下,如有问题请私戳哦~~

  • 加法运算中其中一方为字符串,那么就会把另一方也转换为字符串
  • 加法运算没有字符串时,那么会将它转换为数字,不能转换时为NAN
  • 减法运算中,都会转换成数字,不能转换时为NAN

但是第二条,我不是很理解到底该怎么转,下边是列举的一些常见情况,不全面勿喷哦~ 

  • 数字与字符串相加结果是字符串

let n = 1 + "1";
console.log(n, typeof n); // 11 string
  • 数字字符串与数字相减  数字字符串会变成数字,结果就是数值了

let n = "1" - 1;
console.log(n, typeof n); // 0 'number'
  • 非数值字符串与数字相减 结果是NaN

let n = "true" - 1;
console.log(n, typeof n); // NaN 'number'
  • 与数字、布尔值相加减,true转化为1,false转化为0

let n = true - 1;
let m = true + true;
console.log(n, typeof n); // 0 'number'
console.log(m, typeof m); // 2 'number'
  • 与字符串相加,布尔值转化为字符串

let m = true + "1";
console.log(m, typeof m); // true1 string
  • 与数字字符串相减,布尔值转化为数字

let n = true - "0";
console.log(n, typeof n); // 1 'number'
  • 数字(字符串)与对象相加,转化成字符串

console.log({} + 1);  //[object Object]1
console.log({} - 1);  //NaN
  • 数字(字符串)与数组相加,转化成字符串

console.log([] + 1);  //1
console.log([] - 1);  //-1

 

 总结

减法的结果类型基本都变成了number,要么直接是某数值,要么就是NaN;加法只要有一方是字符串,结果就是字符串;布尔值相加减,结果是number。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值