我有一个
package.json
文件,其中包含行 "type": "module",
。此行在运行时会触发错误node a_script.js
。就好像 ECMAScript 的默认参数功能被禁用一样。
// a_script.js
const doThing = (foo = "A", bar = "B") => {
console.log(foo);
console.log(bar);
}
doThing(foo="AYE") // Out: AYE\nB
doThing(bar="BEE") // Out: A\nBEE
doThing(foo="AYE", bar="BEE") // Out: AYE\nBEE
doThing() // Out: A\nB
从
"type": "module",
中删除 package.json
可以让脚本正常运行。有问题的错误是,
dothing(foo="AYE")
^
ReferenceError: foo is not defined
这是什么原因?
正如@Jaromanda X 在评论中所说,
使用模块时,代码是“严格的” - 所以,是的, foo 未声明 变量