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
키워드가 무엇인지 모르는지 결정하는 데 시간을 소비 한 후 스테이크와 횃불을 가지고 사무실에 올 것 입니다.
다른 많은 사람들이 이미 올바르게 말했듯이, 괄호는 Number
1에 대한 리터럴보다 우선 순위가 높은 "그룹"을 제외하고는 아무것도하지 않습니다 .
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
'IT' 카테고리의 다른 글
"오류 : / 개발자에 개발자가 없습니다"를 어떻게 진단 할 수 있습니까? (0) | 2020.08.21 |
---|---|
ASP.NET Web API에서 ModelState 유효성 검사 처리 (0) | 2020.08.21 |
부트 문자열 테이블에서 수직 정렬 (0) | 2020.08.21 |
jQuery로 요소 계산 (0) | 2020.08.21 |
React Native 오류 : " '9.0.1'에서 Java 버전을 확인할 수 없습니다." (0) | 2020.08.21 |