동등, 부등 연산자, 논리 연산자

JG HAN·2022년 9월 13일
0

JS

목록 보기
8/8

== 연산자

  • 값만 비교, 타입은 비교하지 않음
var value;
console.log(value == null); //true

-> undefined 와 null을 비교하면 true,(값만 비교하므로)

=== 연산자

  • 값, 타입 모두 비교
var value;
console.log(value == null); //true
console.log(value === null); //false

|| 연산자

  • 표현식의 평가 결과가 하나라도 true이면 true, true가 아니면 false
  • 왼쪽 결과가 true이면 오른쪽은 비교하지 않음
var value, zero = 0, two = 2;
console.log(value || zero || two); //2
  1. value 변수값이 undefined 이므로 false
  2. zero 변수값이 0 이므로 false
  3. two 변수값이 2이므로 true가 되며 two 변수값을 반환
  4. true가 아니라 true가 되는 변수값 반환, 2가 true이므로 전체 비교는 true
  • falsy한 값은 false, 0 , undefined, null, Nan, ''(빈문자열)
var value, zero = 0;
console.log(zero || value); //undefined
  1. value, zero 모두 false
  2. 마지막까지 비교했는데 모두가 false면 false가 아니라 마지막 변수값 반환
var one =1;
console.log(one ===1 || two ===2); //true
  1. 왼쪽의 one ===1 결과가 true이므로 true반환
  2. 왼쪽 비교 결과가 true이면 오른쪽은 비교하지 않음
  3. 오른쪽을 비교하면 two 변수가 없으므로 에러발생

&& 연산자

  • 표현식의 평가 결과가 모두 true이면 true, 아니면 false
  • 왼쪽 결과가 false이면 오른쪽은 비교하지 않음
var one =1, two =2;
console.log(one && two); //undefined
  1. one 변수값이 1이므로 true이므로 dhfmsWhrdmf qlry
  2. two 변수값이 2이므로 모두가 true이므로 마지막의 2를 반환

0개의 댓글