Javascript ES6 js关键字作为参数精确行为

Javascript ES6 js关键字作为参数精确行为,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,我有一个代码,它应该返回'undefined'或任何错误,但它给出了前面提到的输出 让i=(x,c)=>{ c(x); }; i(20,(未定义)=>{ 设j=未定义; 控制台日志(j); }); 函数y(未定义){ 设a=未定义; 控制台日志(a); } y(90)未定义的不是保留字 它是一个全局只读变量 没有什么能阻止您在更窄的范围内定义另一个同名变量。未定义的不是一个保留字,您可以在这里看到: 在您的场景中,undefined实际上包含回调值,第一种情况下为20,第二种情况下为90 例如

我有一个代码,它应该返回'undefined'或任何错误,但它给出了前面提到的输出

让i=(x,c)=>{
c(x);
};
i(20,(未定义)=>{
设j=未定义;
控制台日志(j);
});
函数y(未定义){
设a=未定义;
控制台日志(a);
}

y(90)
未定义的
不是保留字

它是一个全局只读变量


没有什么能阻止您在更窄的范围内定义另一个同名变量。

未定义的
不是一个保留字,您可以在这里看到:

在您的场景中,
undefined
实际上包含回调值,第一种情况下为20,第二种情况下为90

例如,如果要将值
undefined
分配给作用域
j
a
,可以使用
void 0
。 关于
void
如何工作的更多信息可以在这里找到(另外,
void
实际上是javascript中的保留字):

让i=(x,c)=>{
c(x);
};
i(20,(未定义)=>{
设j=0;
控制台日志(j);
});
函数y(未定义){
设a=0;
控制台日志(a);
}

y(90)