我有一个代码,希望返回‘未定义’或任何错误,但它提供输出如前所述。
let i = (x, c) => {
c(x);
};
i(20, (undefined) => {
let j = undefined;
console.log(j);
});
function y(undefined) {
let a = undefined;
console.log(a);
}
y(90);
如果在函数参数中使用,保留词是如何工作和改变行为的?
发布于 2019-06-28 07:46:15
undefined不是一个保留字。
它是一个全局的、只读的变量。
没有什么可以阻止您在更窄的范围内定义同名的另一个变量。
发布于 2019-06-28 07:48:38
undefined是,而不是,您可以在这里看到:grammar#Keywords。
在您的场景中,undefined实际上保存了回调值,第一种情况是20,第二种情况是90。
例如,如果要将值undefined分配给作用域j或a,则可以使用void 0。关于void如何工作的更多信息可以在这里找到(而且,void实际上是javascript中的一个保留词):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void
let i = (x, c) => {
c(x);
};
i(20, (undefined) => {
let j = void 0;
console.log(j);
});
function y(undefined) {
let a = void 0;
console.log(a);
}
y(90);
https://stackoverflow.com/questions/56802846
复制相似问题