비교 연산자
// 자바스크립트
== : 값만 비교 (타입 변환 후 비교)
=== : 값과 타입 모두 비교
// 자바
== : 값 비교 (primitive type)
equals() : 객체 비교
타입 체크
// 자바
if (obj instanceof String) {
// 타입 체크
}
// 자바스크립트
if (typeof variable === 'string') {
// 타입 체크
}
null/undefined 처리
// 자바
if (obj == null) { // null만 체크
// 자바스크립트
if (!variable) { // null, undefined, 0, "", false 모두 체크
if (variable === undefined) { // undefined만 체크
if (variable === null) { // null만 체크
switch문의 case
// 자바
switch(변수) {
case 상수: // 정수, 문자열만 가능
}
// 자바스크립트
switch(변수) {
case 값: // 모든 타입 가능
}
실무에서 주의할 점
- 자바
- null 체크를 반드시 해야 함
- 타입 안정성 보장
- 컴파일 시점 오류 체크
- 자바스크립트
- 느슨한 타입 체크 주의
- falsy 값 처리 주의 (0, "", null, undefined, NaN)
- 런타임 에러 가능성
하지만 if, else if, else의 기본 구조와 작동 방식, switch-case문의 기본 개념은 두 언어가 동일합니다.
// 둘 다 동일한 구조
if (조건1) {
// 코드1
} else if (조건2) {
// 코드2
} else {
// 코드3
}
switch (변수) {
case 값1:
// 코드1
break;
case 값2:
// 코드2
break;
default:
// 기본 코드
}
결론적으로 조건문의 개념과 목적은 동일하며, 차이점은 주로 각 언어의 타입 시스템과 관련된 부분에 있습니다.