호이스팅이란?
자바스크립트에서 함수가 실행될 때, 함수 내 선언한 변수나 함수의 값들을 전부 유효범위의 최상단에 선언시킨 것처럼 순서를 바꾼 것을 의미한다. 코드를 동작하기 전에 이미 선언된 변수나 함수들이 저장되기 때문에 코드 상에서 선언문보다 호출문이 앞서 있어도 동작하는데는 오류가 없다.
TDZ란?
TDZ는 시간상 사각지대의 약자로, let, const, var 중 let과 const가 호이스팅을 거치는 도중 들어가는 에러를 의미한다. 초기화가 완전히 끝나기 전가지 TDZ에 들어간 이 변수타입들을 사용하려면 referenceError를 겪게 된다. 이는 초기화 순서에 따라 생기는 것이며 var는 이 TDZ가 생기지 않아 코드상에서 에러를 일으킬 위험이 있다.
parameter와 argument의 차이란?
함수를 정의할 때 사용하는 값을 파라미터라고 하며 function add(a, b){ return a +b;} 에서 a와 b가 파라미터이다.
아규먼트는 실제로 함수를 호출, 사용할 때 전달되는 값을 의미한다. 즉 파라미터는 '이 함수에 이런저런 값이 쓰인다'라고 가정하는 값이고, 아규먼트는 '이 함수에 이 값을 집어넣어서 쓸 거야.'라고 실사용하는 값이다.
'항해99 개발일지' 카테고리의 다른 글
05 - 12 스터디 일지 (0) | 2023.05.12 |
---|---|
05 - 10 스터디 일지 (0) | 2023.05.11 |
05 - 08 스터디 (0) | 2023.05.08 |
OneTwoDay(원투데이) 트러블 슈팅 겸 회고 (0) | 2023.04.23 |
마켓컬리 클론코딩 트러블 슈팅 겸 회고 (0) | 2023.04.23 |