编程语言
首页 > 编程语言> > javascript – 为什么:3.toString()导致Node.JS REPL进入新范围?

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