배워서 남 주자 94

배열과 객체 순회

배열과 객체가 담고 있는 데이터에 접근하거나 조작(수정, 삭제 등등)을 해주기 위해 배열과 객체를 순회해야 하는 경우가 빈번하게 발생한다. 배열 순회하는 방법 for loop forEach 메소드 for of : element 접근 for in : index 접근 while 객체 순회하는 방법 for in : key 접근 Object.keys() : 객체의 keyName을 배열로 받아오기 때문에 이 배열을 활용해 객체를 순회 (또는 Object.values() 도 쓸 수 있지만 key를 받아오면 어차피 obejct[key]로 value에 접근 가능하기 때문에 굳이...?) 시작점이나 종료 지점을 지정할 수 있는 for loop를 객체를 순회할 때는 쓸 수 없기 때문에 사실상 선택지가 for in 하나 밖..

함수 선언식과 함수 표현식의 차이

자바스크립트에서 함수를 정의하는 방법은 총 세 가지가 있다. 함수 선언식 function declaration 함수 표현식 function expression 화살표 함수 arrow function 화살표 함수는 간편하게 쓸 수 있는 모양새부터 다른 두 함수 정의 방식과 아주 다르고, 함수 내부에서 this가 생성되지 않는 등 나머지 두 가지 함수 정의 방법과 다른 부분을 알겠지만, 반면 선언식과 표현식은 생김새가 너무 유사해서 대체 무슨 차이가 있어서 이 둘을 구분하는 건지 궁금했다. syntax의 미세한 차이 말고 기능적 차이가 분명 있을텐데. 그렇지 않고서야 굳이 함수를 정의하는 방법을 따로 두 가지를 만들어 놓을 이유가 없을 테니 말이다. 함수 선언식 syntax: function foo (arg..

배열의 오름차순 정렬과 버스정류장 도착정보표시

코드를 짜다보면 배열 안의 요소를 오름차순, 내림차순 정렬을 해야 할 일이 종종 생긴다. 정렬의 동작은 아주 간단하다. sort() 메소드를 써주면 된다. const arr = [2, 5, 7, 1, 4, 6, 3, 8, 9]; arr.sort(); console.log(arr); // [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] 하지만 의외로 복병이 숨어 있다. 바로 아래와 같은 경우다. const array = [13, 7, 49, 2, 5, 91, 8, 63, 15, 1, 24]; array.sort(); console.log(array); // [ 1, 13, 15, 2, 24, 49, 5, 63, 7, 8, 91 ] 우리의 상식으로는 [1, 2, 5, 7, 8, 13, 15, 24, 4..

JavaScript의 치명적 버그

자바스크립트에서 자료형은 크게 원시형(Primitive data type)과 참조형(Reference data type) 두 가지로 나뉜다. 원시형에는 우리가 잘 아는 문자열(string)과 숫자(number), 참(true)과 거짓(false) 두 가지 판별값을 가지는 불리언(boolean)이 있고, 이 세 가지 자료형 외에도 undefined와 null이 있다. 그리고 참조형에는 그 유명한 객체(object)가 있다. 그리고 개별 데이터가 어떤 자료형에 속하는지를 typeof 연산자를 통해 쉽게 알아볼 수 있다. 바로 아래와 같이. console.log(typeof "calender"); // string console.log(typeof 2022); // number console.log(typeo..