2017-09-24 2 views
0

no-return-assign은 return 문에 아무런 의미도 부여하지 않습니다. 그러나 기본적으로 괄호 안에 할당을 할 때 허용됩니다."반품 지정"- 괄호 포함 여부와의 차이점

return (foo = 1 + 1)return foo = 1 + 1 사이에 기술적 인 차이가 있습니까? 나는 내가 괄호 안에 element.position.width = width를 넣어 오류 메시지가 나타나지 않도록하려면

return createMatrixRow(
    width, 
    element, 
    addWidth, 
    elements.concat(addWidth ? Object.assign({}, element, (element.position.width = width)) : element) 
) 

로 다음과 같은 시도 때문에

나는이 질문이 있습니다.

+0

그룹화 연산자는 평가 순서를 변경할 수 있지만 단일 표현식의 결과는 변경하지 않습니다. 나는. 'foo'와'(foo)'는 완전히 동일합니다. –

답변

5

차이가 없습니다. 두 경우 모두 괄호가있는 경우를 제외하고는 단일 표현식을 형성합니다. 표현식은 원래 할당 표현식을 받고 그 결과를 반환하는 그룹화 연산자입니다.

괄호를 사용하여 오류처럼 보일 수있는 할당을 수동으로 무시하는 것은 상당히 일반적인 특징입니다.

예를 들어, 일반적으로 린터를 성가 시게됩니다 :

while (x = re.exec(data)) { 
    // do work 
} 

조건으로 할당 매우 자주 == 의도 된 오타이라고되는 이유. "예, 나는이 할당 알고

while ((x = re.exec(data))) { 
    // do work 
} 

그렇지 않으면 불필요한 부모

을 말하는 방법 그래서 나는 나타 내기 위해 이러한 불필요한 괄호로 포장합니다 :

하지만이 자주 만족 그 ".

1

명령문

return foo = 1 + 1; 

return (foo = 1 + 1); 

는 지금까지 자바 스크립트의 의미에 관한 한 동일합니다.