#JavaScript 逗號表達式筆記
##逗號操作符是多元操作符,可以在一條語句中執行多個操作
1.逗號操作符可用來定義多個局部變量(即是說逗號表達式能夠使多個標識符共享一個var來實現簡寫):
從以下代碼中看到在全局輸出a,和b都是報錯變量未定義,即a,b局部變量,
2.逗號表達式的值是表達式最后一項的值,比如c在函數中輸出為2,
3.在需要將逗號表達式的值付給變量時候,最好用括號將逗號表達式加括號,比如f所在表達式,我們本來的意愿是要將
g和h組成的逗號表達式的值付給f,而f輸出的值為1,說明var f =? g = 1, h = 2;整個表達式被當成逗號表達式,先執行
逗號左邊,再執行逗號右邊,逗號表達式的值并沒有被付給f,而i加括號后則能夠符合我們的意愿;
```
(function (){
var a = 1, b = 2;
var c = (d = 1 ,e = 2);
var f =? g = 1, h = 2;
var i = (j = 1, k = 2);
console.log(c); // 2
console.log(f); // 1
console.log(i); // 2
})();
// console.log(a);
// console.log(b);
console.log(g); // 1
// console.log(h); // Uncaught ReferenceError: h is not defined
console.log(j); // 1
console.log(k); // 2
```
4.有時候逗號不一定是逗號操作符:
```
// 1.函數定義的形參之間的逗號不是逗號操作符,test函數兩次調用是有區別的第一次調用是將a,b,c看成逗號表達式,第二次調用
是使用逗號將三個值分開而已,所以在使用逗號表達式的時候,一定要注意將括號添上;
function test(x,y,z) {
console.log(arguments[0])
}
test((a,b,c)); // c
test(b,b,b); // b
```