在JavaScript中打印两个整数的更智能的方法

在JavaScript中打印两个整数的更智能的方法,javascript,integer,alert,Javascript,Integer,Alert,在我试图打印两个整数JavaScript变量的过程中,我遇到了一个小的路障: 代码: 结果: 200 我想回去100100 当然这对我来说不是一个很难解决的问题,我想到了这个: alert(left + "" + right) 这很有效 出于某种原因,它感觉不对劲。在我看来有点粗制滥造 有更聪明的方法吗?您必须以某种方式将值转换为字符串,添加引号即可 否则它们将在evalutead之前成为整数,并因此相加 您还可以使用: alert(left.toString() + right.toStr

在我试图打印两个整数JavaScript变量的过程中,我遇到了一个小的路障:

代码:

结果:

200
我想回去
100100

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

alert(left + "" + right)
这很有效

出于某种原因,它感觉不对劲。在我看来有点粗制滥造


有更聪明的方法吗?

您必须以某种方式将值转换为字符串,添加引号即可

否则它们将在evalutead之前成为整数,并因此相加

您还可以使用:

alert(left.toString() + right.toString());
或者是你所拥有的一种变体:

alert('' + left + right);

您必须以某种方式将值转换为字符串,添加引号即可

否则它们将在evalutead之前成为整数,并因此相加

您还可以使用:

alert(left.toString() + right.toString());
或者是你所拥有的一种变体:

alert('' + left + right);

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

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


您应该将它们转换为
字符串
类型

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


除现有选项外,还有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(''))

除您已有的选项外,还有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(''))
或者类似的

alert(String(left)+String(right))
或者类似的

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


我会使用
“”+left+right
,这也会起作用(与
(“”+left)+right
)相同)。问题是
num+num->num
(这有利于做数学!),但是
+
是“重载”的,以至于
anything+str->str
str+anything->str
(用于字符串串联)。关于解决问题的“更聪明的方法”的问题对于堆栈溢出来说是不合适的。您可能可以获得有关的帮助。我会使用
“”+left+right
,这也会起作用(与
(“”+left)+right
相同)。问题是
num+num->num
(这有利于做数学!),但是
+
是“重载”的,以至于
anything+str->str
str+anything->str
(用于字符串串联)。关于解决问题的“更聪明的方法”的问题对于堆栈溢出来说是不合适的。你也许能得到帮助,已经有了answered@Mike-O这不要紧,答案之间的时差太小了。。。。所以我的+1。为什么会有人投票否决这个答案。@Mike-O-是的,就像3秒钟前一样。@Mike-O harsh,他在你之后不到一秒钟就回答了。好吧,对不起,伙计们!答案没有立即在我的浏览器中弹出,所以。。。你说得对,有点苛刻,但我不能取消投票。请编辑,这样我就可以投票了answered@Mike-O这不要紧,答案之间的时差太小了。。。。所以我的+1。为什么会有人投票否决这个答案。@Mike-O-是的,就像3秒钟前一样。@Mike-O harsh,他在你之后不到一秒钟就回答了。好吧,对不起,伙计们!答案没有立即在我的浏览器中弹出,所以。。。你说得对,有点苛刻,但我不能取消投票。请编辑,以便我可以向上投票它+1,
[左,右]。加入(“”)
作为另一个。@plalx,这是一个不错的选择!添加:)并且如果您已经使用了
left.toString()
,实际上不需要使用
right.toString()
,因为会自动转换。您还可以使用一个小的助手函数<代码>函数concat(){return[].join.call(arguments),;}并像
concat(左、右)一样使用它对于可接受的备选方案,可能就是这样;)+1,
[左,右]。加入(“”)
作为另一个。@plalx,这是一个很好的选择!添加:)并且如果您已经使用了
left.toString()
,实际上不需要使用
right.toString()
,因为会自动转换。您还可以使用一个小的助手函数<代码>函数concat(){return[].join.call(arguments),;}
并像
concat(左、右)一样使用它对于可接受的备选方案,可能就是这样;)我有点喜欢这个我有点喜欢这个