Console.log(생활)

변수가 정의되지 않았습니다...

삶의 의미를 얻는 것이 그렇게 쉬웠다고 상상해 보십시오. JavaScript에서 이 오류를 받으면 낙담할 수 있습니다. 여기 뭔 일 있었 니? 이것은 무엇을 의미하며 어떻게 고칠 수 있습니까? 먼저 JavaScript의 V8 엔진 내부에서 무슨 일이 일어나고 있는지 이해해야 합니다.

실행 컨텍스트

JavaScript가 실행되기 시작하면 "실행 컨텍스트"라는 코드가 실행될 환경이 설정됩니다. 가장 먼저 하는 일은 전역 개체, "this"라는 변수를 만들고 외부 환경이 있는 경우 외부 환경에 대한 참조를 만드는 것입니다. 이 시점에서 코드의 모든 변수를 "호이스팅"하는 프로세스로 시작합니다.

"호이스팅"은 나중에 별도의 기사에서 가장 잘 논의되는 또 다른 주제입니다. 지금은 대화를 위해 여기 MDN 문서의 정의를 사용하는 데 동의합니다 .

" 호이스팅에 대한 엄격한 정의는 변수 및 함수 선언이 물리적으로 코드의 맨 위로 이동된다는 것을 의미하지만 실제로는 그렇지 않습니다. 대신 변수 및 함수 선언은 컴파일 단계에서 메모리에 저장되지만 코드에서 입력한 위치에 정확히 유지됩니다."

JavaScript가 코드를 실행할 환경을 설정함에 따라 선언한 각 변수에 대한 메모리와 할당한 값에 대한 공간을 할당하기 시작합니다. life 라는 변수에 대해 명시적 값을 선언하지 않은 경우 . JavaScript는 자동으로 "undefined"라는 특수 값을 할당합니다 . 따라서 인생이 " 정의되지 않음 "을 오류로 볼 때. 자바스크립트가 당신에게 말하려고 하는 것은 실행 환경에서, 나는 당신의 코드가 실행되도록 만들었습니다. 수명 변수에 값을 할당하지 않았습니다 . 따라서 코드에는 life 라는 변수가 있지만 메모리에는 값이 저장되어 있지 않습니다.

이것은 "참조 오류: 수명이 정의되지 않았습니다" 와 크게 다릅니다 . 이상하게 유용한 방식의 JavaScript. 코드를 수정하는 방향을 알려주려고 합니다. JavaScript 엔진이 "참조 오류: 생명이 정의되지 않음" 으로 알려주려는 것은 코드가 호이스트되고 변수와 값이 메모리에 배치된 때입니다. JavaScript 엔진은 life 라는 변수를 선언하지 않았기 때문에 이 변수에 대한 메모리 공간을 따로 설정하지 않았습니다 . 따라서 본질적으로 코드에 life 라는 변수에 대한 참조가 없으므로 아무 것도 호이스트되지 않았다는 것입니다. 따라서 값에 대해 참조할 실행 환경이 없기 때문에 오류가 발생합니다.

이것은 정말 중요한 요점을 제시합니다. 변수를 선언하고 값이 없음을 나타내는 값을 갖도록 설정해야 한다면 어떻게 될까요?

내 제안은 여기 에서 MDN에 따라 "null"을 사용하는 것입니다.

"값 null은 개체 값의 의도적인 부재를 나타냅니다. 이것은 JavaScript의 원시 값 중 하나이며 부울 연산에 대해 거짓 으로 처리됩니다 .”

바라건대, 이 기사는 이러한 일반적인 오류가 발생하므로 JavaScript 내부에서 실제로 무슨 일이 일어나고 있는지 명확히 하는 데 도움이 되었기를 바랍니다. 아아, 삶의 의미는 그렇게 쉽게 정의되지 않습니다.

행복한 코딩!

Suggested posts

뇌졸중의 치명적인 결과 피하기: 가족의 여정에서 배우기 .

뇌졸중의 치명적인 결과 피하기: 가족의 여정에서 배우기 .

머리말 뇌졸중은 누구에게나 언제든지 닥칠 수 있는 의학적 응급 상황입니다. 뇌의 한 부분으로의 혈류가 중단되어 갑작스러운 뇌 기능 상실로 이어질 때 발생합니다.

내가 가장 많이 사용하는 코딩 리소스

내가 가장 많이 사용하는 코딩 리소스

이번 주에 저는 일일 이메일 목록의 회원으로부터 이메일을 받았습니다. 그들은 알고 싶어했습니다. 매일, 매주, 매월 어떤 리소스를 방문합니까? 좋은 질문입니다! 제 작업 흐름과 제가 사용하는 주요 리소스에 대한 통찰력을 공유하게 되어 기쁩니다.

Related posts

Goodreads 읽기 챌린지는 독성이 있습니다.

Goodreads 읽기 챌린지는 독성이 있습니다.

지역 서점과 또 다른 책을 흥정하면서 손에 가려움증이 퍼졌습니다. 내가 최근에 구입한 나머지 책과 같은 이 책은 내 'To Be Read'(TBR) 더미에서 왕좌를 찾을 것입니다. 그러나 나는 그것을 샀다.

미디어 재검토: McChesney의 다섯 가지 진실과 커뮤니케이션의 미래

오늘날의 초연결 세계에서 미디어 시스템은 여론을 형성하고 결과적으로 민주적 의사 결정에 중추적인 역할을 합니다. 의사소통의 정치경제학에 대한 심오한 분석에서 학자인 Robert McChesney는 기존의 통념에 도전하고 그가 미디어에 대한 "다섯 가지 진실"이라고 부르는 것을 제시합니다.

일부 프리랜서가 자신의 삶을 속이는 이유

일부 프리랜서가 자신의 삶을 속이는 이유

나는 최근에 세계 최대의 전문 소셜 네트워크인 Linkedin에 있었고 내가 팔로우하는 프리랜서 디자이너의 게시물을 발견했는데 내 관심을 끌었습니다. 그들은 모두 비행기에서, 노트북과 함께 해변에서, 수영장에서, 멋진 전망이 있는 사무실에서 사진을 게시했습니다.

무한한 삶

당신이 자라면 세상은 있는 그대로이고 당신의 삶은 단지 세상 안에서 당신의 삶을 사는 것이며, 결코 당신의 생명을 위험에 빠뜨리지 않고, 정해진 길을 따르고 결국 죽고, 벽을 너무 세게 치세요.하지만 그것은 매우 제한된 삶입니다.