Javascript 为什么像“toString”这样的方法要求数字后面有两个点?

Javascript 为什么像“toString”这样的方法要求数字后面有两个点?,javascript,Javascript,42..toString()与之间的逻辑是什么。 双点工作并返回字符串“42”,而带有单点的42.toString()失败 类似地,42…带有三个点的toString()也会失败 有人能解释这种行为吗 console.log(42..toString())当您输入42.toString()时,它将被解析为带有十进制值“toString()”的42,这当然是非法的42..toString()只是42.0.toString()的一个简短版本,这很好。为了让第一个开始工作,你可以简单地在它周围放置一

42..toString()
之间的逻辑是什么。

双点工作并返回字符串
“42”
,而带有单点的
42.toString()
失败

类似地,
42…带有三个点的toString()
也会失败

有人能解释这种行为吗


console.log(42..toString())当您输入
42.toString()
时,它将被解析为带有十进制值“toString()”的42,这当然是非法的
42..toString()
只是
42.0.toString()
的一个简短版本,这很好。为了让第一个开始工作,你可以简单地在它周围放置一个偏执的符号
(42).toString()

它就像42.0.toString(),所以它显示了小数点,你可以使用它(42).toString()42.toString()也可以工作,在42和点之间有空格。这都是因为在javascript中几乎所有的东西都是对象,所以在dot opt中出现混乱;它试图解析为带小数点的数字,但失败。

当我们写42..toString()时;取42.0.toString()

我们可以通过以下方法获得正确的输出:

(42)toString()

(42.)toString()


第一个点被认为是小数点。这可以解释为42.0,不带尾随的0,然后将整数转换为字符串。然后
42。toString()
必须起作用。。考虑整数..第一个点是小数点,第二个点是属性访问器。这避免了解析成员:42.member和尾数:42.123之间的歧义。虽然问题很不同,但它很好地解释了如何使用它以及为什么使用它。