传奇刘星
管理员
管理员
  • 最后登录2024-04-24
  • 发帖数588
  • 社区居民
  • 忠实会员
阅读:13129回复:3

JavaScript使用加号避免拼接字符串的技巧

楼主#
更多 发布于:2016-06-21 22:46

 var num1 = 2;
 var num2 = 3;
 var sum = num1 + num2;
 alert(sum);
 ——————————————————————————
 如上所示,运行后的结果必定是“23”,
 但是减、乘、除都不会出现问题,
 并且使用“isNaN”方法进行检测出num1和num2都是number类型的,
 我们知道,为了避免字符串拼接我们可以使用“parse”方法进行转换,
 但是,调用方法进行转换会对效率降低,
 并且我们的num1和num2都是number类型的,
 所以貌似似乎有点说不过去,
 在这里,我教大家一个简单的方法,
 并且不用调用任何方法解决,如下所示:
 ——————————————————————————
 var num1 = 2;
 var num2 = 3;
 var sum = (num1-0) + (num2-0);
 alert(sum);
 ——————————————————————————
 我们可以看到,只需要对num进行减法运算一下就ok了

最新喜欢:

huangtaoyahuangt... sunshinesunshi...
https://blog.feiyuit.cn
传奇刘星
管理员
管理员
  • 最后登录2024-04-24
  • 发帖数588
  • 社区居民
  • 忠实会员
沙发#
发布于:2019-11-20 19:58
doubleyong:var num1 = 2;
 var num2 = 3;
 var sum = num1 + num2;
 alert(sum);
 ——————————————————————————
 如上所示,运行后的结果必定是“23”, ...
回到原帖

哈哈,承让承让,不是字符串的数字哦,可能当时写文章的时候没有写清楚了呢,满足文章的条件代码应该是如下:


var num1 = 2;
var num2 = 3;
var sum = "结果为:" + num1 + num2 ;
alert(sum);

这个计算结果呢,确实是23。
为什么会有这样的问题呢?
其实是因为js的运算先后顺序影响的,同时运算多个加法的时候,从左往右依次计算,首先计算的是:


"结果为:" + num1

到这里呢,原本num类型的num1已经受到了前面的字符串影响,其结果变为了:


"结果为:2"
可以看到此时结果已经是字符串类型了,因此再与后面的num2运算,结果也就注定是字符串类型




所以呢,大家在拼接字符串的时候,需要进行四则运算的部分优先用括号括起来哦
https://blog.feiyuit.cn
doubleyong
管理员
管理员
  • 最后登录2025-04-01
  • 发帖数1197
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
板凳#
发布于:2019-08-16 10:03
var num1 = 2;
var num2 = 3;
var sum = num1 + num2;
alert(sum);
——————————————————————————
如上所示,运行后的结果必定是“23”,



楼主:这个输出是5,不是23
是不是应该写成
var num1 = "2"; 
var num2 = "3";

知识需要管理,知识需要分享
sunshine
管理员
管理员
  • 最后登录2023-10-30
  • 发帖数170
  • 社区居民
地板#
发布于:2016-06-22 09:47
+ 号 , 有两种含义: 第一种: 加法运算, 第二种:就是连接字符串。 而只有当 + 号两边都为数字时, 系统才会认为是加法运算。 而 - , * , / 不同,它只有一种含义,就是运算。 所以,当运算符的两边不是数字时,它会把字符串,转成数字类型再进行想应的运算。

ps : 楼主的这个用法,高明哦, 赞一个
游客


返回顶部

公众号

公众号