본문 바로가기

Javascript

비교 / 논리 / 일치연산자

1️⃣ 비교연산자 (Comparison operators)

  • 말 그대로 숫자값을 비교하는 연산자! 이러한 비교연산자를 통해서 얻는 값 boolean
  • 조건문과 같이 많이 활용됨.

console.log(1 < 2)                      // 1이 2보다 작은가? true
console.log(2 <= 2)                   // 2가 2보다 작거나 같은가? true
console.log(1 > 2)                     // 1이 2보다 큰가? false
console.log(1 >= 2)                   // 1이 2보다 크거나 같은가? false

 

2️⃣ 논리연산자 (Logical operators)

  • || (or) : 연산 대상 중 하나만 true 여도 true 리턴    ⛔|은 shift + \(엔터 위키)
  • && (and) : 연산 대상이 모두 true 여야만 true 리턴
  • ! (not) :  true를 false로, flase를 true로 바꿔서 리턴

let isOnSale = true
let isDiscountItem = true

console.log(isOnSale && isDiscountItem) // true && true 이므로 true
console.log(isOnSale || isDiscountItem) // true || true 이므로 true

isOnSale = false
console.log(isOnSale && isDiscountItem) // false && true 이므로 false
console.log(isOnSale || isDiscountItem) // false || true 이므로 true

isDiscountItem = false
console.log(isOnSale && isDiscountItem) // false && false 이므로 false
console.log(isOnSale || isDiscountItem) // false || false 이므로 false

console.log(!isOnSale) // !false 이므로 true

 

3️⃣ 일치연산자 (Equality operators) : 두 값이 일치하는지 비교

console.log(1 === 1) // true
console.log(1 === 2) // false
console.log('Javascript' === 'Javascript') // true
console.log('Javascript' === 'javascript') // 대소문자나 띄워쓰기도 다 정확히 일치해야 한다. 따라서 false

 

⛔ 일치연산자는 == 은?

자바스크립트에는 두 가지의 일치연산자가 있다. === 는 엄밀한 (strict) 일치연산자여서 비교하는 두 값의 데이터타입과 값 자체가 정확히 일치해야만 true를 리턴한다.

 

반면 == 는 비교하는 두 값의 데이터타입이 일치하지 않을 때 해당 값의 데이터타입을 자동으로 변환해주는 자바스크립트만의 특성이 있다. 이 특성이 자칫 개발자의 실수를 유발할 가능성이 크기 때문에 실무에서는 거의 쓰지 않고 있다. 정확한 프로그래밍을 위해 === 만 쓰도록!

 

console.log(1 === "1") // false를 출력

console.log(1 == "1") // true를 출력