자바스크립트 기초3 operator, if, for, loop

테루·2020년 12월 5일
0

JavaScript 기초

목록 보기
3/7
post-thumbnail

Operator

Nemeric operators

console.log(1+1); // 더하기
console.log(1-1); // 빼기
console.log(1/1); //나누기
console.log(1*1); //곱하기
console.log(5%2); //나눈 나머지값
console.log(2**3); //2의 제곱

증감연산자

const preIncrement =++ counter;
counter = counter + 1;
preIncrement = counter;

counter에 1을 더하고 그 counter를 preIncremet에 할당한다.

또 다르게 쓰게 되면

const preIncrement =counter++;

이렇게 counter 뒤에 ++를 붙이면

preIncrement = counter;
counter = counter + 1;

counter를 먼저 preIncrement에 할당하고
counter에 1을 더한다.

Assignment Operators(할당연산자 =)

let x = 1;
lety = 2;
x = x+y;
위와 같이 값을 변수에 할당하려고 할때 사용하는 것이 =이다. 또한 x가 반복되는 경우는
x +=y;
x -=y;
x *=y;
x /=y;
와 같이 x를 생략하고 사용된다.

Logical Operators(논리 연산자)

||, &&, !

const value1 = true;
const value2 = 4<2;

OR일때

console.log(`or:${value1||value2||check()}`);

function check(){
  for(let i = 0; i<10; i++){
    console.log("asdfasdfasdf");
    }
    return true;
   }

OR일때 하나의 값이라도 true이면 true값을 출력한다
물론 비교할때 함수를 넣어도 상관없다

다만 조금 복잡한 함수를 비교할땐 함수를 앞에다 두지 않고 제일 마지막에 넣는 것이 좋다.
그 이유는 함수를 앞에 넣게 될 경우에는 값을 비교하는데 시간이 오래 걸리기 때문이다.

AND일때

console.log(`or:${value1 && value2 && check()}`);

function check(){
  for(let i = 0; i<10; i++){
    console.log("asdfasdfasdf");
    }
    return true;
   }

AND일때도 OR와 비슷하다 AND일때는 모든값이 true가 아니면 false값을 출력한다
만약 처음부터 value1값이 false이면 뒤의 값은 비교하지 않은체 false값을 출력하게 된다

NOT일때

!

NOT은 값을 반대로 바꾸는 특성이 있다 true면 false false이면 true로 바꾼다

동등연산자 일치연산자(==, ===)

a==b일때 ==는 두개의 값의 type을 같게 만든 후 두 값이 같은지를 검사한다.

a===b는 둘의 type과 값이 모두 같은지 검사한다

이것을 객체에서 사용할때 조금 주의깊게 봐야되는데

const ellie1 = {name: "ellie"};
const ellie2 = {name: "ellie"};
const ellie3 = ellie1;

console.log(ellie1==ellie2);
console.log(ellie1 ===ellie2);
console.log(ellie1===ellie3);

ellie1과 ellie2은 서로 다른 객체를 저장하고 있기 때문에 둘은 false값이 나오게 되고 ===를 사용해도 다른 값과 객체를 가지고 있기 때문에 false가 나오게 된다.

ellie3는 ellie1을 값으로 가지고 있기 때문에 둘을 비교했을때 true값이 나오게 된다.

조건문

if, else if, else

if(){

}else if(){

}else{

}

if값이 true이면 if안에 구문을 실행 시키게 되고 if값이 false이면 else if
else if 값이 false이면 else의 구문을 실행하게 된다.

? operators

if를 더 간단하게 사용할 수 있을 것이 ? operators이다

console.log(name ==="name" ? "yes" : "no");

name과 "name"이 같으면 "yes"
다르면 "no"을 선택하게 된다.

이 operators를 사용할 때는 정말 간단한 if구문을 사용해야 할 때가 가장 적절하다.
만약 복잡한 if구문을 만들어야 될때는 ?operators
아닌 if else구문을 사용하는 것이 코드의 가독성 면 에서도 좋다.

Switch operators


const browser = 'IE';
switch (browser){
 case 'IE':
       console.log('go away');
        break;
case 'Chrome':
   case 'Firefox':
        console.log('love you');
        break;
default :
     console.log('same all');
     break;

switch의 browser값이 IE이면 'go away'를 출력하고 'Chrome'이나 'Firefox'이면 'love you'를 출력시키고 전부 다 아니라면 'same all'를 출력시킨다.

반복문

while loop(반복문)

let i = 3;
 while(i>0){
  console.log(`while:${i}`);
  i--;
  }

i가 0보다 크면 출력하고 i를 1감소 시킨다
i가 0보다 작거나 같아질때까지 반복한다.

do while

while과 다르게 먼저 실행하고 그 다음 조건이 맞는지 확인한다.

do {
  console.log(`do while: ${i}`);
  i--;
} while(i>0);

블럭을 먼저 실행시키고 싶다면 do while을 쓰고 조건문이 맞을때만 실행하고 싶으면 while을 써야된다.

for loop(for 반복문)

for(i = 4; i>0; i--){
consol.log(`for:${i}`);
}

괄호안에 i의 초기값을 주고 조건문인 i가 0보다 클때 실행을 시킨 후 i를 1감소시킨다.
(i가 0보다 작게되거나 같아지면 종료)

초기값을 줄때 let i = 3;처럼 지역변수를 선언해서 초기값을 줄 수도 있다.
또 for 안에 또 다른 for문을 넣을 수가 있는데 이건 되도록이면 피하는게 좋다고 한다.

profile
아직은 달걀안의

0개의 댓글