home강의 홈으로
Section 2. 자료형과 연산자
Lesson 7. 불리언(boolean)과 관련 연산자
console.log(true, typeof true); console.log(false, typeof false); let a = 1 === 2; let b = 'abc' !== 'def' let c = a !== b; let d = typeof a === typeof b === true; console.log(a, typeof a); console.log(b, typeof b); console.log(c, typeof c); console.log(d, typeof d);


I. 연산자

1. 부정 연산자

console.log( true, !true, false, !false ); console.log( true, !true, !!true, !!!true ); console.log( false, !false, !!false, !!!false ); console.log( true === !false, !(1 == '1'), !(1 === '1'), !(typeof false === 'boolean') );

2. AND / OR 연산자

a. && - AND : 양쪽 모두 true 여부 반환

console.log( true && true, true && false, false && true, false && false, );

b. || - OR : 한 쪽이라도 true 여부 반환

console.log( true || true, true || false, false || true, false || false, );


let x = 14; // x = 6; // x = 25; console.log( (x > 10 && x <= 20) || x % 3 === 0 ); // 💡 드 모르간의 법칙 let a = true; // a = false; let b = true; // b = false; console.log( !(a && b) === (!a || !b), !(a || b) === (!a && !b) ); // 💡 항상 true

💡 단축평가 short circuit

  • && : 앞의 것이 false면 뒤의 것을 평가할 필요 없음
  • || : 앞의 것이 true면 뒤의 것을 평가할 필요 없음
  • 평가는 곧 실행 - 이 점을 이용한 간결한 코드
  • 💡 연산 부하가 적은 코드를 앞에 - 리소스 절약
let error = true; // error = false; // 앞의 것이 true일 때만 뒤의 코드 실행 error && console.warn('오류 발생!'); // 앞의 것이 false일 때만 뒤의 코드 실행 error || console.log('이상 없음.'); let x = true; // x = false; // ⭐️ &&, || 연산자는 값 자체를 반환 let y = x && 'abc'; let z = x || 123; console.log(y, z);

3. 삼항연산자 - ~ ? ~ : ~

👉 MDN 문서 보기

let x = true; // x = false; let y = x ? '참입니다.' : '거짓입니다.'; console.log(y); let num = 103247; console.log( 'num은 3의 배수' + (num % 3 === 0 ? '입니다.' : '가 아닙니다.') ); let error = true; //error = false; error ? console.error('오류 발생!') : console.log('이상 없음');


II. Truthy vs Falsy

true 또는 false평가되는 값들

1. Truthy

console.log( 1.23 ? true : false, -999 ? true: false, '0' ? true : false, ' ' ? true : false, Infinity ? true : false, -Infinity ? true : false, {} ? true : false, [] ? true : false, ); // ⚠️ true와 `같다`는 의미는 아님 console.log( 1.23 == true, ' ' == true, {} == true );

2. Falsy

console.log( 0 ? true : false, -0 ? true : false, '' ? true : false, null ? true : false, undefined ? true : false, NaN ? true : false, ); // 💡 어떤 값들은 false로 타입변환됨 console.log( 0 == false, 0 === false, '' == false, '' === false ); console.log( null == false, undefined == false, NaN == false, );


let x = 0; let y = 1; x && x++; y && y++; console.log(x, y); let x = 2; let y = 3; console.log( x % 2 ? '홀' : '짝', y % 2 ? '홀' : '짝' );


let x = ''; let y = '회사원'; let z = x || y; console.log(z); x = x || '단기알바'; y = y || '단기알바'; console.log(x, y);

💡 boolean으로 직접변환

// 한 번 부정 console.log( !1, !-999, !'hello', !0, !'', !null ); // ⭐️ 두 번 부정하여 해당 boolean값으로 console.log( !!1, !!-999, !!'hello', !!0, !!'', !!null ); let x = 123; console.log( 'x는 홀수인가?', !!(x % 2) );

🤔얄코에게 질문하기질문은 반.드.시 이리로 보내주세요! ( 강의사이트 질문기능 ✖ )

강의에서 이해가 안 되거나 실습상 문제가 있는 부분,
설명이 잘못되었거나 미흡한 부분을 메일로 알려주세요!

답변드린 뒤 필요할 경우 본 페이지에
관련 내용을 추가/수정하도록 하겠습니다.

이메일 주소
yalco@yalco.kr
메일 제목 (반드시 아래 제목을 붙여넣어주세요!)
[질문] 제대로 파는 자바스크립트 (무료 파트) 2-7

🛑질문 전 필독!!

  • 구글링을 먼저 해 주세요. 들어오는 질문의 절반 이상은 구글에 검색해 보면 1분 이내로 답을 찾을 수 있는 내용들입니다.
  • 오류 메시지가 있을 경우 이를 구글에 복붙해서 검색해보면 대부분 짧은 시간 내 해결방법을 찾을 수 있습니다.
  • 강의 페이지에 추가사항 등 놓친 부분이 없는지 확인해주세요. 자주 들어오는 질문은 페이지에 추가사항으로 업데이트됩니다.
  • "유료파트의 강의페이지는 어디 있나요?" - 각 영상의 시작부분 검은 화면마다 해당 챕터의 강의페이지 링크가 있습니다.
  • 질문을 보내주실 때는 문제가 어떻게 발생했고 어떤 상황인지 등을 구체적으로 적어주세요. 스크린샷을 첨부해주시면 더욱 좋습니다.
🌏 Why not change the world?