Return 문이 줄 바꿈되면 JavaScript 함수가 "정의되지 않음"을 반환합니다.
특정 시나리오에서는 JavaScript 함수가 다음과 같은 이유로 예상 개체를 반환하지 못할 수 있습니다. return 문 뒤의 줄 바꿈. 이 문제는 예제 코드에서 볼 수 있듯이 개체 정의가 줄 바꿈으로 return 문과 분리될 때 발생합니다.
function foo1(){ return {msg: "hello1"}; } function foo2(){ return {msg: "hello2"}; } // output = "foo1 = {"msg":"hello1"}" console.log('foo1 = ' , JSON.stringify(foo1())); //output = " foo2 = undefined " console.log('foo2 = ' , JSON.stringify(foo2()));
이러한 함수 간의 주요 차이점은 return 문과 return 문 사이의 줄 바꿈입니다. foo2의 객체 정의. JavaScript의 자동 세미콜론 삽입(ASI) 메커니즘은 foo2의 return 문 뒤에 세미콜론을 잘못 삽입하여 객체를 반환하지 않고 함수 실행을 효과적으로 종료합니다. 이로 인해 foo2()를 문자열로 변환할 때 "정의되지 않음"이 출력됩니다.
이 문제를 방지하려면 다음과 같은 여러 접근 방식을 취할 수 있습니다.
미적 고려 사항이나 코드 가독성이 ASI 문제의 가능성보다 중요한 경우 개발자는 응답에 제공된 예에서 볼 수 있듯이 그룹화 연산자를 사용하여 표현식을 그룹화하도록 선택할 수 있습니다. 그러나 이 접근 방식은 기본적으로 선호 사항이며 코드 기능에 영향을 미치지 않습니다.
위 내용은 Return 문이 줄바꿈되었을 때 JavaScript 함수가 \'undefine\'을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!