JavaScript
operator, if, for loop
김꼬알
2023. 6. 5. 17:05
Operator
1. String concatenation
console.log('my' + 'cat'); // my cat
console.log('1' + 2); // 12
console.log(`string literals: 1 + = ${1 + 2}`); // string literals: 1 + 2 = 3
console.log("ellie's \n \tbook"); // \n 줄바꿈, \t 탭
2. Numeric operators
console.log(1 + 1); // add
console.log(1 - 1); // substract
console.log(1 / 1); // divide
console.log(1 * 1); // multiply
console.log(1 % 1); // reminder
console.log(1 ** 1); // exponentiation
3. Increment and decrement operators
let counter = 2;
const preIncrement = ++counter;
// counter = counter + 1;
// preIncrement = counter;
const postIncrement = counter++;
// postIncrement = counter;
// counter = counter + 1;
const preDecrement = --counter;
const postDecrement = counter--;
4. Assignment operators
let x = 3;
let y = 6;
x += y; // x = x + y;
x -= y; // x = x - y;
x *= y; // x = x * y;
x /= y; // x = x / y;
5. Comparison operators
console.log(10 < 6); // less than
console.log(10 <= 6); // less than or equal
console.log(10 > 6); // greater than
console.log(10 >= 6); // greater than or equal
6. Logical operators: || (or), && (and), ! (not)
- || (or), finds the first truthy value
console.log(`or: ${value1 || value2 || check()}`);
function check() {
for (let i = 0; i < 10; i++) {
console.log('!!!');
}
return true;
}
// 맨 첫번째 값부터 확인해서 true 가 나오면 뒤에 값이나 함수는 확인하지 않음
// 따라서 심플한 값을 앞으로, 헤비한 연산, 함수는 뒤쪽으로 배치하는 것이 좋음
- && (and), finds the first falsy value
console.log(`or: ${value1 && value2 && check()}`);
function check() {
for (let i = 0; i < 10; i++) {
console.log('!!!');
}
return true;
}
// 간편하게 null을 체크할 때 사용 가능
// nullableObject && nullableObject.something
if (nullableObject != null) {
nullableObject.something;
}
- ! (not), 값을 반대로 변경
console.log(!value1);
7. Equality
const stringFive = '5';
const numberFive = 5;
// == loose equality, with type conversion
console.log(stringFive == numberFive); // true
console.log(stringFive != numberFive); // false
// === strict equality, no type conversion
console.log(stringFive === numberFive); // false
console.log(stringFive !== numberFive); // true
// object equality by reference
const ellie1 = {name: 'ellie'};
const ellie2 = {name: 'ellie'}; // ellie1과 ellie2는 다른 오브젝트
const ellie3 = ellie1; // ellie3은 ellie1과 같은 레퍼런스를 가지고 있음
console.log(ellie1 == ellie2); // false
console.log(ellie1 === ellie2); // false
console.log(ellie1 === ellie3); // true
console.log(0 == false); // true
console.log(0 === false); // false
console.log('' == false); // true
console.log('' === false); // false
console.log(null == undefined); // true
console.log(null === undefined); // false
Conditional operators
1. 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('unknown');
}
2. Tenary operator
// condition ? value1 : value2;
console.log(name === 'ellie' ? 'yes' : 'no');
3. Switch statement
- use for multiple if checks
- use for for enum-like value check
- use for multiple type checks in TS
const browser = 'IE';
switch (browser) {
case 'IE':
console.log('go away!');
break;
case 'Chrome':
console.log('love you!');
break;
case 'Firefox':
console.log('love you!');
break;
default:
console.log('same all!');
break;
}
4. Loops
// while loop, while the condition is truthy, body code is executed
let i = 3;
while (i > 0) { // ( ) 안의 조건이 만족할 때까지 반복
console.log(`while: ${i}`);
i--;
}
// while: 3
// while: 2
// while: 1
// do while loop, body code is executed first, then check the condition
do { // do 안의 블럭을 먼저 실행한 후 while 의 조건이 맞는지 확인
console.log(console.log(`do while: ${i}`);
i--;
} while ( i > 0);
// do while: 0
// 블럭 안을 먼저 실행하고 싶으면 do while, 조건에 맞는 것만 실행하고 싶으면 while
5. for
for(begin; condition; step)
for (i = 3; i > 0; i--) {
console.log(`for: ${i}`);
}
// for: 3
// for: 2
// for: 1
for (let i = 3; i > 0; i = i - 2) {
// inline variable declaration
console.log(`inline variable for: ${i}`);
}
// inline variable for: 3
// inline variable for: 1
6. nested loop
for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; j++) {
console.log(`i: ${i}, j: ${j}`);
}
}
// break(loop를 완전히 끝내는 것), continue(현재 반복문을 종료하고 다음 문장 실행)
// Q1. 1~10 까지의 숫자 중 짝수인 숫자만 프린트하기(continue) 사용
for (let i = 1; i <= 10; i++) {
if (i % 2 === 0) {
continue;
}
console.log i;
}
// Q2. 1~10 까지의 숫자를 프린트하다가 8을 만나면 종료하는 코드 작성(breaK) 사용
for (let i = 1; i <= 10; i++) {
} if ( i > 8 ) {
break;
}
console.log i;
}