为什么:3.toString()会导致Node.JS REPLinput新的作用域?
当我input一个文字整数后跟着.toString()
进入节点时,它通过用...
做出响应来进入一个新的范围。
例子
> 3.toString() ...
> 'foo:' + 3.toString() ...
> 'foo:' + 3.toString() + ':bar' ...
其他types似乎工作正常
> true.toString() 'true'
即使这个作品!
> 10.50.toString() '10.5'
解决方法
括号中的文字整数工作:
> (3).toString() '3'
有没有这个原因,或者你认为这是一个错误?
这是因为当JavaScript在一个整数之后看到一个句点时,它将把它作为小数后的值。 正因为如此,只要使用5.toString()
将使JavaScriptfind它所期望的数字的toString
。 如果你把它放在括号内,或者包含小数点,它就会起作用。 事实上,这个(虽然读起来还不太清楚),也会起作用:
5..toString()
因为一个空的小数点会使JavaScript把整数5
变成一个浮点数5
,这将阻止它假设在下一个时段之后会有数字。 这将使JavaScript在下一个时期后期待一种方法。
你也可以使用的是,JavaScript自动检测你正在使用的东西的types。 这意味着你也可以简单地使用这个:
5+''
这也将工作时,放在中间串:
console.log('We will need '+ 5+5 + 'pizzas.'); //"We will need 55 pizzas." console.log('We will need '+ (5+5) +' pizzas.'); //"We will need 10 pizzas."