bb8dd

자바스크립트 최신 문법(ES7-ES13)

js
es7
es8
es9
es10
es11
es12
es13

자바스크립트 최신 문법(ES7-ES13)

- ES7

1. Array.prototype.includes()

ES7에서는 Array.prototype.includes() 메서드가 추가되었다. 이 메서드는 배열에 특정 요소가 포함되어 있는지 확인한다.

const arr = [1, 2, 3, 4, 5];

console.log(arr.includes(3)); // true
console.log(arr.includes(6)); // false

- ES8

1. String padding

ES8에서는 문자열 패딩을 위한 메서드가 추가되었다. padStart()와 padEnd() 메서드를 사용하여 문자열의 길이를 지정하고, 지정한 길이보다 짧은 문자열의 앞이나 뒤에 다른 문자열을 채울 수 있다.

const str = '123';

console.log(str.padStart(5, '0')); // 00123
console.log(str.padEnd(5, '0')); // 12300

- ES9

1. Object spread operator

ES9에서는 객체 전개 연산자가 추가되었다. 객체 전개 연산자는 객체의 속성을 복사하여 새로운 객체를 생성한다.

const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };

console.log(obj2); // { a: 1, b: 2, c: 3 }

- ES10

1. Optional catch binding

ES10에서는 catch 절에서 에러를 처리할 때, 에러 객체를 사용하지 않아도 된다. catch 절에서 에러 객체를 사용하지 않을 경우, 에러 객체를 생략할 수 있다.


try {
  // ...
} catch {
  // ...
}

- ES11

1. Nullish coalescing operator

ES11에서는 널 병합 연산자가 추가되었다. 널 병합 연산자는 왼쪽 피연산자가 null 또는 undefined일 때, 오른쪽 피연산자를 반환한다.

const foo =
  null ?? undefined ?? 'default string' ?? '' ?? 0 ?? 42;

console.log(foo); // 'default string'

- ES12

1. Promise.any()

ES12에서는 Promise.any() 메서드가 추가되었다. Promise.any() 메서드는 여러 개의 프로미스 중 하나라도 이행(resolve)되면 이행된 프로미스를 반환한다.

const promise1 = new Promise((resolve, reject) => {
  setTimeout(() => resolve('foo'),
    3000);
});

const promise2 = new Promise((resolve, reject) => {
  setTimeout(() => resolve('bar'),
    2000);
});

Promise.any([promise1, promise2])
  .then(value => console.log(value)); // 'bar'

- ES13

1. Logical assignment operators

ES13에서는 논리 할당 연산자가 추가되었다. 논리 할당 연산자는 논리 연산과 할당 연산을 한 번에 수행한다.

let a = 1;
let b = 2;

a &&= b;
console.log(a); // 2

let c = 1;
let d = 2;

c ||= d;
console.log(c); // 1

출처: https://poiemaweb.com/

Created: 2024년 2월 27일

Back to home