JavaScript의 신비한 반환 문 수수께끼
다음 JavaScript 코드 조각을 고려하세요.
function correct() { return 15; } function wrong() { return 15; } console.log("correct() called : " + correct()); console.log("wrong() called : " + wrong());
놀랍게도 맞습니다() 잘못된 값()은 정의되지 않은 값을 반환하는 반면 예상 값 15를 반환합니다. 이 동작은 대부분의 다른 프로그래밍 언어와 다르기 때문에 왜 발생하는지 궁금합니다.
기술적 설명: 보이지 않는 세미콜론
JavaScript의 세미콜론은 선택 사항이며 인터프리터는 특정 개행 문자에 자동으로 삽입됩니다. 그러나 해석기의 가정이 항상 우리의 의도와 일치하는 것은 아닙니다.
wrong()의 경우 return 문 뒤에 개행 문자가 옵니다. 이로 인해 세미콜론이 삽입되어 다음 코드가 생성됩니다.
function wrong() { return; 15; }
문제 분석: 반환 구문
return 문 바로 뒤에는 다음이 와야 합니다. 반환 값. wrong()에서 return 뒤의 세미콜론은 문을 종료하고 다음 줄의 연결을 끊은 상태로 둡니다.
해결책: 표현식을 괄호로 묶기
이러한 혼란을 피하기 위해 우리는 반환 표현식을 괄호로 묶을 수 있습니다.
function wrong() { return ( 15 ); }
괄호는 인터프리터가 세미콜론을 삽입하는 것을 방지하고 표현식이 올바르게 평가되도록 보장합니다.
TypeScript 추론 이해
JavaScript의 형식화된 상위 집합인 TypeScript는 위 코드에서 컴파일러 오류를 발생시켜 올바른 반환 문 구문의 중요성을 강조합니다. 이는 JavaScript에서 함수를 정의할 때 이러한 고려 사항의 중요성을 강조합니다.
위 내용은 JavaScript의 `return` 문이 때때로 `undefine`을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!