4

我正在开发一个需要处理 javacsript 框架的项目。我们有一个解析器可以读取它们,但是带有 .. 的行出现错误,例如

1..toPrecision()    

或者

24..map(function(t){return 7..map(function(a){return e[a][t]})

它似乎不理解“..”,我也不明白。为什么这是有效的 javascript?单个数字上的映射如何工作?最终有人会修复解析器,但我正在寻找一个临时修复,以了解如何编辑缩小的 .js 文件以使其工作。有没有另一种方法来编写类似 24..map() 的东西?

4

2 回答 2

10

这是一个有趣的情况。数字可以在小数点后有一个值,对吧?

console.log(1.2345); // for example

好吧,也可以写一个带小数点的数字,后面没有任何数字。

console.log(5.);

所以第一个点是小数点。第二个是属性访问器。

console.log(5.                  .toString());
//           ^ decimal point    ^ property accessor

该规范将十进制文字定义为:

DecimalIntegerLiteralDecimalDigits选择ExponentPart选择

其中 opt 表示可选。

于 2017-04-03T14:35:58.127 回答
4

第一个.是小数分隔符。1.是一个数字。

第二个.是对象属性访问器。someNumber.toPrecision是一个函数。

另一种写法是用更有效的数字写数字:

1.0.toPrecision()
于 2017-04-03T14:34:11.550 回答