undefined
와null
의 차이는 무엇인가?:
undefined
는 변수를 초기화할 때 암묵적으로 할당되는 값을 의미하기 때문에, 본래 취지와는 달리 의도적으로undefined
를 할당하는 것은 바람직하지 않음
: 변수에 값이 없다는 것을 의도적으로 명시하고 싶을 때는undefined
가 아니라null
을 사용하는 것이 바람직함
:null
을 사용하면 변수가 이전에 참조했던 값과의 연결을 끊겠다는 의미, 유효한 값을 반환하지 못할 때 사용하기도 함
- 심벌 타입은 왜 사용하는가?
: 충돌할 위험이 없는 객체의 유일한 키를 만들고 싶을 때 사용
- 데이터 타입이 필요한 이유는 무엇인가?
: 값을 저장할 때 데이터 타입에 따라 적절한 메모리 공간의 크기를 결정할 수 있음
: 값을 참조할 때 한 번에 읽을 메모리 공간의 크기를 결정할 수 있음
: 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정할 수 있음
- 동적 타이핑이란 무엇이고, 단점은 무엇인가?
: 데이터의 타입이 선언될 때가 아니라 할당될 때 결정되는 것을 의미
: 자바스크립트는 그러므로 동적 타입 언어라고 할 수 있음
: 값이 변경되면 타입이 유연하게 변경될 수 있기 때문에 의도와 상관없이 암묵적으로 타입이 변환되어 혼란을 초래할 수 있음
- 동적 타이핑에 따른 변수 사용 시 유의할 점은 무엇인가?
: 남용하지 않고 필요한 경우에만 변수 사용
: 변수의 유효 범위인 스코프는 최대한 좁게 사용
: 전역 변수의 사용은 최대한 지양
: 변수보다 상수를 사용하여 값 변경 방지
: 변수 이름은 목적과 의미를 파악할 수 있도록 지어야 함
- 부수 효과는 무엇이고, 이를 발생시키는 연산자에는 무엇이 있는가?
: 연산 후 다른 코드에 영향을 미치는 것을 부수 효과라고 함
: 할당 연산자, 증감 연산자,delete
연산자가 부수 효과를 발생시키는 연산자에 해당함
- 동등 비교 연산자와 일치 비교 연산자의 차이는 무엇인가?
: 동등 비교 연산자는 암묵적 타입 변환을 통해 타입을 일치시키고 비교하기 때문에 값만 비교하는 느슨한 비교
: 일치 비교 연산자는 암묵적 타입 변환을 수행하지 않고 비교하기 때문에 값과 타입까지 비교하는 엄격한 비교
if else
문과switch
문은 각각 어떤 경우에 사용하는 것이 바람직한가?: 보편적으로
if else
문을 사용하되, 조건이 너무 많은 경우에는switch
문을 사용하는 것이 가독성을 향상시킬 수 있음
switch
문에서의default
문은 무슨 역할을 하는가?: 모든
case
에 해당되지 않는 경우default
문을 실행하게 됨
switch
문과while
문에서break
문을 사용하지 않으면 어떻게 되는가?: 조건식이 계속 참이라면 코드 블록을 탈출하지 못하는 무한 루프 발생