일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 연산자
- HTML
- 렛츠기릿자바스크립트
- 리액트
- 자바스크립트
- JS
- web
- 정보처리기사
- 비전공자
- 웹디자인기능사실기
- 코딩독학
- 깃
- github
- jQuery
- react
- git
- CSS
- JavaScript
- 웹디실기
- 타입스크립트
- Supabase
- 코드공유
- 세로메뉴바
- 슬라이드전환
- PROJECT
- 생활코딩
- 웹디자인기능사
- 웹퍼블리셔
- 프론트엔드
- 실기
Archives
- Today
- Total
코딩하는라민
생활코딩 Javascript #7 리팩토링(중복 제거) 본문
728x90
반응형
Javascript #7 리팩토링(중복 제거)
18. 리팩토링 중복의 제거
코드를 효율적으로 만들어서 가독성 을 높이고 유지보수를 편리하게 만드는 것.
그리고 중복된 코드를 낮추는 방향으로 코드를 개선하는 것.
→ 규모가 커지는 프로그램을 틈틈이 리팩토링을 해야 좋은 프로그램을 만들 수 있다.
1) 같은 코드를 똑같이 복사하여 버튼을 두개 만든 경우
- 두번째 버튼을 눌러도 value 값이 첫번째 버튼만 변경된다.
- 해결법 : id 값을 지우고, document.querySelector('#night_day') 부분을 전부 this 로 변경
<!-- 변경 전 -->
<input id="night_day" type="button" value="night" onclick="
if(document.querySelector('#night_day').value === 'night'){
document.querySelector('body').style.backgroundColor = 'black';
document.querySelector('body').style.color = 'white';
document.querySelector('#night_day').value = 'day';
} else {
document.querySelector('body').style.backgroundColor = 'white';
document.querySelector('body').style.color = 'black';
document.querySelector('#night_day').value = 'night';
}
">
<!-- 변경 후 -->
<input type="button" value="night" onclick="
if(this.value === 'night'){
document.querySelector('body').style.backgroundColor = 'black';
document.querySelector('body').style.color = 'white';
this.value = 'day';
} else {
document.querySelector('body').style.backgroundColor = 'white';
document.querySelector('body').style.color = 'black';
this.value = 'night';
}
">
- this 를 사용해서 해당 코드 내에서 작용하도록 변경
2) 변수 이용해서 중복 제거
- 공통된 부분을 변수로 두어 중복을 제거하여 코드를 간단하게 만들 수 있다.
<input id="night_day" type="button" value="night" onclick="
var target = document.querySelector('body');
if(this.value === 'night'){
target.style.backgroundColor = 'black';
target.style.color = 'white';
this.value = 'day';
} else {
target.style.backgroundColor = 'white';
target.style.color = 'black';
this.value = 'night';
}
">
- document.querySelector('body') 를 target 이라는 변수로 지정한 것
728x90
반응형
'Core > JavaScript' 카테고리의 다른 글
생활코딩 Javascript #9 배열과 반복문 활용 (0) | 2022.10.04 |
---|---|
생활코딩 Javascript #8 배열과 반복문 (2) | 2022.10.04 |
생활코딩 Javascript #6 조건문 (0) | 2022.10.01 |
생활코딩 Javascript #5 제어할 태그 선택 (0) | 2022.10.01 |
생활코딩 Javascript #4 데이터 타입 그리고 변수와 상수 (0) | 2022.09.29 |