>  기사  >  웹 프론트엔드  >  JavaScript 콘솔에서 변수 선언에 대해 \"정의되지 않음\"이 표시되는 이유는 무엇입니까?

JavaScript 콘솔에서 변수 선언에 대해 \"정의되지 않음\"이 표시되는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-20 08:42:02454검색

Why Is

JavaScript 콘솔에서 변수를 선언할 때 "정의되지 않음"이 인쇄되는 이유는 무엇입니까?

다른 환경과 달리 "var" 키워드를 사용하면 변수에 값이 할당되지 않습니다. 대신 콘솔은 "undefine"을 인쇄합니다.

Understanding the Expression

보이는 것과는 반대로 "var a;" "정의되지 않음"으로 평가되는 유효한 표현식입니다. 값을 할당하지 않고 변수를 선언하면 기본값이 "정의되지 않음"인 초기화되지 않은 변수가 생성되기 때문입니다.

Eval의 동작

The JavaScript 콘솔은 "eval" 함수를 사용하여 표현식을 평가합니다. 평가 사양에 따라 표현식이 빈 값(예: 초기화되지 않은 변수)으로 평가되면 "정의되지 않음"이 반환됩니다.

다른 문에 미치는 영향

흥미롭게도 이 동작은 다른 "var" 및 함수 선언까지 확장됩니다. 후속 문에 "실제" 결과가 있으면 콘솔은 "var" 및 함수 선언을 무시하고 다른 문의 결과를 표시합니다. 예를 들면 다음과 같습니다.

> var a = 3; var a = 4; var a = 5; function f() {};
4 // !!!

과제에서 예외가 발생하는 이유

과제("var a = 4;")의 경우 할당 때문에 동작이 변경됩니다. 명령문에 비어 있지 않은 결과(할당된 값)가 있습니다. 이 결과는 이전 "var" 선언의 빈 결과를 재정의합니다.

함수 선언과 표현식

함수 선언과 표현식 모두 "var" 키워드를 사용하지만, 다르게 평가됩니다. 함수 선언(예: "function f() {}")은 "정의되지 않음"(변수 선언과 유사)으로 평가되는 반면, 함수 표현식(예: "(function f() {})")은 함수 자체로 평가됩니다.

위 내용은 JavaScript 콘솔에서 변수 선언에 대해 \"정의되지 않음\"이 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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