>  기사  >  백엔드 개발  >  js의 쉼표 연산자 분석

js의 쉼표 연산자 분석

不言
不言원래의
2018-07-14 10:40:501430검색

이 글은 주로 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입니다.
foo 함수에서 이것은 a를 가리킵니다. 왜냐하면 foo는 a의 메서드이기 때문입니다. 따라서 this===window가 false를 반환한다는 것을 이해할 수 있습니다.
그러나 (0,obj.myFunc)()를 호출하면 표현식 (0,a.foo)는 각 피연산자를 (왼쪽에서 오른쪽으로) 평가하고 마지막 피연산자의 값을 반환합니다. 즉, (0, a.foo)는

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

와 동일합니다. 위 내용은 모두의 학습에 도움이 되기를 바랍니다. 웹사이트!

관련 권장사항:

위 내용은 js의 쉼표 연산자 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.