ex)
//1. String concatenation
console.log('my' + 'cat');
console.log('1' + 2);
console.log(`string literals:
''''
1+1`);
console.log("han's \n\tbook");
ex)
//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(5%2); //remainder
console.log(2**3); // exponentiation
//3.Increment and decrement operators
let counter = 2;
const preIncrement = ++counter;
//counter = counter + 1;
//preIncrement = counter;
console.log(`preIncrement: ${preIncrement}, counter: ${counter}`);
ex)
//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
ex)
//6. Logical operators: ||(or), &&(and), !(not)
const value1 = false;
const value2 = 4 < 2;
// ||(or)
console.log(`or: ${value1 || value2 || check()}`);
function check(){
for(let i = 0; i < 10; i++){
//wasting time
console.log('1');
}
return true;
}
value1이 true면 check()는 호출되지 않는다. 그러므로 무거운 연산자, 함수일수록 뒤에 두는 것이 좋다.
ex)
//7. Equality
const stringFive = '5';
const numberFive = 5;
//== loose equality, with type conversion
console.log(stringFive == numberFive);
console.log(stringFive != numberFive);
//===strict equality, no type conversion
console.log(stringFive === numberFive);
console.log(stringFive !== numberFive);
//object equality by reference
const han1 = {name: 'han'};
const han2 = {name: 'han'};
const han3 = han1;
console.log(han1 == han2);
console.log(han1 === han2);
console.log(han1 === han3);
ex)
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
ex)
//8. Conditional operators: if
//if, else if, else
const name = 'han';
if(name === 'jin'){
console.log('Welcome, jin!');
} else if(name === 'han'){
console.log('You are amazing coder');
} else{
console.log('unkwnon');
}
//9. Ternary operator: ?
//condition ? value1 : value2;
console.log(name === 'han' ? 'han' : 'jin');
ex)
//10. Switch statement
//use for multiple if checks
//use 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;
}
ex)
//11. Loops
//while loop, while the condition is truthy,
//body code is executed.
let i = 3;
while(i > 0){
console.log(`while: ${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){
console.log(`inline variable for: ${i}`);
}
ex)
//nested loops
for(let i = 0; i < 10; i++){
for(let j = 0; j < 10; j++){
console.log(`i: ${i},j: ${j}`);
}
}
//break, continue
'인터넷강의 > 자바스크립트' 카테고리의 다른 글
클래스와 오브젝트의 차이점(class vs object), 객체지향 언어 클래스 정리 (0) | 2020.09.14 |
---|---|
Arrow Function은 무엇인가? 함수의 선언과 표현 (0) | 2020.09.14 |
데이터타입, data types, let vs var, hoisting (0) | 2020.09.11 |
콘솔에 출력, 환경설정, script async 와 defer의 차이점 및 앞으로 자바스크립트 공부 방향 (0) | 2020.09.07 |
자바스크립트 역사와 현재 그리고 미래 (0) | 2020.09.07 |