在此示例中:
someVariable;
这段代码有什么作用吗?从技术上讲,从像 V8 这样的 JS 引擎的 Angular 来看,是否有一些与之相关的工作?
我问这个问题是因为我希望暂时抑制 TypeScript 发出的“变量已声明但其值从未被读取”警告,我正在这样做:
function xyz(arg) {
arg;
// ...
}
JavaScript 中是否有更好的“无操作”结构?
最佳答案
它所做的一件事是检查变量是否已定义,如果没有,则会抛出错误。
如果您担心副作用,如果您碰巧位于 with
语句中,它可以调用 getter 并运行代码,但这不太可能。如果所讨论的变量名称不是本地变量并且恰好是 window
上的 getter,它也可以运行代码,例如
Object.defineProperty(window, 'foo', { get() {
console.log('getting');
}});
console.log('start');
foo;
但这也不太可能。
如果您确定所引用的变量是作用域内的普通变量,那么它不会执行任何操作 - 它只是一个未使用的表达式。
关于javascript - 在 JavaScript 中,只有变量名的语句会执行某些操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57906396/