1. Property Shorthand
// ES6 이전
const id = "idid",
name = "namename",
age = 30;
const user = {
id: id,
name: name,
age: age,
};
console.log(user);Code language: JavaScript (javascript)
// ES6 이후
const id = "idid",
name = "namename",
age = 30;
const user = {
id,
name,
age,
};
console.log(user)Code language: JavaScript (javascript)
객체를 정의할 때 객체의 key값과 value에 할당할 변수명이 같을 경우 value를 생략할 수 있다.
2. Concise Method
const user = {
// info: function () {
// ...
// }
info() { // Concise Method
...
}
}Code language: JavaScript (javascript)
객체 내에서 좀 더 간결하게 메서드를 사용.
3. Destructuring Assignment
구조 분해 할당.
배열이나 객체에 입력된 값을 개별적인 변수에 할당하는 간편한 방식 제공.
- 객체
// 객체
let id = user.id;
let name = user.name;
let age = user.age;
let className = user.className;
// ES6 : Destructuring Assignment
let { id, name, age, className} = user;Code language: JavaScript (javascript)
- 배열
// 배열
const fruits = ["apple", "banana", "strawberry", "bear", "pineapple"];
// ES6 이전
const f1 = fruits[0];
const f2 = fruits[1];
const f3 = fruits[2];
const f4 = fruits[3];
const f5 = fruits[4];
console.log(f1, f2, f3, f4, f5);}
// ES6 이후
const [f1, f2, f3, f4, f5] = fruits;
console.log(f1, f2, f3, f4, f5);Code language: JavaScript (javascript)
- 매개변수
// 매개변수
function f1({ id, name, age }) {
console.log("아이디 : " + id);
console.log("이름 : " + name);
console.log("나이 : " + age);
}
f1(user);Code language: JavaScript (javascript)
- 변수명을 객체의 property명과 다르게 만들 경우
// 변수명을 객체의 property명과 다르게 만들 경우.
let { id: user_id, name: user_name, age: user_age } = user;
console.log(user_id, user_name, user_age);Code language: JavaScript (javascript)
4. Spread Syntax
반복 가능한(iterable) 객체에 적용할 수 있는 문법.
배열이나 문자열 등을 풀어서 전개 시킬 수 있다.
// 배열에서 스프레드 구문 사용
let arr1 = [1, 2, 3];
let arr2 = [...arr1, 4, 5]; // arr2는 [1, 2, 3, 4, 5]
// 객체에서 스프레드 구문 사용
let obj1 = { a: 1, b: 2 };
let obj2 = { ...obj1, c: 3 }; // obj2는 {a: 1, b: 2, c: 3}Code language: JavaScript (javascript)
주의할 점은 Spread syntax는 얕은 복사다.
한 곳에서 값을 수정하면 모든 곳에서 값이 수정된다.
5. Default Parameter
함수에 전달된 파라미터가 undefined이거나 전달되지 않았을 경우, 설정한 값으로 초기화됨.
// ES6 이후
function print1(msg = "안녕하세요") {
console.log(msg);
}
print1("야옹"); // 야용
print1(); // 안녕하세요Code language: JavaScript (javascript)
6. Template String

2023-01-16 node.js_3
WEB2 – Node.js – 생활코딩 생활코딩 node.js 강의 정리 1. JS 데이터타입 JS의 데이터타입에 대하여 일전에 학습한 적이 있으니 따로 다루진 않겠다. 2. JS 변수 JS의 변수에 관해서도 일전에 학습한 적이 있으니 패스. 시간을 아끼자. 3. 문자열 대입 학습을 위해서 프로젝트 디렉터리에 새로 syntax 디렉터리를 만 … 더 읽기
7. Arrow Function
함수의 이름이 없는 익명 함수이므로 변수에 담아서 사용.
// 매개변수가 없을 경우.
() => {};
// 매개변수가 한 개 있을 경우. (param)의 소괄호 생략 가능.
(param) => {};
// 매개변수가 여러 개 있을 경우. (param1, param2)의 소괄호 생략 불가능.
(param1, param2) => {}Code language: JavaScript (javascript)
가. return 생략
- body의 내용이 한 줄일 경우
// body의 내용이 한 줄일 경우
(x) => {
return x + 10;
};
(x) => x + 10;
// object return시
() => {
return { id: "idid" };
};
() => ({ id: "idid" });Code language: JavaScript (javascript)
// body가 여러 줄일 경우 생략 불가.
(x) => {
const y = x + 10;
return y;
};Code language: PHP (php)
body가 여러 줄일 경우 생략 불가.
// Arrow Function에서는 this가 바인딩 되지 않음.
const user = {
id: "idid",
age: 20,
info: () => console.log(this.id, this),
};
user.info() // undefined undefinedCode language: JavaScript (javascript)
Arrow Function에서는 this가 바인딩되지 않는다.
8. Module
코드를 여러 파일과 폴더로 나누어 관리하기 위해서 필요.
<script type="module" src="app.js"></script>Code language: HTML, XML (xml)
구형 브라우저의 경우 module을 지원하지 않는 문제 있어서 webpack, parcel 등의 모듈 번들러를 통해 변환과정을 거친 뒤 사용.
가. export
변수, 함수, 클래스 export 가능.
export const a1 = "123"
export { a1, a2, a3, a4 }
export default a5
export default function () { }Code language: JavaScript (javascript)
export: 여러 값들을 내보낸다.export default: 모듈당 하나의 값만 내보낸다.import할 때 특정 이름으로 가져올 필요가 없다.
나. import
// export
import { a1, a2, a4 } from './somewhere.js'
// export default
import a5 from './somewhere.js'Code language: JavaScript (javascript)