首頁 >後端開發 >php教程 >js中逗號運算子的解析

js中逗號運算子的解析

不言
不言原創
2018-07-14 10:40:501474瀏覽

這篇文章主要介紹了關於js中逗號操作符的解析,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

逗號操作符

概述:逗號運算子對它的每個運算元求值(從左到右),並傳回最後一個運算元的值。當你想要在期望一個表達式的位置包含多個表達式時,可以使用逗號運算子。這個運算子最常用的情況是:for 迴圈中提供多個參數。需要注意的是,var 語句中的逗號不是逗號操作符,因為它不是存在於一個表達式中。

案例:

function testFunc () {
  var a = 0;
  return (a += 1, a); // 等价于return ++x;
}

console.log((1, 2)); // console 2
console.log((a = b = 3, c = 4)); // console 4

逗號運算子的用處

先看一個案例:

var obj = {
    myFunc: function () {
        console.log(this === window);
        console.log(this === obj);
    }
}
obj.myFunc();   // false  true
(0,obj.myFunc)(); // true

輸出的結果為 false-true  ture。
在函數foo中,this指向的是a,因為foo是a的方法。所以this===window返回false就能理解了。
但是呼叫(0,obj.myFunc)(),表達式(0,a.foo)將評估它的每個運算元(從左到右),並傳回最後一個運算元的值。換句話說,(0,a.foo)等於:

function(){
console.log(this === window);//且这个函数不再附加到任何东西,它this是全局对象window,所以输出的是true。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

#

以上是js中逗號運算子的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn