JavaScript中的百分比(%)是多少?

时间:2012-06-26 07:44:07

标签: javascript syntax v8

我在许多代码中看到了%。你能告诉我它的目的或它的作用吗?

P.S:Google搜索会忽略%,因此我无法在Google上找到它。

编辑:我知道数学13 % 10 = 3中的操作数,但我看到的是return %foo

1 个答案:

答案 0 :(得分:9)

根据您在注释中提供的链接,%字符似乎在某些V8 JavaScript engine源代码中使用,以指示在解析时将执行的C ++运行时的方法JavaScript源码。

例如,string.js中的行:

return %StringBuilderConcat(parts, len + 1, "");

解析器遇到时,将执行StringBuilderConcat方法。您可以在runtime.h中找到V8 JavaScript文件可用的运行时方法列表(注意,我没有使用C ++的经验,所以我知道这与引用的StringBuilderConcat方法无关在 string.js 中,但我认为这是相同的事情):

#define RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \
  /* Property access */ \
  F(GetProperty, 2, 1) \
  F(KeyedGetProperty, 2, 1) \
  /* ... */
  F(StringBuilderConcat, 3, 1) \
  /* ... */

正如已经说过的那样,return %foo会在JavaScript中抛出一个SyntaxError。