1. String concatenation
console.log('my'+'cat');
console.log('1'+2);
console.log(`string literals: 1 +2 = ${1 + 2}`);
string literals 장점_ 줄바꿈이나 중간에 ''를 이용해도 그대로 문자열로 변환됨
(\' : 문자열 \n : 줄바꿈 \t : tab)
2. Numeric operators
console.log(1+1); //add
console.log(1-1); //substract
console.log(1*1); //multiply
console.log(1/1); //divide
console.log(1%1); //remainder
console.log(1**1); //exponentiation
3. Increment and decrement operators
pre vs post
let counter =2;
const preIncrement = ++counter;
//counter = counter +1; -> preIncrement = counter;
console.log(`preIncrement: ${preIncrement}, counter: ${counter}`);
const postIncrement = counter++;
//postIncrement = counter; -> counter = counter +1;
console.log(`postIncrement: ${postIncrement}, counter: ${counter}`);
const preDecrement = --counter;
console.log(`preDecrement: ${preDecrement}, counter: ${counter}`);
const postDecrement = counter--;
console.log(`postDecrement: ${postDecrement}, counter: ${counter}`);
4. Assignment operators
let x =3;
let y =6;
x += y; // x = x + y;
x -= y;
x *= y;
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 operator: ||(or), &&(and), !(not)
const value1 = true;
const value2 = 4 < 2; //false
| | (or)_ finds the first truthy value 하나만 true여도(처음 true이면) true출력, 그이상 불필요한 실행
_ 간단한 값을 먼저실행하게 앞으로
console.log(`or: ${value1 || value2 || check()}`);
//└ true └ false └ true
function check(){
for(let i=0; i<20; i++){
//wasting time
console.log('-');
}
return true;
}
&& (and)_ finds the first falsy value 하나만 false여도 false출력, 그이상 불필요한 실행
often used to compress long if-statement
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'};
const ellie3 = ellie;
console.log(ellie1 == ellie2); //false
console.log(ellie1 === ellie2); //false
console.log(ellie1 === ellie3); //true
equlity -puzzler
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
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('unknown');
}
9. Ternary operator: ? 간단하게 쓰기, 반복사용x
condition? value1: value2;
console.log(name === 'ellie'? 'yes':'no');
10. Switch statement_ if, else를 반복하기보다 switch사용
use for multiple if checks
use for enum-like value check
use for multiple type checks in TS
const brower = 'IE';
switch(brower){
case 'IE':
console.log('go away!');
break;
case 'Chrome':
case 'Firefox':
console.log('love you!');
break;
default:
console.log('same all!');
break;
}
11. Loops
while loop, while the condition is truthy, body code is executed.
let i =3;
while (i>0){
console.log(`whild:${i}`);
i--;
}
do while loop, body code is executed first, then check the condition.
do{
console.log(`do while: ${i}`);
i--;
}while(i>0);
for loop, for(begin; condition; step)
for(i=3; i>0; i--){
console.log(`for:${i}`);
}
내부지역변수 작성
for(let i=3; i>0; i=i-2){
//inline variable declaration_지역변수 선언
console.log(`inline variable for: ${i}`);
}
nested loops_비추
for(let i = 0; i<10; i++){
for(let j = 0; j<10; j++){
console.log(`i:${i}, j:${j}`);
}
}
break, continue
Q1. iterate from 0 to 10 and print only even SVGAnimatedNumberList(use continue)
for(let i =0; i<=10; i++){
if(i%2===0){
console.log(`q1. ${i}`);
}
}
Q2. iterate from 0 to 10 and print numbers until reaching 8 (use break)
for(let i=0; i<=10; i++){
if(i>8){
break;
}
console.log(`q2.${i}`);
}
'JS > [드림코딩] 엘리 (완)' 카테고리의 다른 글
06강. class vs object, 객체지향 언어 클래스 정리 (0) | 2020.07.02 |
---|---|
05강. Arrow function, 함수의 선언과 표현 (0) | 2020.07.01 |
03강. 데이터타입, data types, let vs var, hoisting (0) | 2020.07.01 |
02강. console출력, script async와 defer차이점 (0) | 2020.06.29 |
01강. 자바스크립트의 역사와 현재 그리고 미래 (0) | 2020.06.29 |