javascript – 为什么:3.toString()导致Node.JS REPL进入新范围?
作者:互联网
当我输入一个文字整数后跟.toString()进入Node时,它通过响应来输入一个新的范围….
例子
> 3.toString()
...
> 'foo:' + 3.toString()
...
> 'foo:' + 3.toString() + ':bar'
...
其他类型似乎工作正常
> true.toString()
'true'
即便如此!
> 10.50.toString()
'10.5'
解决方法
在括号中包装文字整数有效:
> (3).toString()
'3'
有这个原因还是你认为这是一个错误?
解决方法:
这是因为当JavaScript看到一个整数后的句点时,它会假定它后面的值是小数.因此,简单地使用5.toString()将使JavaScript找到toString的预期数字.如果将它放在括号内,或者自己包含小数,它将起作用.事实上,这(虽然它作为一个人阅读起来有点不太清楚)也会起作用:
5..toString()
因为一个空的小数点将使JavaScript将整数5转换为浮点数5,这将阻止它假设在下一个句点之后会有数字.这将使JavaScript期望在下一个时期之后的方法.
你也可以使用的是JavaScript自动检测你正在使用的东西的类型.这意味着你也可以简单地使用它:
5+''
放置在mid-string时也可以使用:
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."
标签:javascript,node-js,read-eval-print-loop 来源: https://codeday.me/bug/20190612/1225583.html