javascript - 在 JavaScript 中,只有变量名的语句会执行某些操作吗?

标签 javascript typescript

在此示例中:

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/

相关文章:

javascript - 登录前需要注销

javascript - 在每个 src 或 href 自动值 "$1"$0

Angular 2,结合进口价差和桶

javascript - 如何使用 d3.js 创建趋势/指数回归线?

javascript - 通过单选按钮隐藏/显示 div

typescript - 将对象文字分配给 typescript 通用类型

ajax - Angular 6 : http get response

javascript - 必须为 RC4 中的每个服务使用 provide()

typescript - 扩展 angular-cli 的构建管道

javascript - 在 Controller 之间传递变量的最佳方式