본문 바로가기

programming/Javascript

자바스크립트의 형 변환(+ null & undefined 차이)

자바스크립트는 느슨한 타입언어, 동적 타입언어, 변수의 타입을 미리 선언할 필요가 없다.

프로그램이 처리되는 과정에서 자동으로 파악되고, 같은 변수라도 상황에 따라 타입이 바뀔 수도 있다.

 

자바스크립트는 컴파일 과정 없이 실행과 동시에 해석을 하는 인터프리터 언어

 

자바스크립트의 형변환은 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 는 할당이 안된 것