8장 제어문부터 시작합니다.
if (조건식) {
조건1 // 조건식이 참이면 조건1이 실행됩니다.
} else {
조건2 // 조건식이 거짓이면 조건2가 실행됩니다.
};
if (조건식) {
조건1 // 조건식이 참이면 조건1이 실행됩니다.
} else if (조건식2) {
조건2 // 조건식2가 참이면 조건2가 실행됩니다.
} else {
조건3 // 조건1, 조건2가 거짓인 경우 조건3이 실행됩니다.
}
var x = 2;
var result = x % 2 ? '홀수' : 짝수';
console.log(result);
// 이걸 if else로 작성하면
var x = 2;
var result;
if (x % 2) {
console.log('홀수');
} else {
console.log('짝수');
}
console.log(x);
let value = 'B';
switch (value) {
case 'A' :
console.log('A'); // 표현식과 표현식1이 일치하면 실행
case 'B' :
console.log('B'); // 표현식과 표현식2가 일치하면 실행
default :
console.log('C'); // switch 일치되는 case가 없을 때 실행
};
let number = '4';
switch(number) {
case '1' :
console.log('1');
break;
case '2' :
console.log('2');
break;
case '3' :
console.log('3');
break;
case '4' :
console.log('4');
break;
default :
console.log('5');
break;
};
for (var i = 0; i < 2; i++) {
console.log(i);
}
let i = 0
이므로 i(0) < 2
비교이니 실행 가능합니다.i < 2
인데 현재 1 < 2
이므로 실행 가능합니다.for (let i = 2; i >= 0; i--) { // 감소연산
console.log(i);
}
for (let i = 0; i < 6; i++) {
for (let j = 0; j < 6; j++) {
if (i + j === 6) {
console.log(`${i}, ${j}`);
}
}
}
let count = 0;
while (true) {
console.log(count);
count++; // count를 증가해줍니다
if (count === 3) break; // count가 3과 같으면 멈춥니다
};
let count = 0;
do {
console.log(count);
count++;
} while (count < 3);
초기화식
do {
실행할 코드
증감식
} while (종료 조건)
let box = 0;
while (true) {
box++;
if (box === 4) break;
console.log(box);
};
// foo 레이블 식별자가 붙은 경우
foo : {
console.log(1);
break foo; // 여기에 걸면 2가 안나오고 멈춥니다
console.log(2); // 얘는 동작 못합니다
}
console.log('Done!'); // 얘는 바깥에 있으니 foo 안에 해당되지 않아서 동작합니다
outer: for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++) {
if (i + j === 3) break outer;
console.log(`{i}, {j}`);
}
}
console.log('Done!');
let string = 'Hello World';
let search = 'l';
let index;
for (let i = 0; i < string.length; i++) {
if (string[i] === search) {
index = i;
break;
};
};
console.log(index); //2
console.log(string.indexOf(search)); // 2
// string.prototype indexOf 메서드를 사용해도 같은 동작을 합니다.
let text = ''; // 빈값으로 text를 받습니다
for (let i = 0; i < 10; i++) { // i 반복문을 만듭니다
if (i === 3) continue; // i가 3과 같으면 다음으로 넘어갑니다
text = text + i; // 빈값 + i를 하면 0+1, 1+1, 2+1, 3+1 이런식으로 연산합니다
}
console.log(text); // text를 출력합니다
하나의 데이터 타입에서 다른 타입으로 변환하는 걸 타입 변환이라 합니다.
'foo' + 1
을 하면 문자열 foo
와 숫자 1
중 숫자가 변환되어 foo1
이 됩니다.
타입으로 변환된 값은 기존 값을 할당해서 사용하지 않고 한번 사용된 후 버립니다.
자세히 보기
https://developer.mozilla.org/ko/docs/Glossary/Type_Conversion
if ('') console.log(x);
if문이나 for문 같은 삼항 연산자를 true/false로 평가되는 표현식입니다.if ('') console.log('1');
if (true) console.log('2');
if (0) console.log('3');
if ('str') console.log('4');
if ('null') console.log('5');
// 실행되는 건 2, 4, 5
Truthy(참으로 평가되는 값)
과 Falsy(거짓으로 평가되는 값)
으로 구분합니다.false
, undefined
, null
, 0
,-0
, NaN
, ''
이렇게 있고 나머지는 Truthy 값입니다.