[JS] boolean과 &&연산자

룽지·2022년 5월 17일
0

JavaScript

목록 보기
4/8

1. boolean

  • true : -1, 1, 'hello', 'false', []
    • 배열은 object이기 때문에 비어있어도 true
  • false : 0, -0, '', null, undefined

코드

// boolean
// false: 0, null, undefined, NaN, ''
// true: any ather value
const canRead = true
const test = 3 < 1 // false
console.log(`value: ${canRead}, type: ${typeof canRead}`)
console.log(`value: ${test}, type: ${typeof test}`)

결과

코드

if (false) {
  console.log('true')
} else {
  console.log('false')
}
  • if의 ()의 결과가 false이면 else의 코드가 실행
    • ()의 결과가 true이면 if의 코드 실행

결과

undefined와 false와 같은 타입이 아님

  • undefined는 boolean false에 속하지만 false는 아님

코드

const canRead2 = false
const canRead3 = undefined
console.log(`value: ${canRead2}, type: ${typeof canRead2}`)
console.log(`value: ${canRead3}, type: ${typeof canRead3}`)

결과

2. null과 undefined

  • null : null이라 할당할 때, 명확하게 empty (텅텅 비어있는) 값이라 함
  • undefined : 선언은 되었지만 아무것도 값이 지정되지 않음
    • 텅텅 비었는지 값이 정해졌는지 모름

코드

// null
let nothing = null
console.log(`value: ${nothing}, type: ${typeof nothing}`)

// undefined
let x // 아무것도 값이 할당되어 있지 않아도 됨
let y = undefined // undefined라고 지정해도 됨
console.log(`value: ${x}, type: ${typeof x}`)
console.log(`value: ${y}, type: ${typeof y}`)

결과

3. && 연산자

변수에 값이 없을 경우

  • 변수에 값을 할당하지 않으면 true일까 false일까

코드

let test

if (test) {
  console.log('true')
} else {
  console.log('false')
}

결과

  • false인 이유
    • test에 값이 할당되지 않았기 때문에
    • undefined이다.
    • undefined는 false이기 때문에 결과가 false가 나온다.

&& 연산자 사용하기

num && console.log(num)

  • num이 true 이면 뒤에 문장을 봄
    • console.log(num)으로 num의 값을 출력
  • num이 false일 경우 뒤에 문장 안봄

코드

let num

if (num) {
  console.log(num)
}

num && console.log(num)
  • num이 값을 할당받지 않아 false

결과

코드

let num = 7

if (num) {
  console.log(num)
}

num && console.log(num)
  • num에 값이 할당되었기 때문에 true
  • ture 이기 때문에 &&연산자에서 뒤에 문장 실행

결과

만약 && 연산자에서 false라면 무엇을 반환할까?

코드

let obj
console.log(obj && console.log('true'))
  • obj에 값이 없을때
    • && 연산자를 출력해보면

결과

  • obj는 값이 없기 때문에 undefined이고
    • false이기 때문에 && 연산자에서 앞에 값을 반환함

&& 연산자를 사용하는 이유는?

  • object의 경우 값이 없을때 호출하면 오류뜸

코드

let obj

console.log(obj.name)

결과

  • object가 없다면, undefined라면 접근하지 않는 것이 좋음
    • 프로그램이 죽음
  • 따라서 obj && console.log(obj.name) object가 있을때, obj.name을 실행함

* 정리

  • 빈 문자열, 없는 값들은 false
  • 문자열, [ 빈 배열 ], { 빈 오브젝트 }들은 true
  • object의 value 값을 출력할 때 이 값이 없을경우를 방지해 && 연산자를 씀
    • obj && console.log(obj.name)
    • obj가 true라면(값이 있다면)
      • 뒤에 문장 실행
    • obj가 false라면(값이 없다면)
      • 앞에 반환

해당 내용은 다음 자료를 참고했습니다.
자바스크립트 기초 3. 연산자 | boolean의 모든것 && 연산자

0개의 댓글