簡體   English   中英

Javascript:逗號運算符,var和作用域-為什么它按它的方式工作?

[英]Javascript: Comma operator, var, and scope - why does it work the way it does?

逗號運算符計算每個逗號分隔的操作數(並返回最后一個的值)。

(i = 1 + 2), (j = 3 + 4);

在功能上等同於

i = 1 + 2;
j = 3 + 4;

而且,據我所知,諸如var之類的語句不被視為運算符,而是操作數的一部分。 (請參閱https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence

因此,如果每個操作數都被分別求值,那么為什么

function foobar () {
    var i = 3, j = 7, z;
}

在foobar的范圍內創建3個變量-i,j和z?

我知道這是實際發生的情況,但是我一直想知道為什么這是實際發生的情況。 看來我應該在foobar的范圍內,但j和z應該在全局范圍內結束。

var語句中使用的逗號實際上不是逗號運算符。

同樣,在函數調用中用於分隔參數的逗號也不是逗號運算符。

暫無
暫無

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

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