[JavaScript] 중첩 if문을 깔끔하고 효율적으로 사용하는 방법
JavaScript 2022. 11. 6. 08:30

문제 여러 조건이 들어가 있는 함수를 만든다고 가정해보자. 단순히 if문을 이용하면 쉽게 구현될 함수이다. 우리가 알고 있는 if문은 if (조건) {수행} else {수행} ... 이런 식으로 참인 조건을 기준으로 진행된다. 하지만, 이런 방법은 중첩 if문을 만들어서 if문 안에 if문, 또 그 안에 if문... 식으로 더 복잡해질 수 있다. 이를 해결하기 위해서는, 참이 아닌 부정 조건을 기준으로 if문을 진행하면 된다. 즉, if (!조건) {return ...} 이런 식으로 return을 이용해서 먼저 예외 사항들을 걸러주는 방식인 것이다. 설명으로는 어려울 수도 있으니 직접 코드로 확인해보자! 방법 function exam(subject, state, num) { if (subject === ..

[JavaScript] undefined와 null은 무엇이 다른걸까?
JavaScript 2022. 8. 1. 19:46

문제 자바스크립트의 타입 중 undefined와 null은 공통적으로 '값을 가지고 있지 않은 상태'라는 뜻을 갖고 있다. 하지만, 우리 같은 초보 코린이들에게 다르게 생긴 두 개의 값이 하나의 같은 뜻을 가지고 있다는 건 매우 헷갈리는 문제이다. 따라서 undefined와 null이 무엇이 같고 무엇이 다른지 일목요연하게 정리할 필요가 있다. 비교 let a; console.log(a); // undefined undefined의 경우 변수를 선언할 때 변수에 아무런 값을 넣지 않은 경우 undefined가 변수의 '값'으로서 할당된다. 즉, 변수 a는 아무것도 선언한 것이 없지만 사실 따져보면 undefined라는 값이 a에 할당되어 있다고 보면 된다. 이것은 개발자가 의도적으로 할당한 값이 아닌 자..

[JavaScript] Date()를 활용한 카운트다운 타이머 만들기
JavaScript 2022. 5. 24. 21:47

What 자바스크립트로 현재 시간을 나타내는 방법은 매우 쉽다. new Date()를 이용하면 현재 날짜를 구할 수 있고, 다양한 메서드로 특정 부분만 추출한다거나 밀리초로 변환시킬 수도 있다. 특히, 이 밀리초(ms)를 잘 이용하면 날짜와 관련된 계산은 모두 가능한데, 그 중에서 특정 날짜까지 남은 일-월-분-초를 계산해주는 카운트다운 타이머를 구현해보고자 한다. How 카운트다운 타이머 구현하기 // 기본 세팅 const clock = document.createElement('h1'); document.body.appendChild(clock); // 카운트다운 타이머 구현 const Timer = (date) => { const targetDate = new Date(date).getTime();..

[JavaScript] 배열의 원소를 정렬해주는 sort() 함수
JavaScript 2022. 5. 21. 11:24

숫자 정렬하기 오름차순 정렬 (1 → 2 → 3) const arr = [2, 4, 1, 3]; // #1 arr.sort(); // [1, 2, 3, 4] // #1-1 const arr2 = [2, 4, 10, 1]; arr2.sort(); // [1, 10, 2, 4]; // #2 const compare = (a, b) => { return a - b; } arr.sort(compare); // [1, 2, 3, 4] arr2.sort(compare); // [1, 2, 4, 10] // #3 arr.sort((a, b) => { return a - b; // [1, 2, 3, 4] }) #1 : 배열의 원소가 단순히 숫자들뿐이고 오름차순으로 정렬하기 원한다면, sort()만 써줘도 무방하다. #..

[JavaScript] 클로저(Closure)란 무엇이며, 왜 쓰는걸까?
JavaScript 2022. 5. 20. 20:30

정의 클로저(Closure)란, '함수가 선언될 때 외부 함수의 렉시컬 환경을 참조하는 현상' 정도로 정의할 수 있다. 클로저의 예시를 찾아보면 외부 함수와 내부 함수가 있고, 외부 함수의 변수를 내부 함수에서 가져다가 쓰는 것을 클로저라고 설명하고 있다. 외부 함수의 변수를 쓸 수 있는 이유가 바로 외부 함수의 렉시컬 환경을 참조하기 때문이다. (우선적으로 스코프 체인의 개념을 알아야 한다. 스코프 체인이란, 식별자를 찾을 때 자신이 속한 스코프에서 찾고 없을 시 상위 스코프에서 찾는 현상을 말한다.) 클로저는 외부 함수가 return 값으로 내부 함수를 선언하고 있고, 내부 함수에서는 외부 함수의 변수를 가져다가 사용하는 것으로 되어있다. 여기서 주의할 점은 내부 함수가 외부 함수의 변수를 참조한다는..