console.log('my' + ' cat'); // my cat
console.log('1' + 2); // 12
console.log(`string literals: 1 + 2 = ${1 + 2}`); // 1 + 2 = 3
console.log(1 + 1); //2
console.log(1 - 1); //0
console.log(1 / 1); //1
console.log(1 * 1); //1
console.log(5 % 2); //1
console.log(2 ** 3); //(2에 3승) 8
let counter = 2;
const preIncrement = ++counter
// counter = counter + 1;
// preIncrement = counter;
// 3
const postIncrement = counter++
// postIncrement = counter;
// counter = counter + 1;
// 4
let x =3
let y =6
x += y // x = x+ y
x -= y
x *= y
x /= y
< , <= , > , >=
const value1 = true;
const value2 = 4 < 2;
- || (or), find the first truthy value
or 연산자는 처음으로 true가 나오면 거기서 멈춘다.
만약 value1이 true였다면 뒤에는 연산하지 않는다.
여기서 주의해야 할 점은 check()와 같이 복잡한 연산이 필요한 함수같이 무거운 것들을 앞에두면 안된다. 간단한 것들을 앞에 두고 앞에 있는 것들이 false일 떄만 마지못해 출력하는 것이 바람직하다.
console.log(`or: ${value1 || value2 || check()}`) //or : true . function check() { for (let i = 0; i < 10; i++){ //..... console.log('😓') } return true; }
- && (and), find the first falsy value
모든 조건이 true가 되어야지 return한다.
처음으로 false가 나오면 뒤의 조건이 true여도 false 출력.
or과 마찬가지로 헤비한 것들은 뒤에 놓는 것이 좋다.
console.log(`or: ${value1 || value2 || check()}`) //and : false
간단하게 null 체크할 때도 사용한다.
nullableObject && nullableObject.something . 를 풀어 쓰면 . if (nullableObject != null){ nullableObject.something }
- ! (not)
console.log(!value1) // false
const stringFive = '5'
const numberFive = 5
console.log(stringFive == numberFive) //true
console.log(stringFive != numberFive) //false
console.log(stringFive === numberFive) //false
console.log(stringFive !== numberFive) //true
- object equality by reference
const ellie1 = { name: 'ellie' }; const ellie2 = { name: 'ellie' }; const ellie3 = ellie1; . ellie1과 2는 각각 다른 reference가 저장되어 있기 때문에 같지 않다. -> false console.log(ellie1 == ellie2) //false console.log(ellie1 === ellie2) //false console.log(ellie1 === ellie3) //true
const name = 'ellie'
if(name === 'ellie') {
console.log('Hi!!!')
} else if (name === 'coder') {
console.log('Umm...')
} else {
console.log('Bye~~~')
}
//Hi!!!
//condition ? value1 : value2;
간단한 경우에 쓰기 좋음
const name = 'yoon'
console.log(name === 'yoon' ? 'yes' : 'no');
// true기 때문에 yes
//false면 no
const browser = 'IE'
.
switch (browser) {
case 'IE';
console.log('go away'!);
break;
case 'Chrome';
case 'Firefox';
console.log('love you!');
break;
default
console.log('Happy day!');
break;
}
같은 값을 출력하는 경우 case를 중첩해서 쓸수 있다.
if, else if를 반복적으로 사용하는 경우 switch를 사용하는걸 고려. 가독성 좋음.
//let i = 3;
while (i > 0) {
console.log(`while : ${i}`);
i--;
// 3 -> 2 -> 1 -> 0 //break
}
do {
console.log(`do while : ${i}`);
i--;
} while (i > 0) ;
-> 블럭을 먼저 실행하고 싶은 경우엔 do while 을,
조건이 맞을 때만 블럭을 실행하고 싶으면 while 사용.
for (i = 3; i > 0; i--){
console.log(`for : ${i}`)
}
.
for (let i = 3; i > 0; i--){
console.log(`inline variable for : ${i}`)
}