TIL 010 JavaScript:演算子
32792 ワード
1. String concatenation
console.log('my' + 'cat');
console.log('1' + 2);
console.log(`string literals: 1 + 2 = ${1 + 2}`);
2. Numeric operators
console.log(1 + 1); //add
console.log(1 - 1); //substract
console.log(1 / 1); //devide
console.log(1 * 1); //multiply
console.log(5 % 2); //remainder
console.log(2 ** 3); //exponentiation
3. Increment operators
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 : ${preIncrement}, 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); //false
console.log(10 <= 6); //false
console.log(10 > 6); //ture
console.log(10 >= 6); //ture
6. Logical perators: || or , && and, ! not
const value1 = false;
const value2 = 4 < 2;
//or 연산자는 처음으로 true가 나오면 거기서 멈춘다! 그래서 함수와 같이 연산을 많이하는 것을 뒤로 넣어야 효율적임
console.log(`or: ${value1 || value2 || check()}`);
//and도 헤비한 오퍼레이션을 뒤로 보내는 것이 좋다.(하나만 false여도 false기 때문에..!)
console.log(`and: ${value1 && value2 && check()}`);
function check(){
for (let i = 0; i < 10; i++){
console.log('yay!')
}
return true;
}
//not 연산자는 값을 반대로 바꾸어줌
console.log(!value1); //true
7.Equality
const stringFive = "5";
const numberFive = 5;
//== loose equality, with type conversion
console.log(stringFive == numberFive); //ture
console.log(stringFive != numberFive); //flase
//=== strict equality, no type conversion
console.log(stringFive === numberFive); //false
console.log(stringFive !== numberFive); //true
//object equality by reference
const somi1 = { name: 'somi' };
const somi2 = { name: 'somi' };
const somi3 = somi1;
console.log(somi1 == somi2); //false reference 값이 다르다.
console.log(somi1 === somi2); //false
console.log(somi1 === somi3); //ture
quiz
console.log(0 == false); //t 0, null, empty string, undefined는 모두 false로 간주될 수 있다.
console.log(0 === false); //f 하지만 타입은 불리언이 아니기 때문에 false
console.log('' == false); //t
console.log('' === false); //f
console.log(null == undefined); //t 특이하지만 true!
console.log(null === undefined); //f
8. Conditional operators: if
//if, else, if else
const name = 'somi';
if (name === 'somi') {
console.log('welcome Somi');
} else if (name === 'coder') {
console.log('you are an amazing coder');
} else {
console.log('unknown');
}
9. Ternary operator: ?
//condition ? value1 : value2;
//간단할 때만 쓸 것
console.log(name === 'somi' ? 'yes' : 'no');
10. Switch statement
//use for multiple if checks
//use for enum-like value check
//use for multiple type checks in TS
const browser = 'Chrome';
switch (browser) {
case 'IE':
console.log('go away!');
break;
case 'Chrome':
case 'Firefox':
console.log('love you!');
break;
default:
console.log('same all');
break;
}
11. Loops
//조건이 false가 될 때까지 출력한다.
let i = 3;
while (i > 0) {
console.log(`while: ${i}`);
i--;
}
//먼저 블럭을 실행한다음 조건이 맞는지 안맞는지 검사한다. 블럭을 먼저 실행하고 싶을 때 쓴다.
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: cpu에 좋지 않아 안쓰는게 좋다
for (let i = 0; i < 10; i++) {
for (let j = 0; j <10; j++) {
console.log(`i: ${i}, j: ${j}`)
}
}
quiz
//1. 짝수만 출력하기(continue이용)
for (let i = 0; i < 11; i++) {
if (i % 2 !== 0) {
continue;
}
console.log(`q1. ${i}`)
};
//2. iterate from 0 to 10 and print numbers until reaching 8(use break)
for ( let i = 0; i < 11; i++) {
if (i > 8) {
break;
}
console.log(`q2. ${i}`)
}
Reference
この問題について(TIL 010 JavaScript:演算子), 我々は、より多くの情報をここで見つけました https://velog.io/@somangoi/TIL010-JavaScript-연산자operatorsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol