8e3评估的数字是多少?

Ryr*_*yre 20 javascript jquery

我今天遇到了这个代码:

b = setTimeout(function () {
    // do some javascript stuff here
}, 8e3)
Run Code Online (Sandbox Code Playgroud)

超时设置为8e3.这段时间等于几毫秒,为什么有人会选择这种奇怪的符号?代码似乎功能齐全.

Mat*_*nen 36

8e3是八的幂的八倍,即8000.这被称为科学(或指数)符号.试想一下,"e"代表"*10 ^".

在这种情况下,使用该表示法并没有多大意义,但是一旦开始获得更大的数字,指数表示法就会变得更具可读性.要计算出"1000000000"是多少,你必须计算零,但1e9是显而易见的.

  • @brenjt:如果你不能在JavaScript中使用它会很奇怪;)它(几乎)无处不在(在每种编程语言中),我相信;) (10认同)
  • @zizozu:我不确定我是否同意.在大多数类C语言中,`8e3`是一个浮点常量,不能隐式转换为整数.JavaScript是不同的,因为它不区分浮点数和整数.(还有一些其他类似的语言,但我仍然不能说"无处不在"这种情况.) (3认同)
  • @ruakh这是不是意味着你可以使用8e3,你几乎到处都使用浮点数? (2认同)

ibl*_*lue 17

这称为浮点符号科学符号.它是8×10 3,即8000毫秒.e代表第10个指数.让我举几个例子:

1e3    = 1000        // 1×10³
1e0    = 1           // 1×10?
1e-1   = 0.1         // 1×10?¹ -> Works also for the negatives
1.23e9 = 1230000000  // And really makes sense to shorten big numbers
Run Code Online (Sandbox Code Playgroud)

还有一篇关于该主题的维基百科文章:科学记谱法


Tad*_*eck 9

8e3确实8000如此,所以时间恰好是8秒.

这可以选择(例如,通过一些代码缩小器),因为它只需要3个字符而不是4个来表示8000.这意味着你在这个单一的地方获得25%的空间:)

这不是"奇怪的"符号,它只是表达数字的另一种方式:浮点符号


Ted*_* Xu 9

8*10 3 = 8000 ms,即8秒