const a = random()
if (a === 0) {
console.log('a is 0)
} else if (a === 2) {
console.log('a is 2')
} else {
console.log('rest,,,')
}
=> else if에는 조건 넣기가 가능
=> else는 그냥 나머지, 조건 넣기 불가
switch (a) {
case 0:
console.log('a is 0')
break
case 2:
console.log('a is 2')
break
default:
console.log('rest,,,')
}
=> 기본적으로는 if문 사용, 변수가 특정한 값으로 딱 떨어질 때는 switch문이 좋음
=> 한 분기가 끝날 때마다 break를 달아 줘야 함
(break가 없으면 다음 조건도 실행 할 수 있음)
for (let i = 0; i < 3; i++) {
console.log(i)
}
const ulEl = document.querySelector('ul');
for (let i = 0; i < 10; i++) {
const li = document.createElement('li');
li.textContent = `list-${i + 1}`;
if ((i + 1) % 2 === 0) {
li.addEventListener('click', function() {
console.log(li.textContent);
})
}
ulEl.appendChild(li);
};
let과 const와 달리 블럭레벨의 유효범위가 아니라 함수레벨의 유효범위임
=> 범위가 더욱 크기 때문에 의도하지 않은 범위에서 변수가 실행 될 수 있음
=> 이는 필요하지 않은 메모리차지, 메모리 누수 발생 가능
const a = '1'
const b = 1
console.log(a === b)
console.log(a == b) // 동등 연산자(권장 X)
=> 위와 같은 상황에서 동등 연산자를 사용하면 형 변환이 일어남
참과 같은 값
: true, {}, [], 1, 2, 'false', -12, '3.14'...
거짓과 같은 값
: false, '', null, undifined, 0, -0, NaN