JavaScript
-
Map 객체JavaScript 2022. 6. 25. 19:06
Map 객체는 키와 값의 쌍(Key : Value)으로 이루어진 컬렉션이다. 객체와 유사하지만 차이점이 존재한다. 객체를 포함한 모든 값을 키로 사용할 수 있다. 이터러블 요소 개수를 map.size로 확인한다. Map 객체를 생성해보자. Set 객체와 같은 방법으로 생성할 수 있으며, Map 생성자 함수로 생성하고 인수를 전달하지 않으면 빈 Map 객체가 생성된다. const map = new Map(); console.log(map); // Map(0) {} Map 생성자 함수는 이터러블을 인수로 전달받아 Map객체를 생성한다. 이때, 이터러블은 키와 값의 쌍으로 이루어져야 한다. const map1 = new Map([['key1', 'value1'], ['key2', 'value2']]); con..
-
Set 객체JavaScript 2022. 6. 25. 16:39
Set 객체란 중복되지 않는 유일한 값들의 집합이다. 배열과 비슷해 보이지만 다음과 같은 차이점이 존재한다. 동일한 값을 중복하여 포함하지 못한다. 요소 순서가 의미가 없다. 인덱스로 요소에 접근하지 못한다. Set은 수학적 집합을 구현하기 위한 자료구조로서, Set 객체를 통해 다양한 집합을 구현할 수 있다. 그럼 먼저 Set 객체를 생성하는 법을 알아보자. Set 객체 생성하기 Set 객체는 Set 생성자 함수로 생성한다. 함수에 인수를 전달하지 않으면 빈 Set 객체가 생성된다. const set = new Set(); console.log(set); // Set(0) {} Set 생성자 함수는 이터러블(반복 가능한)을 인수로 받아 객체를 생성한다. 이터러블의 중복된 값은 객체 요소로 저장되지 않는..
-
객체 프로퍼티 존재 확인하기JavaScript 2022. 6. 12. 16:24
코딩 테스트를 하면서 자바스크립트의 메서드를 더욱더 단단하게 공부해야겠다는 생각이 들었다. 객체에 대해서 말해보자. 객체 객체는 key와 value을 한 쌍으로 이루어진 형태이다. 특정 프로퍼티(Key) 확인하기 객체 안의 특정 프로퍼티의 존재를 확인하고 싶다면 (1) in 연산자를 사용해보자. const obj = { name: "suin", age: "18" }; console.log("name" in obj); //true in 연산자를 사용하면 해당 프로퍼티가 객체 안에 있는지 없는지를 boolean 값으로 출력해준다. (2) Reflect.has(객체, "프로퍼티") 는 ES6에서 도입된 문법으로 in 연산자와 같은 역할을 한다. const obj = { name: "suin" }; consol..
-
new 연산자와 생성자 함수JavaScript 2022. 6. 3. 17:16
객체 리터럴을 사용하면 객체를 만들 수 있다. /* 객체 리터럴 */ const user = { name : "janggu", age : 25, }; 하지만 비슷한 객체를 여러 개 만들어야 할 경우가 있을 때, 객체 리터럴을 사용하기엔 너무 많은 중복이 일어난다. 그럴 때, new연산자와 생성자 함수를 사용하여 객체의 중복을 줄여보자. 생성자 함수 constructor function 생성자 함수는 함수의 첫 글자를 대문자로 시작해야 하고, 함수 앞에 new 연산자를 붙여 실행하는 컨벤션이 있다. function User(name, age) { this.name = name; this.age = age; } const user = new User("짱구", 7); console.log(user.name)..
-
DOM 요소 선택 / 변경JavaScript 2022. 5. 16. 16:29
DOM 요소 선택 자바스크립트에서 HTML의 요소를 선택해보자. 6가지의 방법을 통해서 요소를 선택할 수 있다. 1) HTML 태그 이름으로 선택하기 getElementsByTagName() HTML 태그 이름을 이용하여 HTML 요소를 선택합니다. 위의 메서드를 사용하여 HTML요소에 접근, 생성, 변경할 수 있다. let selectTagName = document.getElementByTagName("p"); //모든 요소를 선택한다. for (let i = 0; i < selectTagName.length; i++) { //태그의 수만큼 selectTagName.item(i).style.color = "red"; } // 선택된 모든 의 텍스트 색상을 변경함. item()메서드는 해당 HTML 객..
-
[모던 자바스크립트 Deep Dive]JavaScript 2022. 5. 13. 16:11
들어가며... 출판 의도 자바스크립트가 웹페이지에서의 동작을 처리하기 위한 언어가 아니라 프론트, 백엔드에서 프로그래밍 언어로 사용할 수 있게 되면서 자바스크립트를 학습하는 방식도 변화해야한다고 생각함. → 자바스크립트의 기본 개념과 동작 원리를 깊이 있게 학습하고자 하는 독자를 위한 책 프로그래머의 역할 요구사항을 기반으로 문제 해결 방안 제시 → 코드로 구현 자신의 코드가 컴퓨터 내부에서 어떤 원리로 동작하는지 설명할 수 있어야 함. 기본 개념 문맥에 맞는 정확한 용어를 구사할 수 있는 원동력 정확한 용어를 사용해야 오해를 불러일으키지 않는 명확한 의사소통 가능해짐. → 협업의 기본이며 필수 요소 언어의 국한되지 않아 다른 언어 학습 시, 도움이됨. 동작 원리 이해 코드의 동작을 예측 가능하게 하며 ..
-
Event 알아보기JavaScript 2022. 5. 6. 15:10
Event란? 웹 브라우저가 알려주는 HTML 요소에 대한 사건의 발생을 뜻한다. 그리고 자바스크립트를 이용하여 특정 요소에 상호작용적인 반응하는 동작을 실행시킬 수 있다. Event Type / 이벤트 타입 발생한 이벤트의 종류를 나타내는 문자열로, 이벤트 명(event name)이라고도 한다. = 이벤트 종류(마우스, 키보드, HTML DOM 등을 처리하는 이벤트가 있다.) Event specification / 이벤트 명세 이벤트들의 종류가 늘어남에 따라 3가지 기준으로 나누어져 정의되고 있다. DOM Level 3 이벤트 명세 HTML5 관련 이벤트 명세 모바일 장치를 위한 명세 Event listener / 이벤트 리스너 이벤트가 발생했을 때, 그 처리를 담당하는 함수이다. 인자로 받은 값을 실..
-
클로저, 넌 누구냐?JavaScript 2022. 4. 27. 18:14
클로저란? 클로저(closure)는 중첩 함수에서 내부 함수가 소멸된 외부 함수의 맥락(context)에 접근할 수 있는 것을 가리킨다. 내부 함수가 외부 함수의 변수에 접근할 수 있는 이유 외부 함수가 종료되면 외부함수가 가지고 있던 변수도 같이 소멸된다. 그렇기 때문에 내부 함수 안에서 함수 밖의 변수를 사용할 수 없다고 생각할 수 있다. 하지만 렉시컬 환경에 의해서 내부 함수에서 외부 함수의 변수에 접근할 수 있다. 렉시컬 환경이란? 호출된 함수가 어디서 사용되었고, 주변에 어떠한 함수가 있는지 기록한 환경. -> 포함하는 식별자, 식별자에 바인딩된 값, 상위 렉시컬 환경에 대한 참조 ex) 민수는 성북구에 2년 동안 살았지만, 지금은 이사를 갔다. => 민수는 현재 성북구에 없지만 성북구에 살았던..