ECMAScript [ES6-11] 최신 문법 정리
안녕하세요 TriplexLab입니다.
오늘은 javascript ECMAScript [ES6-11] 최신 문법에 대해서 정리해보겠습니다.
👉Shorthand Property Names( 객체 초기자 )
{
const TripexLab1 = {
name: 'Ellie',
age: '18',
};
const name = 'Ellie';
const age = '18';
const TripexLab2 = {
name: name,
age: age,
};
const TripexLab3 = {
name,
age,
};
console.log(TripexLab1, TripexLab2, TripexLab3);
}
👉Destructuring Assignment ( 구조 분해 할당 )
{
const student = {
name: 'TriplexLab',
level: 1,
};
{
const name = student.name;
const level = student.level;
console.log(name, level);
}
{
const { name, level } = student;
console.log(name, level);
const { name: YounHoSo, level: YounHoSoLevel } = student;
console.log(YounHoSo, YounHoSoLevel);
}
{
const animals = ['🐶', '🐱'];
const [first, second] = animals;
console.log(first, second);
}
}
👉Spread Syntax ( 전개 구문 )
{
const obj1 = { key: 'key1' };
const obj2 = { key: 'key2' };
const array = [obj1, obj2];
const arrayCopy = [...array];
console.log(array, arrayCopy);
const arrayCopy2 = [...array, { key: 'key3' }];
console.log(arrayCopy2);
const fruits1 = ['🍑', '🍓'];
const fruits2 = ['🍌', '🥝'];
const fruits = [...fruits1, ...fruits2];
console.log(fruits);
const dog1 = { dog: '🐕' };
const dog2 = { dog: '🐶' };
const dog = { ...dog1, ...dog2 };
console.log(dog);
}
👉Default parameters ( 기본값 매개변수 )
{
{
function printMessage(message) {
if (message == null) {
message = 'default message';
}
console.log(message);
}
printMessage('hello');
printMessage();
}
{
function printMessage(message = 'default message') {
console.log(message);
}
printMessage('hello');
printMessage();
}
}
👉Ternary Operator( 삼항 조건 연산자 )
{
const isCat = true;
{
let component;
if (isCat) {
component = '😸';
} else {
component = '🐶';
}
console.log(component);
}
{
const component = isCat ? '😸' : '🐶';
console.log(component);
console.log(isCat ? '😸' : '🐶');
}
}
👉Template Literals
{
const weather = '🌤';
const temparature = '16°C';
console.log('Today weather is ' + weather + ' and temparature is ' + temparature + '.');
console.log(`Today weather is ${weather} and temparature is ${temparature}.`);
}
👉Optional Chaining (ES11)
{
const person1 = {
name: 'Ellie',
job: {
title: 'S/W Engineer',
manager: {
name: 'Bob',
},
},
};
const person2 = {
name: 'Bob',
};
{
function printManager(person) {
console.log(person.job.manager.name);
}
printManager(person1);
}
{
function printManager(person) {
console.log(
person.job
? person.job.manager
? person.job.manager.name
: undefined
: undefined
);
}
printManager(person1);
printManager(person2);
}
{
function printManager(person) {
console.log(person.job && person.job.manager && person.job.manager.name);
}
printManager(person1);
printManager(person2);
}
{
function printManager(person) {
console.log(person.job?.manager?.name);
}
printManager(person1);
printManager(person2);
}
}
👉Nullish Coalescing Operator (ES11)
{
{
const name = 'Ellie';
const userName = name || 'Guest';
console.log(userName);
}
{
const name = null;
const userName = name || 'Guest';
console.log(userName);
}
{
const name = '';
const userName = name || 'Guest';
console.log(userName);
const num = 0;
const message = num || 'undefined';
console.log(message);
}
{
const name = '';
const userName = name ?? 'Guest';
console.log(userName);
const num = 0;
const message = num ?? 'undefined';
console.log(message);
}
}
파일로도 제공합니다. 직접 다운받아서 사용해보세요~ 코드가 간결하고, 단순해질 수 있습니다.