본문 바로가기

분류 전체보기89

#6. Arrow Function 1. 화살표 함수의 선언 화살표 함수(Arrow function)는 function 키워드 대신 화살표(=>)를 사용하여 보다 간략한 방법으로 함수를 선언할 수 있다. 하지만 모든 경우 화살표 함수를 사용할 수 있는 것은 아니다. 화살표 함수의 기본 문법은 아래와 같다. // 매개변수 지정 방법 () => { ... } // 매개변수가 없을 경우 x => { ... } // 매개변수가 한 개인 경우, 소괄호를 생략할 수 있다. (x, y) => { ... } // 매개변수가 여러 개인 경우, 소괄호를 생략할 수 없다. // 함수 몸체 지정 방법 x => { return x * x } // single line block x => x * x // 함수 몸체가 한줄의 구문이라면 중괄호를 생략할 수 있으며 암.. 2020. 2. 1.
#5. 함수 호출 방식에 의해 결정되는 this 자바스크립트의 함수는 호출될 때, 매개변수로 전달되는 인자값 이외에, arguments 객체와this를 암묵적으로 전달 받는다. arguments 객체 함수는 객체이다. 따라서 함수도 프로퍼티를 가질 수 있다. arguments 객체는 함수 호출 시 전달된 인수(argument)들의 정보를 담고 있는 순회가능한(iterable) 유사 배열 객체(array-like object)이며 함수 내부에서 지역변수처럼 사용된다. 즉, 함수 외부에서는 사용할 수 없다. function multiply(x, y) { console.log(arguments); return x * y; } multiply(); // {} multiply(1); // { '0': 1 } multiply(1, 2); // { '0': 1, .. 2020. 2. 1.
#4. 클로저(closure) 정의 클로저 = 함수 + 함수를 둘러싼 환경(Lexical environment) 함수를 둘러싼 환경이라는 것이 바로 렉시컬 스코프이다. 함수를 만들고 그 함수 내부의 코드가 탐색하는 스코프를 함수 생성 당시의 렉시컬 스코프로 고정하면 바로 클로저가 되는 것이다. 내부함수 Javascipt에서는 함수 안에서 또 다른 함수를 선언 할 수 있다. function outter() { function inner() { var title = "inner"; console.log(title); } inner(); } outter();// inner 위의 예제에서 함수 outter의 내부에는 함수 inner가 정의 되어 있다. 함수 inner를 내부 함수라고 한다. 내부함수는 외부함수의 지역변수에 접근할 수 있다. .. 2020. 2. 1.
#3. 스코프(Scop) 자바스크립트(ES6)는함수 레벨과 블록 레벨의 렉시컬 스코프규칙을 따른다. 스코프 -스코프 레벨 자바스크립트에서 var키워드로 선언된 변수나, 함수 선언식으로 만들어진 함수는 함수 레벨 스코프를 갖는다. 즉, 함수 내부 전체에서 유효한 식별자가 된다. function foo() { if (true) { var color = 'blue'; } console.log(color); // blue } foo(); 만약var color가 블록 레벨 스코프였다면,color는 if문이 끝날 때 파괴되고console.log에서 잘못된 참조로 에러가 발생할 것이다. 그렇지만color는 함수 레벨의 스코프이기 때문에 foo함수 내부 어디에서든 에러 발생 없이 참조할 수 있다. ES6의 let, const키워드는 블록 레벨.. 2020. 2. 1.