-
우아한테크캠프 Day15우아한테크캠프 2018. 7. 23. 08:20
오늘은 개인적으로 너무 배우고 싶었던 자바스크립트를 배웠다.
시간상 많은 것을 배우진 못했지만, 자바스크립트의 매력을 충분히 느낄 수 있었다.
앞으로 틈틈이 공부해야겠다.
[간단한 개념정리]
함수 호이스팅 : Hoist(끌어올리기), 해당 Scope에서 최상위에 위치시키는 것
실행 컨텍스트 : 실행 단위 (함수가 실행되면 실행 컨텍스트가 만들어진다.)
※ 콜 스택 : 실행 컨텍스트가 쌓이는 스택 (디버깅에 쓰임)
스코프 체인 : 추후 추가 예정
클로저 : 추후 추가 예정
this : 추후 추가 예정
프로토타입과 프로토타입 체이닝 : 추후 추가 예정
실행 컨텍스트 생성 과정
1. 실행 컨텍스트가 생성되면 자바스크립트 엔진은 해당 컨텍스트에서 필요한 여러가지 정보를 담을 객체를 생성한다. 이를 활성 객체(=변수 객체)라고 부른다.
2. arguments 객체를 생성한다. (함수의 파라미터를 담아 둔다.)
3. 스코프 정보 생성
4. 변수 생성
5. this 바인딩
6. 코드 실행
Day15 학습 내용
자바스크립트에서는 함수도 객체다!!!
자바스크립트에서 함수는 하나의 값으로 취급된다.
자바스크립트의 기본 개념
약한 타입의 언어(weakly typed language)
약한 타입의 언어는 런타임시에 오류를 확인할 수 있다.
literal 표현
var o = { p1 : 2, p2 : "2"} // 객체의 리터럴 표현
var a = [1, 2, 3, 4] // 배열 객체의 리터럴 표현
데이터 타입
null과 undefined라는 2가지 추가적인 데이터 타입을 지원한다.
자바스크립트도 객체지향을 지원하는 만큼 객체(object)라는 데이터 타입을 지원한다
또한 자바스크립트에서 object 타입만큼 중요한 데이터 타입이 있는데, 바로 함수(function) 객체다.
이 밖에도 날짜/시간(Date), 정규식(RegExp) 같은 타입이 있다.
primitive 타입 : number, string, boolean, null, undefined
객체, 배열
함수
기타 : 날짜, 정규식 등
함수
자바스크립트에서는 함수를 정의하는 3가지 방법이 있다.
함수 선언문
function add(x, y) {
return x + y;
}
함수 표현식 -> 권장 (함수 호이스팅 때문)
let add = function add(x, y) {
return x + y;
}
Function( ) 생성자 함수
let add = new Function('x', 'y', 'return x + y');
javascript에서 forEach, map, reduce 차이점
공통점 : 배열을 이용한다. 배열의 값을 조작해서 원하는 결과를 도출하는데 의미가 있다.
forEach : return 값이 없다.
map : return 값이 있다.
reduce : 배열이 아니라 하나의 값으로 출력한다. 이전 값과 현재 값을 연산한 값을 출력한다.
(하나의 결과로 합치고 싶을 때 사용하는 함수)
※ reduce의 인자로는 총 4개(이전값, 현재값, index, 배열)를 받을 수 있다.
for... in vs for... of 차이
for (let index in arr) { }로 하면 배열의 인덱스를 활용 할 수 있다.
for (let key in object) { }로 하면 오브젝트의 키를 활용 할 수 있다.
ex) var arr = [3, 5, 7];
arr.foo = "hello";
for (let index in arr) {
console.log(index);
}
for (var index of arr) {
console.log(index); // "3", "5", "7"
}
함수 객체의 기본 프로퍼티
함수 객체만의 표준 프로퍼티
참고
http://jusungpark.tistory.com/27
'우아한테크캠프' 카테고리의 다른 글
우아한테크캠프 Day20 (0) 2018.07.27 우아한테크캠프 Day17 (0) 2018.07.25 우아한테크캠프 Day14 (0) 2018.07.20 우아한테크캠프 Day13 (0) 2018.07.18 우아한테크캠프 Day12 (0) 2018.07.17