为什么可以在参数上调用toString()但不能直接调用

时间:2018-09-20 23:21:09

标签: node.js

所以我有这个:

5.toString()

我收到此错误:

console.log(5.toString());
            ^^

SyntaxError: Invalid or unexpected token
    at new Script (vm.js:79:7)
    at createScript (vm.js:251:10)
    at Object.runInThisContext (vm.js:303:10)
    at Module._compile (internal/modules/cjs/loader.js:657:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)

但是,如果我使用中介函数传递5,则似乎没有问题:

const foo = function(v){
  console.log(v.toString());
};


foo(5);   // no problem now

有人知道为什么它可以正常运行吗?我认为这会导致例外。也许这只是一个“编译时”异常,而不是运行时异常。

1 个答案:

答案 0 :(得分:1)

将其放在括号中,如下所示:

(5).toString()

您不能以其他方式使用它,因为词法分析器认为您正在输入十进制数字