IT

return과 return ()의 차이점은 무엇입니까?

lottoking 2020. 8. 21. 08:00
반응형

return과 return ()의 차이점은 무엇입니까?


function a() { return 1; }
function b() { return(1); }

Chrome 콘솔에서 위 코드를 테스트 한 결과 둘 다 1.

function c() { return "1"; }
function d() { return("1"); }

또한 위의 코드를 테스트하는 두 함수 모두 "1".

그래서 사용 return사용의 차이점은 return()무엇입니까?


사이와 동일

var i = 1 + 1;

var i = (1 + 1);

즉, 아무것도 아닙니다. 괄호는 모든 설치에서 평가 순서에 영향을 줄 수 있기 때문에 허용 순서를 따릅니다.

return은 함수가 아니라 입니다. 를 사용하지 괄호 않는 break같은 다른 간단한 제어 흐름 문과 구문 적으로 유사 continue합니다.


다른 점이 없다.

return함수 호출이 아니라 언어 명령문입니다. 괄호로 수행하는 모든 작업은 반환 값을 그룹화하여 평가할 수 있습니다. 예를 들어 다음과 같이 있고 있습니다.

return (x == 0);

이 경우 x == 0부울을 반환 true하거나 false의 값에 따라 문의 값을 반환합니다 x.


실제로 여기서 우선 순위 ()가 높음 먼저 평가합니다.

먼저 ("1")다음과 같은 방법으로 평가를받습니다.

("1")                     ==> "1"
("1","2")                 ==> "2"
("1","2","3")             ==> "3"
("1"+"2","2"+"2","3"+"2") ==> "32"
(2+3+6)                   ==>  11

따라서 위의 문장은 다음과 가변적입니다.

return "1";

예쁘게보기 :

비우스

따라서 기본적으로 기능에는 차이가 없지만 두 번째는 먼저 대괄호를 해결 약간의 느릴 수 있습니다.


전혀 차이가 없습니다. return 문의 JS (ECMAScript) 사양을 보겠습니다 . 다른 많은 것 중에서 다음과 같은 내용이 있습니다.

return [여기에 LineTerminator 없음] Expression;

에 식을 제공 할 수 있습니다 return. 식입니다 hello, Math.abs(x), yourCustomFunc(7), 두-th 경우 또는 에이 될 수 있습니다 1또는 (1). 1평가 후의 표현 정말 엽기적인 것과 (1)같고 똑같다 .(((((1))))))(+(!(+(!1))))


차이가 계획 괄호는 선택 사항입니다. MSDN 참조 :

return[(][expression][)];

자주 쓰는 인수는 함수에서 반환되는 값입니다. 생략하면 함수는 값을 반환하지 않습니다.

return 문을 사용하여 함수 실행을 중지하고 expression의 값을 반환합니다. expression이 생략되거나 함수 내에서 return 문이 실행되지 않는 현재 함수를 호출 한 여기서 정의되지 않은 값이됩니다.


return이다 성명은 return 문 시작하는 키워드 , 하지 함수를.

언급 된 언급했듯이 추가 괄호는 평가 순서에 영향을 주지만라는 함수를 "실행"하는 데 사용되지 않습니다 return. 이것이 바로이 라인이 문제없이 작동하는 이유입니다.

return (1);
var a = (1);

사실상 다음 줄과 동일합니다.

return 1;
var a = 1;

그 이유는 return()구문 오류가 정확한 이유입니다. 다음 줄에 오류가 발생합니다 (비교를 위해 반환 문) :

return();    // SyntaxError: syntax error
var a = ();  // SyntaxError: syntax error

인간에게는 큰 차이가 있으며 Javascript 엔진에는 차이가 없습니다.

return 1값 1을 산출하는 함수를 즉시 종료해야한다고 선언 하는 입니다.

return(1)자바 스크립트에서 괄호 밖에 공백을 삽입 할 의무가 없다는 바보 관습에 의해 함수 호출 로 위장한 동일한 문장 입니다. 프로덕션 시스템에서 이와 같은 코드를 사용하는 경우, 관리자는 return()코드베이스 어딘가에 실제로 기능 이 있는지 또는 return키워드가 무엇인지 모르는지 결정하는 데 시간을 소비 한 후 스테이크와 횃불을 가지고 사무실에 올 것 입니다.

다른 많은 사람들이 이미 올바르게 말했듯이, 괄호는 Number1에 대한 리터럴보다 우선 순위가 높은 "그룹"을 제외하고는 아무것도하지 않습니다 .


return 문 에서 식을 둘러싼 괄호 는 이미 내장되어 있습니다.

JavaScript에서 다른 많은 언어 (예 : C, C ++, Java, Python)와 마찬가지로 return 문에는 키워드 return와 (선택 사항) 표현식이라는 두 부분이 있습니다. 따라서 어떤 경우 든 키워드 다음에 오는 모든 return것은 먼저 표현식으로 평가되고 그 후에는 컨트롤을 호출자에게 다시 전달하여 return 문이 "실행"됩니다.

괄호를 사용하거나 사용하지 않는 것은 스타일문제 이지만 대부분의 스타일 가이드는 질문에 인용 된 것과 같은 사소한 경우를 금지합니다. 왜냐하면 반환 값이 함수처럼 잘못 보이기 때문입니다.


괄호를 추가하여, 우리는 자바 스크립트 참조를 위해 반환 이후에 기록 된 여러 문 앞에 세미콜론을 삽입하지 않도록 만들었습니다 : - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Lexical_grammar #Automatic_semicolon_insertion

 **ex: 
 return
 a + b; 

 is transformed to

 return;
 a + b;

 by ASI.

 The console will warn "unreachable code after return statement".
 To avoid this problem (to prevent ASI), you could use parentheses:

 return (
 a + b
 );**

코드 복사 : -https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return

참고 URL : https://stackoverflow.com/questions/22988640/what-is-the-difference-between-return-and-return

반응형