ECMAScript6 (2015.6월)
자바스크립트에서 화살표 함수 사용법을 알아두자.
Node.js 생태계는 무척 잘 되어 있다. 즉 제공되는 기능을 적재적소에 잘 써먹기만 하면 대부분의 문제를 해결할 수 있다.
프론트엔드의 주요 역할은 HTML과 CSS를 이용한 퍼블리싱, 데이터 기반의 상호작용 가능한 UI 구현, 그리고 백엔드와의 HTTPS 통신 정도이다.
대부분의 복잡한 비즈니스 로직은 서버에 탑재된다. 서버(백엔드)는 다량의 데이터를 안전하게 보관하고 내부 동작 방식을 숨길 뿐만 아니라 여러 요청을 동시에 처리하는 데 최적화되어 있다.
화살표 함수에 대한 자세한 사항은 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/Arrow_functions 를 참조하면 된다.
화살표 함수 표현(arrow function expression)은 전통적인 함수표현(function)의 간편한 대안이다.
기존의 함수 표현식에서 function 키워드를 삭제하고 인자를 받는 매개변수의 괄호()와 코드블록({}) 사이에 화살표(=>) 만 넣어주면 된다.
// () => { } vs function() { }
let func = function(arg1, arg2, ...argN) {
return expression;
};
// 축약버전 : 화살표 함수
let func = (arg1, arg2, ...argN) => expression
|
- 인수가 하나밖에 없다면 인수를 감싸는 괄호를 생략할 수 있다.
let double = n => n * 2;
|
- 인수가 하나도 없을 땐 괄호는 생략할 수 없다.
// 일반 함수
const foo = function () { console.log("foo") }; // foo
// 화살표 함수
const foo = () => console.log("foo"); // foo
|
- 본문이 여러 줄로 구성되었다면 중괄호를 사용해야 하고, 반드시 return 으로 결과를 반환해야 한다.
let sum = (a, b) => { // 중괄호는 여러 줄로 구성되어 있음을 알려준다.
let result = a + b;
return result; // 반드시 return 지시자로 결과값을 반환해주어야 한다.
};
console.log(sum(3, 4)); // 7
let sum = (a, b) => a + b; //
|
<script>
let sum = (a, b) => a + b;
/* 위 화살표 함수는 아래 함수의 축약 버전이다.
let sum = function(a, b) {
return a + b;
};
*/
</script>
|
<script>
// 매개변수 지정 방법
() => { ... } // 매개변수가 없을 경우
x => { ... } // 매개변수가 한 개인 경우, 소괄호를 생략할 수 있다.
(x, y) => { ... } // 매개변수가 여러 개인 경우, 소괄호를 생략할 수 없다.
// 함수 몸체 지정 방법
x => { return x * x } // single line block
x => x * x // 함수 몸체가 한줄 구문이면 중괄호를 생략할 수 있으며 암묵적으로 return된다.
() => { return { a: 1 }; }
() => ({ a: 1 }) // 위 표현과 동일하다. 객체 반환시 소괄호를 사용한다.
() => { // multi line block.
const x = 10;
return x * x;
};
</script>
|
<script>
// ES5
var arr = [1, 2, 3];
var pow = arr.map(function (x) { // x는 요소값
return x * x;
});
console.log(pow); // [ 1, 4, 9 ]
// ES6
const arr = [1, 2, 3];
const pow = arr.map(x => x * x);
console.log(pow); // [ 1, 4, 9 ]
</script>
|
'React > morden javascript' 카테고리의 다른 글
자바스크립트 Object (0) | 2022.06.11 |
---|---|
자바스크립트 호이스팅(Hoisting) (0) | 2022.06.10 |
Javascript this and Class (0) | 2022.06.09 |
javascript 콜백 함수(callback function) (0) | 2022.05.27 |
변수 유효범위(Variable Scope) (0) | 2022.05.27 |