ホームページ  >  記事  >  バックエンド開発  >  jsのカンマ演算子の解析

jsのカンマ演算子の解析

不言
不言オリジナル
2018-07-14 10:40:501435ブラウズ

この記事では主にjsのカンマ演算子の解析を紹介しますが、これは参考値があるのでシェアしますので、困っている方は参考にしてください

カンマ演算子

#概要: カンマ演算子は、各オペランドを (左から右に) 評価し、最後のオペランドの値を返します。カンマ演算子は、1 つの式が必要な場合に複数の式を含める場合に使用できます。この演算子の最も一般的な使用法の 1 つは、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 です。

関数 foo では、foo は a のメソッドであるため、これは a を指します。したがって、this===window が false を返すことがわかります。
ただし、(0,obj.myFunc)() を呼び出すと、式 (0,a.foo) は各オペランドを (左から右に) 評価し、最後のオペランドの値を返します。言い換えると、(0, a.foo) は次と同等です:

function(){
console.log(this === window);//且这个函数不再附加到任何东西,它this是全局对象window,所以输出的是true。
上記がこの記事の全内容です。皆様の学習に役立つことを願っています。その他の関連コンテンツについては、ご注意ください。 PHP中国語ウェブサイトへ!

関連する推奨事項:

以上がjsのカンマ演算子の解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。