如何在javascript中连接两个数字?

我想要像5 + 6东西返回"56"而不是11

使用"" + 5 + 6将其强制为string。 这也适用于数值variables:

 var a = 5; var b = 6; console.log("" + a + b); 
 var value = "" + 5 + 6; alert(value); 

只是使用:

 5 + "" + 6 

简单的回答:

 5 + '' + 6; 
 var output = 5 + '' + 6; 

使用

 var value = "" + 5 + 6; 

强制它的string。

您现在可以使用ES6模板文字。

 const value = `${5}${6}`; 

或者,如果你有变数:

 const value = `${someInt}${someOtherInt}`; 

就我个人而言,我发现新的语法更清晰,尽pipe稍微更冗长。

另一个可能是这样的:

 var concat = String(5) + String(6); 

您也可以使用toString函数将其转换为string和连接。

 var a = 5; var b = 6; var value = a.toString() + b.toString(); 

这是做这件事的简单方法

 var value=5+""+6; 

我知道这是一个老post,已经被回答了很多次。 我也想知道JavaScript是否有这样做的function。 我正在做一些math编程,需要连接两个数字。

所以,如果我需要结合两个数字17和29,我可以把它们变成string并连接起来,然后把新的string变成一个数字。 这似乎工作得很好,我可以继续我的代码,但让我们看看这里,并试图找出真正发生在这里。

我们对这两个数字做了什么,我们如何拿17和29,把它变成一千零七二十九? 那么我们可以乘以17,乘以100,然后加29,172和293怎么能得到一万七千二千二百九十三呢? 乘以172乘以1000,再加293.但是,只有2和9呢? 乘以2乘10再加9得到29。

所以希望现在一个模式应该是明显的你。 我们可以devise一个math公式来为我们做这个计算,而不仅仅是使用string。 要连接任意两个数字a和b,我们需要把a和10的乘积的长度乘以b的长度,然后加上b。

那么我们如何得到数字b的长度呢? 那么,我们可以把b变成一个string,并获得它的长度属性。

  a * Math.pow(10, new String(b).length) + b; 

但是,如果没有string,还有更好的方法吗? 就在这里。

在这里输入图像说明

对于任何两个数字,a和b,以及任何基数B.我们将乘以一个基数B到长度为b的幂(使用b的对数基数,然后铺设它以得到最接近的整数,然后加1)然后添加b。

所以现在我们的代码如下所示:

  a * Math.pow(10, Math.floor(Math.log10(b)) + 1) + b; 

但是,等等,如果我想在基地2或基地8这样做呢? 我怎样才能做到这一点? 我们不能使用我们刚刚创build的公式,而是使用基数为10的任何其他基数。JavaScript Math对象已经具有基本10和2(仅Math.log)的内置函数,但是如何获取任何日志函数其他基地? 我们把b的日志除以基本的日志。 Math.log(b) / Math.log(base).

所以,现在我们有了完整的基于math的代码来连接两个数字:

  function concatenate(a, b, base) { return a * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b; } var a = 17, var b = 29; var concatenatedNumber = concatenate(a, b, 10); // concatenatedNumber = 1729 

如果你知道你只是要做10math的基础,你可以添加一个检查基地是未定义的,然后设置base = 10:

  function concatenate(a, b, base) { if(typeof base == 'undefined') { base = 10; } return a * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b; } var a = 17, b = 29; var newNumber = concatenate(a, b); // notice I did not use the base argument // newNumber = 1729 

为了让我更容易,我使用原型将函数添加到Number对象:

  Number.prototype.concatenate = function(b, base) { if(typeof base == 'undefined') { base = 10; } return this * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b; }; var a = 17; var newNumber = a.concatenate(29); // newNumber = 1729 
 enter code here var a = 9821099923; var b = 91; alert ("" + b + a); // after concating , result is 919821099923 but its is now converted into string console.log(Number.isInteger("" + b + a)) // false you have to do something like below:- var c= parseInt("" + b + a) console.log(c); // 919821099923 console.log(Number.isInteger(c)) // true