2013-09-30 38 views
0

打印两个整数在我尝试打印是整数两个JavaScript变量,相邻的,其他的我就遇到了这个小路上凹凸:更聪明的方式在JavaScript

代码:

var left = 100 
var right = 100 

alert(left + right) 

结果:

200 

我想回到100100

赛道中e这对我来说不是一个难题,我想出了这个:

alert(left + "" + right) 

而且效果很好!

由于某种原因,它感觉不对。看起来有点对我来说 ...

有没有更聪明的方法来做到这一点?

+2

我会用' “” +左+ right',这也会起作用(和'(“”+ left)+ right'一样)。问题是'num + num - > num'(这对于做数学是好事),但是'+'是“重载的”,使得任何东西+ str - > str或者str +任何东西 - > str'(用于字符串连接)。 – user2246674

+1

关于“更智能的方法”来解决问题的问题与Stack Overflow相关。您可以在[codereview.se]上获得帮助。 –

回答

0

或者类似的东西

alert(String(left)+String(right)) 
+0

我有点喜欢这个 – henryaaron

1

您将不得不将这个值转换为字符串,并且添加引号就可以做到这一点。

否则,他们最终将成为整数,然后再评估并添加。

您还可以使用:

alert(left.toString() + right.toString()); 

或者你有什么变体:

alert('' + left + right); 
3

你应该将它们转换为string型。

alert(left.toString() + right.toString()) 

的原因是,在JavaScript中那些会numbers(整数)在创建。你必须将它们转换为string类型。由于这些是对象,您可以使用它们的toString()方法进行转换。

Js Fiddle Example

+1

这已经被回答了 –

+3

@ Mike-O那应该不重要,答案之间的时差太小了......所以我的+1。为什么有人会投这个答案。 – PSL

+0

@ Mike-O - 是的,就像3秒钟前一样。 –

2

3个选项更,除了一个你已经有了:

//make it a string from the beginning  
var left = '100' 
var right = '100' 
alert(left + right) 

//make it a string later 
var left = 100 
var right = 100 
alert(left.toString() + right) 

//or 
alert([left, right].join('')) 
+1

+1,'[left,right] .join('')'为另一个。 – plalx

+0

@plalx,那真是太棒了!加:) :) – Sergio

+0

如果你已经使用'left.toString()',你实际上不需要使用'right.toString()',因为它会自动转换。 – plalx

0
left.toString() + right.toString()