Note
-
구조 분해 할당 (배열, 객체)Note 2020. 10. 27. 21:21
배열 기본적인 구조 분해 할당 let arr = ["hello", "world", "core", "javascript"]; let [first, second] = arr; first; // "hello" second; // "world" rest / spread 문법을 배열 분해 적용 let arr = ["hello", "world", "core", "javascript"]; let [start, ...rest] = arr; start; // "hello" rest; // ["world", "core", "javascript"] 다음과 같은 문법은 사용할 수 없다. 할당하기 전 왼쪽에는, rest 문법 이후에 쉼표가 올 수 없다. let [first, ...middle, last] = array 객체 객..
-
this, 화살표Note 2020. 10. 27. 21:15
this 키워드 this는 함수 실행 시 호출(invocation) 방법에 의해 결정되는 특별한 객체 함수 실행 시 결정되므로, 실행되는 맥락(execution context)에 따라 this는 다르게 결정된다. - 브라우저 환경에서 this는 기본적으로 window 객체를 가리킨다. - 객체의 메서드 a안의 this는 객체를 가리킨다. 위의 예제에서 다음과 같이 하면 결과가 달라진다. 호출할 때, 호출하는 함수가 객체의 메서드인지 그냥 함수인지가 중요하다. a2는 obj.a를 꺼내온 것이기 때문에 더 이상 객체의 메서드가 아닌 것이다. - this를 바꾸는 함수 메서드인 bind, call, apply를 사용하면 this는 객체를 가리킨다. - 생성자 함수에서 new를 사용하지 않고 호출하는 경우에는 ..
-
node.js와 관련 도구Note 2020. 10. 27. 21:02
런타임 - 어떤 프로그래밍 언어가 동작할 수 있는 환경(프로그램) - 자바스크립트의 대표적인 런타임으로는 브라우저, node.js NVM 개발을 하다 보면 다양한 node.js 버전에 대응해야 할 일이 발생 문제는 내가 설치한 node 버전과 테스트해야 할 node 버전이 다를 경우가 발생함 이럴 경우에 버전을 옮겨가며 지우고 설치하는 것을 반복하는 것은 매우 비효율적임, 이런 문제를 NVM이 해결 NVM은 Node Version Manager NVM을 통해 간단한 명령어로 node를 설치하고, 다양한 node version을 손쉽게 옮겨 다닐 수 있음 NPM NPM은 Node Package Manager로 일종의 앱스토어 필요한 모듈을 다운로드할 수 있는, 모듈들이 모여있는 모듈 스토어 node 모듈을..
-
재귀함수Note 2020. 10. 27. 21:00
(자연수) 리스트의 합을 구하는 알고리즘 1. 변수 sum을 0으로 초기화 2. 순차적으로 리스트의 구성요소에 접근하면서 sum을 더함 function arrSum(arr) { let sum = 0; for (let i = 0; i < arr.length; i++) { sum += arr[i]; } return sum; } 이 문제를 다른 각도에서 생각해보자. 자연수의 리스트 [10, 6, 4, 3]의 합을 구한다고 가정 1. [10, 6, 4, 3]의 합을 구하는 건 신경 쓰지 않고, 대신에 [6, 4, 3]의 합을 구하는 방법을 생각 2. [10, 6, 4, 3]보다는 [6, 4, 3]가 더 작으니 왠지 더 쉽게 풀릴 것 같다. [6, 4, 3]의 합을 구하는 방법을 알아낸다면, 이 값에 10을 더하..
-
고차함수, 콜백함수Note 2020. 10. 27. 20:50
First-class citizen(일급 객체) - 컴퓨터 프로그래밍 언어 디자인에서 일반적으로 다른 객체들에 적용 가능한 연산을 모두 지원하는 객체 일급 객체의 세 가지 특징 - 변수나 데이터에 할당할 수 있다. - 다른 함수의 인자로 전달될 수 있다. - 다른 함수의 결과로써 리턴될 수 있다. 이는 함수를 데이터(string, number, boolean, array, object)를 다루듯이 다룰 수 있다는 의미 변수에 저장할 수 있기 때문에 배열의 요소나 객체의 속성 값으로 저장하는 것도 가능하다. 변수에 함수를 할당하는 경우 const square = function (num) { return num * num; }; // square에는 함수가 저장되어 있으므로(일급 객체), 함수 호출 연산자..
-
HTMLNote 2020. 10. 27. 20:48
HTML - HyperText Markup Language의 약자 - 웹 페이지의 틀을 만드는 마크업 언어 웹 브라우저 상에서 화면에 보이는 사이트 혹은 웹 앱을 표현하는 도구 HTML은 tag들의 집합, 트리 구조 Tag: 부등호()로 묶인 HTML의 기본 구성 요소 Hello world contents here tool here 이 문서가 HTML 문서임을 명시 html 시작 태그로, 문서 전체의 틀을 구성 head 태그는 문서의 메타데이터를 선언 문서의 제목, 브라우저의 탭에 보여짐 은 해당 태그가 끝났음을 의미 body 태그는 문서의 내용은 담는 곳 heading을 의미하며, 크기에 따라 h1부터 h6까지 있음 content division을 의미, 줄 바꿈됨 줄 바꿈이 없는 content ..