본문 바로가기
개발

Javascript - 비교연산자

by 플리트우드 2024. 12. 6.

출처 : https://www.zerocho.com/category/JavaScript/post/572f55d773b6f3c5fdbf4426

 

(JavaScript) 연산자(operator)

이번 시간에는 연산자에 대해서 알아보겠습니다. 전부를 다루지는 않고 자주 쓰이는 것만 다루겠습니다.  연산자 연산자란 프로그래밍에서 쓰이는 기호들입니다. 연산자에는 산술, 문자열, 증

www.zerocho.com

 

 

JS에서 거짓인 값 :

'', 0, false, NaN, undefined, null, document.all

 

 

 

===

0 == ''
0 == false
0 == []

위의 세 개 모두 true입니다. 황당하죠? 숫자 0이 false도 되고 빈 문자열도 되고, 빈 배열도 됩니다. 자바스크립트에서 ==으로 비교연산을 할 때 자동으로 자료형을 바꿔버리고 만 비교해서 이런 일이 일어납니다. 이런 경우를 방지하고자 자바스크립트에는 === 연산이 있습니다. 값 뿐만 아니라 자료형까지 같아야 true가 됩니다.

0 === '' // false
0 === false // false
0 === [] // false

이제 셋 다 false가 뜨네요. 자바스크립트에서 같은 값인지 비교할 때는 꼭 ===를 써야함을 잊지 마세요. ==를 쓰는 것은 추천하지 않습니다. 아, 자료형까지 다른지 비교할 때는 != 대신에 !==를 씁니다. ===와 !==를 기억하세요.

 

 

 

 

|| (참이 나올때까지 비교, 참인 변수에 대입)

var a;
if (b) {
  a = b;
} else if (c) {
  a = c;
} else {
  a = d;
}

 

이 긴 구문을 다음과 같이 줄일 수 있습니다. 바로 false 성질을 띄는 것(undefined, null, 0, '', false, NaN, document.all)들과 ||의 성질을 이용한 건데요. b가 아니면 c, c도 아니면 d까지 확인합니다. 결국 b, c가 모두 아니면 a는 d가 되는거죠.

var a = b || c || d;

다음은 && 예제입니다. ||과는 반대로 b도 있고 c도 있으면 a = d가 됩니다. b는 있는데 c가 없으면 a = c가 되고요. b가 없으면 a = b가 됩니다.

var a = b;
if (b) {
  a = c;
  if (c) {
    a = d;
  }
}
var a = b && c && d;

||는 값이 false 성질을 띄지 않을 때까지 다음 것을 찾고, &&는 값이 true 성질을 띄지 않을 때까지 다음 것을 찾습니다. ||는 주로 기본값(default)을 정할 때 많이 쓰입니다. 예를 들면 다음과 같이 사용자가 함수의 인자로 아무 것도 안 넣어주었을 때 기본으로 []가 설정됩니다.

function setting(option) {
  var result = option || [];
  return console.log(result);
}
setting([1, 2, 3]); // [1, 2, 3]
setting(); // []

다음과 같이 해도 default를 표현할 수 있습니다.

var result = option ? option : [];

'개발' 카테고리의 다른 글

코틀린 - 스코프 함수 let  (0) 2024.12.06
Kotlin - 코루틴  (0) 2024.12.06
Escape  (0) 2024.12.06
직렬화  (0) 2024.12.06
Java - Synchronized  (0) 2024.12.06