티스토리 뷰

undefined와 null

  1. undefined와 null의 차이
    • undefined 는 JS에서 데이터가 없을때 내보내고 null 은 개발자가 값이 없음을 명시하기 위해서 사용
    • null만 쓰셈
  2. 내가 할당한 undefined와 자바스크립트가 자동으로 할당해준 undefined의 차이
    • 내가 할당한 undefined : ‘undefined’ 라는 값(null과 비슷)
    • 자바스크립트가 할당한 undefined : 없다 라는 뜻의 undefined
  3. empty와 undefined의 차이
    • 콜백함수에서 다뤄지는 유무 empty → X, undefined → O
  4. 어떤 변수의 값이 null인지를 판별하게 위한 방법
    • 일치연산자(===)
    • typeof null 은 object

실행 컨텍스트

  1. 스택과 큐의 차이점
    • 스택은 들어온 순서와 나가는 순서가 반대, 큐는 들어온 순서대로 나간다. 바구니와 매표소
  2. LexicalEnvironment와 VariableEnvironment의 차이
    • VariableEnvironment(초기 시점)가 LexicalEnvironment(변경사항이 반영된다)의 스냅샷(생성 시점에 대한 정보의 차이).
  3. LexicalEnvironment를 구성하는 것이 무엇이고 각각의 역할이 무엇인지(스코프 포함)
    • environmentRecord
      • var 식별자와 함수 선언문, 매개변수명을 수집함 : 호이스팅 Hoisting
      • var과 let의 차이점
        • var 식별자만 호이스팅? let, const, class는 블록스코프 기준에서 호이스팅됨
    • outerEnvironmentReference
      • 선언될 당시의 LexicalEnvironment(외부 컨텍스트) 를 참조 → 스코프 체이닝을 가능케함
  4. 호이스팅이 뭐고 어떻게 되는지
    • 식별자 정보를 한번 쭉 훑어봄: var 선언과 함수 선언문
    • 호이스팅에 대해 설명해보세요다른 언어와 달리 자바스크립트는 실제로 선언된 위치와 상관 없이 최상단으로 선언부가 끌어올려지기에 선언 위치 앞에서도 호출이 가능한데, 함수, var, let, const 에 따라 그 경우가 달라집니다.또한 호이스팅은 코드의 가독성을 해칠 수 있으므로, 변수와 함수는 사용하기 전에 명시적으로 선언하는 것이 좋습니다.
    • 함수의 경우 어디서든 호출이 가능하고 제대로 작동됩니다. 하지만 var의 경우에는 선언 전에 호출 시 undefined를 반환합니다. 그런데 이 var가 오히려 오류를 안 내서 어디서 오류가 났는지 바로 확인이 어렵기 때문에 const와 let은 선언 전에 호출 시 에러를 내보내게 되었습니다. 물론 에러는 내보내지만 초기화되지 않은 상태로 호이스팅 된다는 점이 있습니다.
    • 호이스팅은 변수와 함수 선언이 그들이 속한 스코프의 최상단으로 끌어올려지는 동작을 말합니다.
  5. 호이스팅 할 때 함수 선언문과 표현식의 차이
    • 함수 선언문 : 함수 전체를 호이스팅
    • 함수 표현식 : 식별자만 호이스팅
  6. 콜 스택에 실행 컨텍스트가 어떤 순서로 쌓이고, 어떤 순서로 코드 실행에 관여하는지 전체적인 과정
    • 함수가 실행되는 순서로 컨텍스트가 콜 스택에 아래부터 하나씩 쌓이고, 콜 스택(그릇)바깥과 가까운 컨텍스트부터 하나씩 실행되며 없어진다.
  7. 전역 변수와 지역 변수의 차이
    • 전역변수 : 전역 컨텍스트의 LexicalEnvironment에 담긴 변수
    • 지역변수 : 그 외 모두
    • 안전한 코드 구성을 위해 가급적 전역변수 사용 최소화
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함