이 글은 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!