타입 강제와 약한 형식화
자바스크립트는 내부적으로 데이터 타입을 변환하여 작업을 완료할 수 있다.
이를 type coercion (타입 강제) 이라고 한다.
'1' > 0 이라는 구문에서 문자열 1이 숫자 1로 강제 변환되고 true를 return할 수 있다.
강력한 형식화를 사용하는 일부 다른 프로그래밍 언어와 달리, 자바스크립트는 약한 형식화를 사용한다.
따라서 의도하지 않은 값을 만들어내는 것이 싫다면 동등 비교 연산자 ==, != 를 쓰는 것보다
일치 비교 연산자 ===, !== 를 쓰는 것이 권장된다.
===, !== 는 같은 값인지 여부 뿐만 아니라 데이터 타입도 비교한다.
단축 평가 값
OR 연산자를 사용할 때는 true를 리턴할 가능성이 높은 코드를 첫번째 조건으로 작성하고,
AND 연산자를 사용할 때는 false를 리턴할 가능성이 높은 코드를 첫번째 조건으로 작성한다.
단축 평가 기버은 페이지 내에 요소가 존재하는지를 검사하는 용도로 활용이 가능하다.
자바스크립트에서 true와 false
자바스크립트에서 숫자 0이나 빈 값, 값을 대입하지 않은 변수는 false로 취급된다.
반면에 내용을 가진 문자열이나 0이 아닌 다른 숫자는 true이다.
단항 연산자에서
if( document.getElementById('header') ) 라는 구문이 있다면
예약된 데이터 타입
단순혹은 기본 데이터 타입인 String, Number, Boolean, Undefined, Null
복합데이터 타입인 Object
true, false는 boolean 값이므로 (false === 0)은
type이 일치하지 않으므로 false를 return한다.
(undefined == null)이 true지만, (undefined === null)은 false이다.
boolean과 마찬가지로 undefined도 하나의 형식이기 때문이다.
'Study > JavaScript' 카테고리의 다른 글
[JavaScript] Proxy (0) | 2024.04.03 |
---|---|
[JavaScript] 기본 (0) | 2021.10.18 |
html + javascript 기초 (0) | 2021.01.07 |
자바 스크립트 기초 - 함수, 메서드, 객체 (0) | 2017.03.27 |