gpt4 book ai didi

javascript - 为什么 : 3. toString() 会导致 Node.JS REPL 进入一个新的范围?

转载 作者:搜寻专家 更新时间:2023-10-31 23:02:16 27 4
gpt4 key购买 nike

当我在 Node 中输入一个字面整数后接 .toString() 时,它会通过响应 ... 进入一个新的范围。

例子

> 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 转换为 float 5,这将阻止它假设下一个周期后会有数字。这将使 JavaScript 在下一个周期之后期待一个方法。

不过,您还可以使用 JavaScript 自动检测您正在使用的事物的类型这一事实。这意味着您也可以简单地使用它:

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."

关于javascript - 为什么 : 3. toString() 会导致 Node.JS REPL 进入一个新的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23483986/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com