Javascript의 자료형과 Javascript 만의 특성은 무엇일까?
- 느슨한 타입(loosely typed)의 동적(dynamic)언어 :자바스크립트에는 타입이 있지만, 변수에 타입을 필수적으로 지정하지 않아도 된다. 때문에 '느슨한 타입(loosely typed)언어' 라고 할 수 있다. 이 특징이 JS의 약점이 되는데 JS는 컴파일 된 후 실행 되는 것이 아니라 실행되는 순간 한 줄씩 읽으며 실행이 된다. 그렇기 때문에 실행하기 전에는 오류를 확일 할 수 없다는 단점이 있다.
Javascript 형변환
- 자바스크립트 타입 변환(X to number)
문자열이나 불리언을 숫자로 형변환하는 방법은 4가지 정도다.1) parseInt(정수 문자열) || parseFloat(실수 문자열)2) Number(문자열 or 불리언)3) + (문자열 or 불리언)
4) (문자열 or 불리언) * 1- 문자열를 숫자로 변환(string to number)
: "111" 처럼 숫자로 된 문자열만 변환 가능하다. 숫자가 아닌 경우, NaN 반환
1. parseInt(정수 문자열) || parseFloat(실수 문자열) : 소수가 없는 정수는 parseInt(), 소수가 있는 실수는 parseFloat()로 형변환.
parseInt("11") // 11
parseFloat("11.55") // 11.55
parseInt("NaN") // NaN
parseFloat("NaN") // NaN
parseInt("Infinity") // Infinity
parseFloat("Infinity") // Infinity
parseInt("Hello") // NaN
Number("11"); // 11
Number("11.55"); // 11.55
Number("Hello"); // NaN
+ ("11") // 11
+ "11.55" // 11.55
+ "-11" // -11
+ "Hello" // NaN
"11" * 1 // 11
"11.55" * 1 // 11.55
"-11" * 1 // -11
"Hello" * 1 // NaN
Boolean을 숫자로 변환(boolean to number)
: true → 1, false → 0 으로 변환되며, parseInt(), parseFloat()는 적용 불가하다.
1. Number(불리언)
: Number 생성자 함수를 new 없이 활용하는 방법
Number(true) // 1
Number(false) // 0
2. +(Boolean) : 불리언 앞에 + 연산자를 붙여주면, 숫자로 형변환이 된다.
+ (true) // 1
+ false // 0
* 괄호는 상황에 따라 넣으면 된다.
3. (Boolean) * 1
: 불리언에 * 연산을 하면, 숫자로 형변환이 된다.
(true) * 1 // 1
false * 1 // 0
* 괄호는 상황에 따라 넣으면 된다.
==,=== 의 차이
- '=='와 '===' 연산자의 주된 차이점은, 예를 들어, 숫자를 숫자 리터럴과 비교하면, '=='는 그것을 허용하지만, '===' 두 변수의 형식은 동일하지 않은 경우, 값뿐만 아니라 두 변수의 유형도 확인하므로, 허용하지 않는 것이다. 즉, '==='는 'false'으로 반환하고, '=='는 'true'로 반환한다.
undefined 와 null 의 차이
undefined
- 원시 자료형 중 하나
- 값이 할당되지 않은 값
null
- 원시 자료형 중 하나
- 어떤 값이 비어있음을 의도적으로 표현할 때 사용