: &&는 모든 조건이 참일 때 참이라고 생각해도 무방하나 정확히는 피연산자 중에서 falsey인 값을 먼저 찾으면 반환한다. 만약 못 찾으면 마지막을 반환한다.
const a = 0
const b = true
if (a && b)
console.log('wow!')
}
console.log(a && b)
// console: 0
0은 falsy이기때문에 falsy인 0을 반환한다.
const divEL = document.querySelector('div') // .querySelector는 찾지 못하면 null을 반환한다.
divEl && divEl.addEbentListener('~')
// 없으면 null인데, null은 Falsy라 그냥 그자리에서 반환하고 끝남.
// 만약 못찾았을 때를 대비해서 이런식으로 작성하면 에러를 한번 거를 수 있음
if (divEl) {
divEl.addEbentListener('~')
}
//이렇게 풀어서도 쓸 수 있다.
가장 먼저 찾은 truthy를 반환, 만약 못 찾으면 마지막을 반환한다.
truthy면 false
로, falsy면 true
로 바뀜
조건 ? 2항 : 3항
const a = 123
function hello() {
console.log('hello~')
}
a ? hello() : null
// 물음표 앞: truthy니? falsy? trythy면 1번위치 falsy면 2번위치
a
? a === 1 ? hello() : null
: null
// 이런 중첩도 가능..근데 보통 삼항연산자는 중첩을 권장하지않음
조건이 어떤 값으로 딱 떨어질 때 사용하면 좋음
조건 다음, 다음 조건을 쓸 때
break를 꼭 써준다.
swithch (event.key) {
case 'Enter': //콜론 기호가 뒤에 있다는 점 숙지, 값 뒤에 존재한다.
break
case 'Escape':
console.log('WoW!!!!)
break
case 'Shift':
console.log('WoW!!!!)
break
default:
//다 아닐때 default 실행, default에서 브레이크는 필요없음
}
for
for of - 배열 반복
for in - 객체 반복
for (시작; 종료; 변화) {}
for (시작조건; 종료조건; 변화조건) {
}
const ulEl = document.querySelector('ul')
//메모리상에서 보여지는 부분임.
for (let i = 0; 1 < 10; i += 1) {
const liEl = document.createElement('li') //요소를 만들어라
liEl.textContent = i // 반복해서
ulEl.appendChild(liEl)
}
// 0 1 2 3 4 5 6 7 8 9
배열에있는 각각의 아이템을 특정 변수에 담아서 출력 할 수 있다.
const users = [
{ name: 'Yejin', age: 85 },
{ name: 'amy', age: 22 },
{ name: 'jin', age: 8 },
]
for (const user of users) {
console.log(user)
}
// of로 users에있는 데이터를 가져올 수 있음
// 단순 포문 ver, 복잡해짐
for (let i = 0; i < users.length; i +=1) {
console.log(users[i])
}
객체데이터에 속성 값 키밸류 조회할 수 있음
const user = {
name: 'yejin';
age: 85;
}
for (const key in user) {
console.log(user[key])
}
조건이 truthy면 무한반복
종류: while문, do while문
while (조건) {}
let i = 0 // 시작 조건
while (i < 3) { //종료 조건
console.log(i)
i += 1 // 변화 조건
}
// do while
// 명령이 while 앞에 있음
let j = 0 // 시작
do {
console.log(j)
j += 1 // 변화 조건
} while (j < 3) // 종료
while문은 값이 falsy면 반복하지 않음
do while은 값이 falsy여도 최소 1번은 작동함.
let i = 0
while (false) {
console.log(i)
i += 1
}
// do while
let j = 0
do {
console.log(j)
j += 1
} while (false)
// console 창 0