반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 식물
- 개발 공부
- 어피티 독자
- 자바
- 식물 키우기
- Spring
- 정처기 실기
- 스프링AOP
- 정보처리기사 실기
- 아보카도키우기
- 식물키우기
- 아보카도 키우기
- js
- 달개비
- 삼색달개비
- 수경재배
- 아보카도
- 북클럼
- AOP
- 정보처리기사
- 어피티 7월 북클럽
- 오프라인 소모임
- 싱고니움
- springAOP
- 정처기
- 스프링
- 시나공
- 정보처리기사 공부
- 정보처리기사 합격
- 정처기 공부
Archives
- Today
- Total
deblog
[JavaScript] flag변수란? 본문
반응형
flag변수란 무엇일까?
플래그(flag)란 깃발이라는 뜻인데, 컴퓨터에서 무언가를 기억하거나 또는 다른 프로그램에게 약속된 신호를 남기기 위한 용도로 프로그램에 사용되는 미리 정의된 비트이다.
예를 들어, 두 프로그램 사이에서 교환되고 있는 하나의 메시지 내에, 세 비트로 구성된 플래그 필드가 있다고 할 때, 이 플래그의 비트 구성은 다음과 같이 설정될 수 있다.
- 001 ("나는 별도의 메시지임"라는 의미로)
- 011 ("나는 이 메시지 내에 있는 여러 개의 데이터 중 하나임"라는 의미로)
- 111 ("나는 이 메시지의 마지막 데이터임"라는 의미로)
플래그들은 컴퓨터 프로그래밍에서 매우 자주 사용된다.
처음에는 굉장히 낯설었는데, 알고보니 boolean값 true, false값을 가진 변수였습니다.
위 그림처럼 처음에 flag변수는 true나 false값을 가질수 있다. 위 같이 다소 복잡해 보이는 제어구조를 flag변수를 이용해 처리할수 있습니다.
더러운 코드를 flag코드를 이용해 바꾸어 봅시다.
원래 코드
if (RowData.length === 0) {
alert("저장할 데이터가 없습니다.");
}else{
RowData.forEach(function (value) {
if (value.StartDtm === null || value.EndDtm === null) {
alert("날짜를 입력하세요.");
} else {
if (value.StartDtm > value.EndDtm) {
alert("마감일은 시작일 이후로 입력하세요.");
} else {
// values 전송
}
}
}
if를 이용해 계속해서 안으로 파고 드니 가독성도 좋지않고, alert가 겹쳐 404에러가 발생했다.
그야말로 어거지로 코딩하기. 이것도 힘들게 한게 유머
수정된 코드
let checkDtm = true; // flag변수
let noneDtm = true; // flag변수
if (RowData.length === 0) {
alert("저장할 데이터가 없습니다.");
}else{
RowData.forEach(function (value) {
if(value.startDtm > value.endDtm) {
checkDtm = false; // false로 변경
return; // 다시 처음으로 돌아감.
}
if(!value.startDtm || !value.endDtm){
noneDtm = false;
return;
}
}
if(!checkDtm) {
alert("마감일은 시작일 이후로 입력하세요.");
}
if(!noneDtm) {
alert("날짜를 입력하세요.");
}
}
쨘 ! 가독성있게 변했다.
flag변수를 이용해서 value validation(유효성 검사)를 해보았습니다.
다음에 할때는 꼭 생각 나겠지.
'IT > JavaScript' 카테고리의 다른 글
[JS] Array.from()이란? 쪼개서 배열로 만들고 싶을 때 ! 👌 (0) | 2021.10.28 |
---|---|
[JS] map() 메서드 (1) | 2021.09.16 |
Comments