1

在我尝试打印两个相邻的整数 JavaScript 变量时,我遇到了这个小障碍:

代码:

var left = 100
var right = 100

alert(left + right)

结果:

200

我想回来100100

当然这对我来说不是一个很难解决的问题,我想出了这个:

alert(left + "" + right)

效果很好!

不知为何,感觉不太对劲。对我来说看起来有点不精致...

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

4

5 回答 5

5

您应该将它们转换为string类型。

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

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

Js 小提琴示例

于 2013-09-30T22:06:59.523 回答
3

除了您已经拥有的之外,还有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(''))
于 2013-09-30T22:07:26.563 回答
2

您必须以一种或另一种方式将值转换为字符串,然后添加引号就可以了。

否则,它们最终会在被评估并因此被添加之前成为整数。

您还可以使用:

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

或您所拥有的变体:

alert('' + left + right);
于 2013-09-30T22:06:51.303 回答
1
left.toString() + right.toString()
于 2013-09-30T22:09:12.080 回答
1

或者类似的东西

alert(String(left)+String(right))
于 2013-09-30T22:14:31.547 回答