[英]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.