Marais.lee
Welcome to Marais's IT Home
Marais.lee
전체 방문자
오늘
어제
  • 분류 전체보기 (87)
    • co-task 프로젝트 (7)
    • Study (28)
      • 자바스크립트 (5)
      • 모던 리액트 Deep Dive (7)
      • 용어 (1)
      • 컴퓨터과학 (2)
      • 코테 (12)
      • 네트워크 (0)
    • 개발 환경 (3)
    • Next.js (pages router) (9)
    • Next.js (app router + 14v) (4)
    • TypeScript (11)
    • 라이브러리 (8)
    • 후기 및 고민 (10)
    • 맥북관련 셋팅 및 오류 (4)
    • Obsidian | 옵시디언 (1)
반응형

인기 글

최근 글

블로그 메뉴

  • 홈
  • 태그
  • 방명록
250x250
hELLO · Designed By 정상우.
Marais.lee

Welcome to Marais's IT Home

Study/자바스크립트

[#2] 복습하는 자바스크립트 with <코딩자율학습 제로초의 자바스크립트 입문>

2024. 7. 10. 13:50
728x90

1. 고차함수 (코드 정리)

let num1 ='';
let num2 ='';
let operator ='';
const $result = document.querySelector('#result');

// #1
const onClickNum = (number) => {
    return () => { // return 안쓸 경우 'return undefined;'가 생략되어있기 때문에 결과 값이 'undefined'가 됨
      (event) => { // () => {} 함수를 return에 넣어주면 해당 함수가 바로 실행됨 => 고차함수
          if (operator) {
              Number(num2) += number;
          }else{
              Number(num1) += number;
          }
      $result.value = '';
    }
}

// #2 
const onClickNum = (number) => (event) => { // '{} + return' 은 생략 가능
     if (operator) {
        Number(num2) += number;
      }else{
        Number(num1) += number;
      }
   $result.value = '';
}

document.querySelector('#num-0').addEventListener('click', onClickNum('0'));

1-2. 고차함수 없이

let num1 ='';
let num2 ='';
let operator ='';
const $operator = document.querySelector('#operator');
const $result = document.querySelector('#result');

const onClickNum = (event) => {
     if (operator) {
        Number(num2) += event.target.textContent; // span 안에 글자를 가져오는 코드
      }else{
        Number(num1) += event.target.textContent;
      }
   $result.value = '';
}

document.querySelector('#num-0').addEventListener('click', onClickNum);

</br/>

2. if 문 중첩 피하기 (코드 정리)

a) if 문 다음에 나오는 공통된 절차를 각 분기점 내부에 넣는다.

b) 분기점 중 짧은 코드가 먼저 실행되도록 if 문을 작성한다.

c) 짧은 절차가 끝나면 return;(함수 내부)이나 break;(for문 내부)로 중단한다.

d) else를 제거한다. (이때 중첩이 하나가 된다.)

아래의 코드를 가지고 a~d과정을 적용해보았다.

 const onClickNum = (event) => {
            if (operator) {
                if (!num2) {
                    $result.value = '';
                }
                num2 += event.target.textContent;
            } else {
                num1 += event.target.textContent;
            }
            $result.value += event.target.textContent;
 };
// a

            if (operator) {
                if (!num2) {
                    $result.value = '';
                }
                num2 += event.target.textContent;
                $result.value += event.target.textContent;
            } else {
                num1 += event.target.textContent;
                $result.value += event.target.textContent;
            }

// b
            if (!operator) {
                num1 += event.target.textContent;
                $result.value += event.target.textContent;
            } else {
                if (!num2) {
                    $result.value = '';
                }
                num2 += event.target.textContent;
                $result.value += event.target.textContent;
            }

// c
            if (!operator) {
                num1 += event.target.textContent;
                $result.value += event.target.textContent;
                return;
            } else {
                if (!num2) {
                    $result.value = '';
                }
                num2 += event.target.textContent;
                $result.value += event.target.textContent;
            }
// d
           if (!operator) {
                num1 += event.target.textContent;
                $result.value += event.target.textContent;
                return;

           if (!num2) {
                $result.value = '';
           }
           num2 += event.target.textContent;
           $result.value += event.target.textContent;
728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Study > 자바스크립트' 카테고리의 다른 글

[#5] 복습하는 자바스크립트 with <코딩자율학습 제로초의 자바스크립트 입문>  (0) 2024.07.28
[#4] 복습하는 자바스크립트 with <코딩자율학습 제로초의 자바스크립트 입문>  (0) 2024.07.22
[#3] 복습하는 자바스크립트 with <코딩자율학습 제로초의 자바스크립트 입문>  (1) 2024.07.10
복습하는 자바스크립트 with <코딩자율학습 제로초의 자바스크립트 입문>  (0) 2024.06.15
    'Study/자바스크립트' 카테고리의 다른 글
    • [#5] 복습하는 자바스크립트 with <코딩자율학습 제로초의 자바스크립트 입문>
    • [#4] 복습하는 자바스크립트 with <코딩자율학습 제로초의 자바스크립트 입문>
    • [#3] 복습하는 자바스크립트 with <코딩자율학습 제로초의 자바스크립트 입문>
    • 복습하는 자바스크립트 with <코딩자율학습 제로초의 자바스크립트 입문>
    Marais.lee
    Marais.lee
    구글링으로 한국어로 된 글을 찾지 못했거나 이해하는데 어려움이 있었던 이슈를 공유합니다.

    티스토리툴바