gpt4 book ai didi

node.js - 得到意想不到的token,求解释

转载 作者:搜寻专家 更新时间:2023-10-31 23:50:06 24 4
gpt4 key购买 nike

可能会在不同的 channel 上提问。我有这个:

const reduceList = (list) => {

return list.filter(Boolean).reduce((a, b, c) => {
console.log({this});
});


};

console.log(reduceList([1, 2, 3]));

我得到:

console.log({this});
^

SyntaxError: Unexpected token } at new Script (vm.js:74:7) at createScript (vm.js:246:10) at Object.runInThisContext (vm.js:298: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) at tryModuleLoad (internal/modules/cjs/loader.js:538:12) at Function.Module._load (internal/modules/cjs/loader.js:530:3) at Function.Module.runMain (internal/modules/cjs/loader.js:742:12) at startup (internal/bootstrap/node.js:266:19)

有人知道这是为什么吗?我使用的是 Node.js 版本 11。

最佳答案

速记对象初始化器语法需要一个标识符。虽然 this(和其他保留字)在技术上是一个 IdentifierName,但它不能用作 Identifier,如 ECMAScript 规范中所述。

A reserved word is an IdentifierName that cannot be used as an Identifier.

https://www.ecma-international.org/ecma-262/6.0/#sec-reserved-words

所以这不仅限于this关键字,其他保留字也会产生类似的语法错误:

{true} // syntax error
{true: true} // valid object literal

本质上,您需要使用一个命名标识符(一个变量)才能让事情在这里正常工作。可以将保留字用作属性名称,但不能用作标识符,因为它们的计算方式不同。

关于node.js - 得到意想不到的token,求解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55603437/

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