Operator, if, for loop 코드 리뷰 (2)
7. Equality
const stringFive = '5';
const numberFive = 5;
// 타입을 무시하는 연산자, 즉 문자열인지 숫자열인지 그 안의 속성이 숫자면 문자열로 정의를 하더라도 자바스크립트는 숫자로 인식함
console.log(stringFive == numberFive);
console.log(stringFive != numberFive);
// 타입을 감안하는 연산자
console.log(stringFive === numberFive);
console.log(stringFive !== numberFive);
const ellie1 = { name: 'ellie'};
const ellie2 = { name: 'ellie'};
const ellie3 = ellie1;
console.log(ellie1 == ellie2); // ellie1, 과 2 는 서로 다른 Ref 에 할당되므로 상호 다른값으로 간주함
console.log(ellie1 === ellie2);
console.log(ellie1 === ellie3);
// Equalty - puzzler
console.log(0 == false); // 1 은 true 이고 0 은 false 로 간주, 이에 따라 결과값은 true 가 됨
console.log(0 === false); // false 는 boolean 타입이지만 0 은 숫자로 간주 즉 서로 다름
console.log('' == false); // 공백은 false 로 간주되므로 결과값은 true 가 됨
console.log('' === false); // 공백은 boolean 타입이 아니므로 결과값은 false 가 됨
console.log(null == undefined); // null 은 정해지지 않은 값이므로 결과는 true 가 됨
console.log(null === undefined); // 허나 타입은 서로 같지 않기에 결과는 false 가 됨
8. Conditional operators: if
// if, else if, else
const name = 'ellie';
if ( name === 'ellie') {
console.log('Welcome, ellie!');
} else if (name === 'coder') {
console.log('You are amazing coder');
} else {
console.log('unkwnon')
}
9. Ternary operator: ?
console.log(name === 'ellie' ? 'yes' : 'no'); // 즉 name 이 ellie 라고 물었을때 true 면 yes 를 falise 면 no 를 출력함
10. Switch statement
const browser = 'IE';
switch (browser) {
case 'IE':
console.log ('Go away!');
break;
case 'Chrome': // case 가 각각 이지만 출력값이 동일할 경우 case 를 동시에 사용하면 된다.
case 'Firefox':
console.log ('Love you!');
break;
default :
console.log ('Same all!');
break
}
11. Loops
let i = 3;
while (i > 0) {
console.log (`while: ${i}`);
i--;
}
do { // do 는 먼저 대괄호를 실행한 후 나중 while 조건을 체크한다. 즉 위에서 i 가 0 까지 순환을 했는데 현재 i 값이 0 이므로 일단 0 값을 출력한다.
console.log (`do while: ${i}`);
i--;
} while (i > 0);
for (i = 3; i > 0; i--) {
console.log(`for: ${i}`);
}
for (i = 3; i > 0; i = i - 2) {
console.log (`ìnline variable for: ${i}`);
}
for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; j++) {
console.log (`ì: ${i}, j: ${j}`);
}
}
for (let i = 0; i < 11; i++) {
if (i % 2 !==0) {
continue;
}
console.log (`q1: ${i}`);
}
for (let i = 0; i < 11; i++) {
if (i > 8) {
break;
}
console.log (`q2: ${i}`);
}