// 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')
}

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

// 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}`)

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

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

let num = 7
if (num) {
console.log(num)
}
num && console.log(num)

let obj
console.log(obj && console.log('true'))

let obj
console.log(obj.name)

obj && console.log(obj.name) object가 있을때, obj.name을 실행함obj && console.log(obj.name)해당 내용은 다음 자료를 참고했습니다.
자바스크립트 기초 3. 연산자 | boolean의 모든것 && 연산자