자바스크립트는 느슨한 타입언어, 동적 타입언어, 변수의 타입을 미리 선언할 필요가 없다.
프로그램이 처리되는 과정에서 자동으로 파악되고, 같은 변수라도 상황에 따라 타입이 바뀔 수도 있다.
자바스크립트는 컴파일 과정 없이 실행과 동시에 해석을 하는 인터프리터 언어
자바스크립트의 형변환은 2가지로 일어난다 (명시적형변환/암시적 형변환)
1. 명시적 형변환
string, number, boolean 타입으로 이루어진다
의도적으로 형태를 변형해서 사용하겠다는 것
String(123)
String(NaN)
Number('') //0
Number('123') //123
ParseInt('123a') //123
Boolean("") //false
2. 암시적 형변환
연산할 때 일어난다.
문자열이 하나라도 포함되면 문자열 연산이된다
// string
console.log('문자' + 1234); // 문자1234
console.log('문자' + true); // 문자true
// number
console.log(1234 + '1234'); //12341234
console.log(1234 + true); // 1235
console.log(1234 + undefined); // NaN
// boolean
console.log(true + 123); // 124
console.log(false + undefined); // NaN
// null
console.log(null + 1234); // 1234
// undefined
console.log(undefined + 1234); // NaN
null, undefined 차이
둘다 자료형이면서 동시에 값이다
빈값이냐, 값을 할당하지 않았냐
화장실에 휴지걸이가 있으면 undefined
휴지걸이에 휴지심만 있으면 null
null 은 명시적,
undefined는 암시적,
null은 코드를 작성할 때 의도적으로 명확하게 비어있다고 하는 것,
undefined 는 할당이 안된 것
'programming > Javascript' 카테고리의 다른 글
얕은복사 & 깊은복사 (0) | 2022.03.11 |
---|---|
자바스크립트 프로토타입 (0) | 2022.03.11 |
이벤트 버블링과 캡처링 (0) | 2022.03.11 |
[Javascript] 실행 컨텍스트 (0) | 2022.03.06 |
[Javascript] 스코프(Scope), 스코프체인, 렉시컬스코프 (0) | 2022.03.06 |