미스터리 밝혀내기: 콘솔에서 변수 선언이 "정의되지 않음" 로그에 나타나는 이유
JavaScript 영역에서는 변수를 선언할 때 특이한 현상이 발생합니다. 콘솔에서. 예상 값 대신 "정의되지 않음"이 인쇄됩니다. 이러한 수수께끼 같은 행동은 많은 개발자들을 당혹스럽게 만들어 포괄적인 설명을 찾게 했습니다.
이전 스택 오버플로 논의에서 이 문제를 해결했지만 근본 원인을 파헤치는 데는 실패했습니다. 이 공백을 메우기 위해 JavaScript의 평가 프로세스를 심층적으로 조사하여 이 수수께끼 같은 동작 뒤에 있는 진실을 밝혀 보겠습니다.
일반적인 믿음과는 달리 var a;와 같은 변수 선언은 유효한 것으로 간주됩니다. JavaScript로 표현. 따라서 이 경우 정의되지 않은 값으로 평가됩니다. 그러나 정말 놀라운 점은 선언 자체가 아니라 콘솔이 변수의 최종 값 대신 이 표현식의 결과를 표시하는 것을 선호한다는 사실입니다.
직관에 반하는 것처럼 보이는 이 동작은 함수 선언에도 적용됩니다. anyFunctionName() {} 함수가 콘솔에 입력되면 정의되지 않음도 인쇄됩니다. 그 이유는 eval 문의 복잡한 구조에 있습니다.
ECMAScript 사양에 따르면 "프로그램 prog 평가 결과"는 완료 값이 a가 아닌 이상 (normal,empty,empty)로 반환됩니다. 비어 있지 않은 값. 변수 및 함수 선언의 경우 완료 값은 비어 있습니다. 이는 콘솔이 두 명령문 모두에 대해 (정상, 비어 있음, 비어 있음)을 수신함을 의미합니다.
그러나 문제의 핵심은 여러 SourceElements의 평가에 있습니다. 스크립트에 여러 SourceElement가 포함되어 있으면 각 요소를 평가한 결과가 결합됩니다. 결과가 (정상, 비어 있음, 비어 있음)인 경우 콘솔은 비어 있지 않은 완료 값을 사용하여 이전 SourceElement의 결과로 대체됩니다.
이 복잡한 평가 프로세스는 코드의 이상해 보이는 동작을 설명합니다. 제공된 예에서는 var a = 3; a = 4; 할당 문 a = 4에 비어 있지 않은 완료 값이 있기 때문에 4를 반환합니다.
본질적으로 이 컨텍스트에서 콘솔의 동작은 JavaScript 평가 프로세스의 복잡성을 반영합니다. 이러한 내부 메커니즘을 이해하면 JavaScript 환경을 자신감 있고 명확하게 탐색할 수 있습니다.
위 내용은 콘솔에서 변수 선언이 \'정의되지 않음\' 로그를 기록하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

JavaScript 문자열 교체 방법 및 FAQ에 대한 자세한 설명 이 기사는 JavaScript에서 문자열 문자를 대체하는 두 가지 방법 인 내부 JavaScript 코드와 웹 페이지의 내부 HTML을 탐색합니다. JavaScript 코드 내부의 문자열을 교체하십시오 가장 직접적인 방법은 대체 () 메소드를 사용하는 것입니다. str = str.replace ( "find", "replace"); 이 메소드는 첫 번째 일치 만 대체합니다. 모든 경기를 교체하려면 정규 표현식을 사용하고 전역 플래그 g를 추가하십시오. str = str.replace (/fi

이 튜토리얼은 사용자 정의 Google 검색 API를 블로그 또는 웹 사이트에 통합하는 방법을 보여 주며 표준 WordPress 테마 검색 기능보다보다 세련된 검색 경험을 제공합니다. 놀랍게도 쉽습니다! 검색을 Y로 제한 할 수 있습니다

그래서 여기 당신은 Ajax라는이 일에 대해 배울 준비가되어 있습니다. 그러나 정확히 무엇입니까? Ajax라는 용어는 역동적이고 대화식 웹 컨텐츠를 만드는 데 사용되는 느슨한 기술 그룹을 나타냅니다. 원래 Jesse J에 의해 만들어진 Ajax라는 용어

이 기사 시리즈는 2017 년 중반에 최신 정보와 새로운 예제로 다시 작성되었습니다. 이 JSON 예에서는 JSON 형식을 사용하여 파일에 간단한 값을 저장하는 방법을 살펴 봅니다. 키 값 쌍 표기법을 사용하여 모든 종류를 저장할 수 있습니다.

코드 프레젠테이션 향상 : 개발자를위한 10 개의 구문 하이 라이터 웹 사이트 나 블로그에서 코드 스 니펫을 공유하는 것은 개발자에게 일반적인 관행입니다. 올바른 구문 형광펜을 선택하면 가독성과 시각적 매력을 크게 향상시킬 수 있습니다. 티

손쉬운 웹 페이지 레이아웃에 대한 jQuery 활용 : 8 에센셜 플러그인 jQuery는 웹 페이지 레이아웃을 크게 단순화합니다. 이 기사는 프로세스를 간소화하는 8 개의 강력한 JQuery 플러그인을 강조합니다. 특히 수동 웹 사이트 생성에 유용합니다.

이 기사는 JavaScript 및 JQuery Model-View-Controller (MVC) 프레임 워크에 대한 10 개가 넘는 튜토리얼을 선별 한 것으로 새해에 웹 개발 기술을 향상시키는 데 적합합니다. 이 튜토리얼은 Foundatio의 다양한 주제를 다룹니다

핵심 포인트 JavaScript에서는 일반적으로 메소드를 "소유"하는 객체를 말하지만 함수가 호출되는 방식에 따라 다릅니다. 현재 객체가 없으면 글로벌 객체를 나타냅니다. 웹 브라우저에서는 창으로 표시됩니다. 함수를 호출 할 때 이것은 전역 객체를 유지하지만 객체 생성자 또는 그 메소드를 호출 할 때는 객체의 인스턴스를 나타냅니다. call (), apply () 및 bind ()와 같은 메소드를 사용 하여이 컨텍스트를 변경할 수 있습니다. 이 방법은 주어진이 값과 매개 변수를 사용하여 함수를 호출합니다. JavaScript는 훌륭한 프로그래밍 언어입니다. 몇 년 전,이 문장은있었습니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Dreamweaver Mac版
시각적 웹 개발 도구
