js - part2. 코딩의 기본 operator, if, for loop

yoon·2021년 12월 17일
0

operator

1. string concatenation

console.log('my' + ' cat'); // my cat
console.log('1' + 2); // 12
console.log(`string literals: 1 + 2 = ${1 + 2}`); // 1 + 2 = 3

2. Numeric operator

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

3. Increment and decrement operator

let counter = 2;
const preIncrement = ++counter
// counter = counter + 1;
// preIncrement = counter;
// 3
const postIncrement = counter++
// postIncrement = counter;
// counter = counter + 1;
// 4

4. Assigent operators

let x =3
let y =6
x += y // x = x+ y
x -= y
x *= y
x /= y

5. Comparison operators

< , <= , > , >=


6. Logical operators: ||(or), &&(and), !(not)

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

7. Equality

const stringFive = '5'
const numberFive = 5 
  • == : type을 신경 쓰지 않는다.
console.log(stringFive == numberFive) //true
console.log(stringFive != numberFive) //false
  • === : type 또한 같아야한다. //추천!!
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

📜 text

  • console.log( 0 == false )
    // 0은 false로 간주 -> true
  • console.log( 0 === false )
    // 0은 type이 number, false는 boolean -> false
  • console.log( '' == false )
    // 비어있는 값은 false로 간주 -> true
  • console.log( '' === false )
    // ''은 type이 string, false는 boolean -> false
  • console.log( null == undefined )
    // null과 undefined은 false로 간주 -> true
  • console.log( null === undefined )
    // null은 type이 null은, undefined는 undefined -> false

8. Conditional operators : if, else if, else

const name = 'ellie'
if(name === 'ellie') {
	console.log('Hi!!!')
} else if (name === 'coder') {
	console.log('Umm...')
} else {
	console.log('Bye~~~')
}
//Hi!!! 

9. Ternary operator : ?

//condition ? value1 : value2;
간단한 경우에 쓰기 좋음

const name = 'yoon'
console.log(name === 'yoon' ? 'yes' : 'no');
// true기 때문에 yes
//false면 no

10. swicth statement

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를 사용하는걸 고려. 가독성 좋음.


11. Loops

//let i = 3;

  • while
    조건이 true가 될때 까지 반복한다.
while (i > 0) {
	console.log(`while : ${i}`);
	i--;
    // 3 -> 2 -> 1 -> 0 //break
}
  • do while
    블럭을 먼저 실행 후 조건이 맞는지 아닌지 검사.
do {
	console.log(`do while : ${i}`);
    i--;
} while (i > 0) ;

-> 블럭을 먼저 실행하고 싶은 경우엔 do while 을,
조건이 맞을 때만 블럭을 실행하고 싶으면 while 사용.

  • for loop
    // for(begin; condition; step)
for (i = 3; i > 0; i--){
	console.log(`for : ${i}`)
}
.
for (let i = 3; i > 0; i--){
	console.log(`inline variable for : ${i}`)
}

0개의 댓글