ECMAScript ES と 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:
- ネイティブの Promise 処理はありませんでした。非同期の処理にコールバックが依存しており、「コールバック地獄」のような問題が発生していました。
function hacerAlgo(callback) { setTimeout(function() { callback('Hecho'); }, 1000); } hacerAlgo(function(resultado) { console.log(resultado); });
ログイン後にコピー
ES6:
- promise は、非同期操作をよりクリーンに処理するために導入されました。
const hacerAlgo = () => { return new Promise((resolve, reject) => { setTimeout(() => resolve('Hecho'), 1000); }); }; hacerAlgo().then(resultado => console.log(resultado));
ログイン後にコピー
8. レストアンドスプレッド演算子
ES5:
- 配列やオブジェクトを簡単に結合または分離するためのサポートはありませんでした。 apply の使用などのテクニックが使用されました。
function sumar(a, b, c) { return a + b + c; } var numeros = [1, 2, 3]; sumar.apply(null, numeros);
ログイン後にコピー
ES6:
- rest 演算子と spread 演算子は、引数リストと配列の処理を容易にするために導入されました。
// 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:
- destructuring は、よりクリーンな方法でオブジェクトと配列から値を抽出するために導入されました。
const { nombre, edad } = persona;
ログイン後にコピー
結論
ECMAScript 6 (ES6) では、JavaScript での開発を簡素化する構文と機能の大幅な改善が行われ、ECMAScript 5 (ES5) と比較して読みやすさ、保守性、効率性が向上しています。
以上がECMAScript ES と ECMAScript ES6) の比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
2週間前
By 尊渡假赌尊渡假赌尊渡假赌
レポ:チームメイトを復活させる方法
4週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.ファイルの保存場所:それはどこにあり、それを保護する方法は?
3週間前
By DDD

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7315
9


Java チュートリアル
1625
14


CakePHP チュートリアル
1348
46


Laravel チュートリアル
1260
25


PHP チュートリアル
1207
29

