簡體   English   中英

在JavaScript中,僅包含變量名的語句是否有作用?

[英]Does a statement with only a variable name do something in JavaScript?

在此示例中:

someVariable;

代碼有什么作用嗎? 從技術上講,從像V8這樣的JS引擎的角度來看,有一些相關的工作嗎?

我問是因為我想暫時禁止TypeScript發出“已聲明變量,但永遠不會讀取其值”的警告,我正在這樣做:

function xyz(arg) {
  arg;
  // ...
}

JavaScript中是否有更好的“無操作”構造?

它做的一件事是檢查是否定義了變量,如果沒有定義,將拋出錯誤。

如果您擔心副作用,如果您恰好在with語句中,它可以調用getter並運行代碼,但這不太可能。 如果有問題的變量名不是本地的,並且恰好是window的getter,它也可以運行代碼,例如

 Object.defineProperty(window, 'foo', { get() { console.log('getting'); }}); console.log('start'); foo; 

但這也幾乎是不可能的。

如果您確定所引用的變量是作用域中的普通變量,則它將不會執行任何操作-它只是一個未使用的表達式。

除了檢查變量的存在之外,它還對表達式進行評估。

 var foo = { get bar() { console.log('get bar'); return 42; } }; foo.bar; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM