웹 프론트엔드 JS 튜토리얼 ECMAScript ES와 ECMAScript ES6 비교)

ECMAScript ES와 ECMAScript ES6 비교)

Oct 05, 2024 pm 12:17 PM

Comparación entre ECMAScript ESy ECMAScript ES6)

1. 변수 선언

ES5:

  • var를 사용하여 변수를 선언합니다. 스코프로서 기능을 가지며 호이스팅을 발생시킬 수 있습니다.

var nombre = 'Maria';


로그인 후 복사

ES6:

  • block 범위를 갖는 let 및 const를 도입하여 변수 처리 시 보안을 향상시킵니다.

let nombre = 'Maria';  // Variable que puede cambiar
const edad = 30;       // Constante, no puede cambiar


로그인 후 복사

2. 화살표 기능

ES5:

  • 기존 함수에는 더 많은 코드가 필요하며 이를 처리하는 것이 혼란스러울 수 있습니다.

var suma = function(a, b) {
  return a + b;
};


로그인 후 복사

ES6:

  • 화살표 함수는 더 간결하며 맥락을 바꾸지 않습니다.

const suma = (a, b) => a + b;


로그인 후 복사

3. 템플릿 문자열

ES5:

  • 문자열 연결은 .
  • 연산자를 사용하여 수행됩니다.

var saludo = 'Hola ' + nombre + ', tienes ' + edad + ' años.';


로그인 후 복사

ES6:

  • 백틱(`)은 보간이 가능한 문자열 템플릿을 만드는 데 사용됩니다.

const saludo = `Hola ${nombre}, tienes ${edad} años.`;


로그인 후 복사

4. 기본 매개변수

ES5:

  • 기본 매개변수 지원이 없어 수동으로 구현했습니다.

function saludo(nombre) {
  nombre = nombre || 'Invitado';
  return 'Hola ' + nombre;
}


로그인 후 복사

ES6:

  • 기본 매개변수는 함수 시그니처에서 직접 선언됩니다.

function saludo(nombre = 'Invitado') {
  return `Hola ${nombre}`;
}


로그인 후 복사

5. 수업

ES5:

  • 수업이라는 개념이 존재하지 않았습니다. 빌더 기능과 프로토타입이 사용되었습니다.

function Persona(nombre, edad) {
  this.nombre = nombre;
  this.edad = edad;
}

Persona.prototype.saludar = function() {
  return 'Hola, soy ' + this.nombre;
};


로그인 후 복사

ES6:

  • 다른 프로그래밍 언어에 더 가까운 깔끔한 구문인 클래스가 도입되었습니다.

class Persona {
  constructor(nombre, edad) {
    this.nombre = nombre;
    this.edad = edad;
  }

  saludar() {
    return `Hola, soy ${this.nombre}`;
  }
}


로그인 후 복사

6. 모듈(가져오기 및 내보내기)

ES5:

  • 모듈에 대한 기본 지원은 없었습니다. RequireJS, CommonJS 등의 라이브러리를 사용했습니다.

// CommonJS
var modulo = require('modulo');
module.exports = modulo;


로그인 후 복사

ES6:

  • 가져오기 및 내보내기 모듈에 대한 기본 지원을 소개합니다.

// Exportar
export const suma = (a, b) => a + b;

// Importar
import { suma } from './modulo';


로그인 후 복사

7. 약속

ES5:

  • 기본 약속 처리가 없었습니다. 비동기성을 처리하기 위해 콜백에 의존했기 때문에 "콜백 지옥"과 같은 문제가 발생했습니다.

function hacerAlgo(callback) {
  setTimeout(function() {
    callback('Hecho');
  }, 1000);
}

hacerAlgo(function(resultado) {
  console.log(resultado);
});


로그인 후 복사

ES6:

  • 프라미스는 비동기 작업을 보다 깔끔하게 처리하기 위해 도입되었습니다.

const hacerAlgo = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => resolve('Hecho'), 1000);
  });
};

hacerAlgo().then(resultado => console.log(resultado));


로그인 후 복사

8. 나머지 및 스프레드 연산자

ES5:

  • 배열이나 객체를 쉽게 결합하거나 분리하는 기능은 지원되지 않았습니다. 적용 등의 기법이 사용되었습니다.

function sumar(a, b, c) {
  return a + b + c;
}

var numeros = [1, 2, 3];
sumar.apply(null, numeros);


로그인 후 복사

ES6:

  • 인수 목록과 배열을 더 쉽게 처리할 수 있도록 restspread 연산자가 도입되었습니다.

// Spread
const numeros = [1, 2, 3];
const resultado = sumar(...numeros);

// Rest
function sumar(...numeros) {
  return numeros.reduce((a, b) => a + b, 0);
}


로그인 후 복사

9. 구조파괴

ES5:

  • 객체나 배열에서 값을 추출하는 작업은 수동으로 이루어졌으며 오류가 발생하기 쉬웠습니다.

var persona = { nombre: 'Maria', edad: 30 };
var nombre = persona.nombre;
var edad = persona.edad;


로그인 후 복사

ES6:

  • 구조 분해는 객체와 배열에서 보다 깔끔한 방법으로 값을 추출하기 위해 도입되었습니다.

const { nombre, edad } = persona;


로그인 후 복사

결론

ECMAScript 6(ES6)은 JavaScript 개발을 단순화하는 다양한 구문 및 기능 개선 사항을 제공하여 ECMAScript 5(ES5)에 비해 읽기 쉽고 유지 관리가 쉽고 효율적입니다.

위 내용은 ECMAScript ES와 ECMAScript ES6 비교)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

JavaScript로 문자열 문자를 교체하십시오 JavaScript로 문자열 문자를 교체하십시오 Mar 11, 2025 am 12:07 AM

JavaScript로 문자열 문자를 교체하십시오

jQuery 날짜가 유효한지 확인하십시오 jQuery 날짜가 유효한지 확인하십시오 Mar 01, 2025 am 08:51 AM

jQuery 날짜가 유효한지 확인하십시오

jQuery는 요소 패딩/마진을 얻습니다 jQuery는 요소 패딩/마진을 얻습니다 Mar 01, 2025 am 08:53 AM

jQuery는 요소 패딩/마진을 얻습니다

10 JQuery Accordions 탭 10 JQuery Accordions 탭 Mar 01, 2025 am 01:34 AM

10 JQuery Accordions 탭

10 JQuery 플러그인을 확인할 가치가 있습니다 10 JQuery 플러그인을 확인할 가치가 있습니다 Mar 01, 2025 am 01:29 AM

10 JQuery 플러그인을 확인할 가치가 있습니다

노드 및 HTTP 콘솔로 HTTP 디버깅 노드 및 HTTP 콘솔로 HTTP 디버깅 Mar 01, 2025 am 01:37 AM

노드 및 HTTP 콘솔로 HTTP 디버깅

사용자 정의 Google 검색 API 설정 자습서 사용자 정의 Google 검색 API 설정 자습서 Mar 04, 2025 am 01:06 AM

사용자 정의 Google 검색 API 설정 자습서

jQuery div에 스크롤 바를 추가합니다 jQuery div에 스크롤 바를 추가합니다 Mar 01, 2025 am 01:30 AM

jQuery div에 스크롤 바를 추가합니다

See all articles