gpt4 book ai didi

javascript - `toPrecision` 和文字

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:40:39 25 4
gpt4 key购买 nike

所以我刚发现这个:

let number = -1234;
console.log(number.toPrecision(3)); // -1.23e+3
console.log(-1234..toPrecision(3)); // -1230

谁能解释一下到底发生了什么?我唯一能想到的是,在第二种情况下,优化器会预先计算表达式,并且优化器对 toPrecision 的实现与编译器的实现不同。

测试于:

  • Safari/Mac,版本 10.1 (12603.1.30.0.34)
  • Chrome/Mac,版本 59.0.3071.104(官方构建)(64 位)
  • Firefox/Mac,54.0.1(64 位)

编辑:回复:由小数点触发,很好的观察 - 但是,如果我们将小数点添加到 number 中,它不会突然减幂:

let number = -1234.5;
console.log(number.toPrecision(3)); // -1.23e+3
console.log(-1234.5.toPrecision(3)); // -1230

最佳答案

这是一个与运算符优先级相关的问题。

添加括号后,您的表达式将如下所示:

(-1234).toPrecision(3)  // "-1.23e+3"
-(1234..toPrecision(3)) // -1230

1234..toPrecision(3)先计算出来,就是"1.23e+3"
那么表达式就变成了-"1.23e+3",也就是-1230

关于javascript - `toPrecision` 和文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45070271/

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