>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 `return` 문이 때때로 `undefine`을 반환하는 이유는 무엇입니까?

JavaScript의 `return` 문이 때때로 `undefine`을 반환하는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-05 16:14:02325검색

Why Does JavaScript's `return` Statement Sometimes Return `undefined`?

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.