Rumah > hujung hadapan web > tutorial js > ES6 (ES2015) dan Beyond: Memahami Versi JavaScript

ES6 (ES2015) dan Beyond: Memahami Versi JavaScript

William Shakespeare
Lepaskan: 2025-02-15 12:13:11
asal
217 orang telah melayarinya

ES6 (ES2015) and Beyond: Understanding JavaScript Versioning

Pada tahun -tahun kebelakangan ini, perkembangan JavaScript telah melonjak. Spesifikasi ECMAScript baru dikeluarkan setiap tahun, menjadikan pengurusan versi JavaScript, sokongan ciri untuk setiap versi, dan bagaimana menulis kod berorientasikan masa depan adalah mengelirukan.

untuk lebih memahami sebab -sebab di sebalik gelombang kemas kini yang seolah -olah berterusan ini, mari kita mengkaji secara ringkas sejarah JavaScript dan versi -versi dan memahami mengapa proses penyeragaman sangat penting.

mata utama

    ES6 (juga dikenali sebagai ES2015) menandakan peralihan utama dalam pengurusan versi JavaScript, memperkenalkan ciri -ciri seperti kelas, janji, fungsi anak panah, modul ES, penjana dan iterator. Ini adalah kemas kini asas penting yang meletakkan asas untuk kemas kini versi JavaScript tahunan masa depan.
  • ES2015 menetapkan proses TC39 berasaskan cadangan untuk perbincangan dan penggunaan ciri bahasa baru. Proses ini terdiri daripada lima peringkat: Strawman (Preface), cadangan (cadangan), draf (draf), calon (calon), dan selesai (selesai).
  • Selepas ES2015, versi berikutnya dikeluarkan setiap bulan Jun, dan ES2016 (ES7) dan ES2017 (ES8) memperkenalkan ciri dan penambahbaikan tambahan. ES2018 memperkenalkan beberapa ciri baru yang kuat seperti Iterator Asynchronous serta pengembangan objek dan sifat sisa.
  • dinamakan semula ES6 hingga ES2015 untuk mencerminkan tahun pelepasannya dan menyingkirkan nombor versi. Langkah ini adalah untuk mengelakkan kekeliruan dan menunjukkan bahawa JavaScript adalah bahasa dinamik yang sentiasa dikemas kini dan diperbaiki. Konvensyen penamaan baru juga membantu untuk menunjukkan keteraturan kemas kini bahasa dan penambahbaikan.

Sejarah Awal Pengurusan Versi JavaScript

Prototaip JavaScript ditulis pada bulan Mei 1995 oleh Brendan Eich hanya dalam sepuluh hari. Dia pada mulanya direkrut untuk melaksanakan skim runtime untuk Netscape Navigator, tetapi pasukan pengurusan menolak untuk menggunakan bahasa gaya C untuk melengkapkan Java baru.

JavaScript memulakan debutnya pada Disember 1995 di Netscape Navigator Versi 2. Pada tahun berikutnya, JavaScript kejuruteraan Microsoft dan mencipta versi sendiri, yang dipanggil JScript. Dikeluarkan dengan penyemak imbas Internet Versi 3, JScript hampir sama seperti JavaScript-walaupun termasuk semua pepijat dan kebiasaan yang sama-tetapi ia mempunyai beberapa ciri khusus Internet Explorer.

Kelahiran Ecmascript

Keperluan untuk memastikan bahawa JScript (dan mana -mana varian lain) tetap serasi dengan JavaScript mendorong Netscape dan Sun Microsystems untuk menyeragamkan bahasa. Mereka melakukan ini dengan bantuan Persatuan Pengilang Komputer Eropah (ECMA), yang akan bertanggungjawab untuk menganjurkan piawaian. Bahasa piawai dipanggil ECMAScript untuk mengelakkan pelanggaran tanda dagangan Java Sun -langkah yang menyebabkan sedikit kekeliruan. Pada akhirnya, ECMAScript digunakan untuk merujuk kepada spesifikasi, manakala JavaScript (dan masih) digunakan untuk merujuk kepada bahasa itu sendiri.

Kumpulan kerja yang bertanggungjawab untuk pengurusan versi JavaScript dan penyelenggaraan ECMAScript dikenali sebagai Jawatankuasa Teknikal 39, atau TC39. Ia terdiri daripada wakil -wakil dari semua vendor pelayar utama seperti Apple, Google, Microsoft dan Mozilla, serta pakar dan wakil yang dijemput dari syarikat lain yang berminat dalam pembangunan web. Mereka mengadakan mesyuarat tetap untuk menentukan arah bahasa.

Apabila JavaScript diseragamkan oleh TC39 pada tahun 1997, spesifikasi itu dipanggil Ecmascript versi 1. Pada mulanya, versi ECMAScript yang berikutnya dikeluarkan setiap tahun, tetapi akhirnya sporadis kerana kekurangan konsensus dan satu set ciri -ciri besar yang sukar untuk menguruskan sekitar ECMAScript 4. Jadi versi itu ditamatkan dan dikurangkan ke 3.1, tetapi tidak dimuktamadkan oleh nama itu, tetapi akhirnya berkembang menjadi ECMAScript 5. Ia dikeluarkan pada bulan Disember 2009, 10 tahun selepas pembebasan ECMAScript 3, dan memperkenalkan ciri -ciri seperti API Serialization JSON, Function.Prototype.Bind, dan mod ketat. Dua tahun kemudian, versi penyelenggaraan dikeluarkan untuk menjelaskan beberapa kekaburan dalam lelaran terkini 5.1.

ECMAScript 2015 dan Siaran Tahunan Revival

Ketika TC39 menyelesaikan perselisihan yang disebabkan oleh ECMAScript 4, Brendan Eich menekankan perlunya pelepasan yang lebih pendek dan lebih kecil. Yang pertama dari spesifikasi baru ini ialah es2015 (asalnya dinamakan ECMAScript 6 atau ES6). Siaran ini adalah asas yang besar tetapi perlu yang menyokong pengurusan pelepasan JavaScript tahunan masa depan. Ia mengandungi banyak ciri yang banyak pemaju hari ini sangat disukai, seperti:

  • kategori
  • Janji
  • Fungsi anak panah
  • modul
  • Penjana dan Iterator

ES2015 adalah versi pertama yang mengikuti proses TC39 , model berasaskan cadangan untuk membincangkan dan mengamalkan ciri bahasa.

TC39 Process

Ia mesti melalui lima peringkat sebelum cadangan itu diterima ke dalam versi ECMAScript yang akan datang.

Peringkat 0: Strawman (Preface)

Ini adalah langkah mudah yang membolehkan penyerahan idea kepada spesifikasi. Sesiapa sahaja boleh membuat cadangan ciri-i.e.

Tahap 1: Cadangan (Cadangan)

fasa pertama formalisasi cadangan. Mesti:

  • Huraikan sebarang isu sedia ada yang diperbetulkan oleh penyelesaian ini
  • menyediakan gambaran keseluruhan API, serta butiran pelaksanaan lanjutan, serta polyfills dan/atau demonstrasi
  • Bincangkan halangan yang berpotensi terlebih dahulu

Seseorang yang bertanggungjawab mesti dipilih untuk mengadopsi dan memajukan cadangan tersebut. Orang ini mestilah ahli TC39. Peringkat 2: Draf (Draf)

Ini adalah peristiwa penting bahawa ciri ini boleh dimasukkan dalam siaran ECMAScript masa depan. Di sini, sintaks dan semantik cadangan itu terperinci menggunakan bahasa formal yang diterangkan oleh spesifikasi. Pelaksanaan eksperimen harus disediakan pada masa ini.

Peringkat 3: Calon (Calon)

di sini, kebanyakan teknologi kandungan dan sokongan cadangan telah dibangunkan, tetapi maklum balas lanjut daripada pengguna dan pelaksana (seperti pengeluar penyemak imbas). Setelah diperoleh dan tindakan diambil, butiran ringkasan dan spesifikasi akan dimuktamadkan dan ditandatangani oleh pengulas yang ditetapkan dan editor yang ditetapkan. Oleh kerana tahap ini memerlukan pelaksanaan yang konsisten, hanya perubahan kritikal yang akan diterima selepas itu.

Peringkat 4: Selesai (Selesai)

Cadangan ini telah diterima dan boleh ditambah kepada ECMAScript. Oleh itu, ia sememangnya:

  • Ujian penerimaan untuk sebahagian daripada test262 suite yang ditulis dalam JavaScript telah ditulis untuk menunjukkan pematuhan dan tingkah laku ciri
  • Sekurang -kurangnya dua pelaksanaan yang mematuhi boleh didapati dan dikeluarkan, yang semuanya membuktikan ketersediaan dan ketersediaan pemaju mereka
  • Permintaan tarik telah dikemukakan kepada pangkalan kod ECMA-262 rasmi dan telah ditandatangani oleh edit spesifikasi.

Dokumentasi sumbangan asas kod di atas terperinci lebih lanjut mengenai penggunaan isu GitHub dan menarik permintaan untuk menguruskan penambahan bahasa.

Looking forward

Setelah menyelesaikan proses pengurusan dan kemas kini versi JavaScript untuk ES2015 dan menubuhkan TC39, versi berikutnya dikeluarkan setiap bulan Jun, dengan cadangan itu dimasukkan selama satu tahun. Pada masa penulisan, terdapat tiga spesifikasi baru.

es2016

Juga dikenali sebagai ES7, ini adalah versi pertama yang lebih kecil, tambahan ECMAScript. Selain pembetulan pepijat, ia hanya menambah dua ciri.

array.prototype.includes

Kaedah Contoh ini memudahkan operasi mencari nilai dalam array:

// ES2016 之前:
const hasBob = names.indexOf('bob') > -1;

// ES2016:
const hasBob = names.includes('bob');
Salin selepas log masuk
Salin selepas log masuk

operator eksponen

Sebelum ES2016, operasi eksponen boleh dilakukan menggunakan math.pow (asas, eksponen). Versi ini memperkenalkan pengendali (**) yang mempunyai keutamaannya sendiri:

// ES2016 之前
Math.pow(5, 3); // => 125

// ES2016
5 ** 3; // => 125
Salin selepas log masuk
Salin selepas log masuk

es2017

ES2017 (aka ES8) adalah versi yang lebih besar yang mengandungi beberapa kaedah berguna dan struktur sintaks.

fungsi async

Janji telah menyelamatkan kita dari neraka panggilan balik, tetapi API mereka masih menunjukkan verbose. Fungsi Asynchronous Abstrak mereka menggunakan kod segerak yang sangat serupa dengan kod segerak:

// Promise
const getProfile = name => {
  return fetch(`https://some-api/people/${name}`)
    .then(res => res.json())
    .then(({ profile }) => profile); // 从解析的对象中解构 `profile`
};

// async/await
const getProfile = async name => {
  const res = await fetch(`https://some-api/people/${name}`);
  const { profile } = await res.json();
  return profile;
};
Salin selepas log masuk

Kaedah mengisi rentetan

string.prototype.padstart (panjang, padder) dan padend (panjang, padder) akan berulang kali menambah padder pada permulaan dan akhir rentetan (ini adalah pilihan, lalai ke ruang) sehingga watak panjang dicapai:

'foo'.padStart(6);          // => '   foo';
'foo'.padEnd(6);            // => 'foo   ';
'foo'.padStart(10, 'bar');  // => 'barbarbfoo';
'foo'.padEnd(10, 'bar');    // => 'foobarbarb';
Salin selepas log masuk

Ciri -ciri lain termasuk koma trailing, memori bersama dan operasi atom, dan kaedah objek statik (object.entries (), object.values ​​(), dan object.getownPropertyDescriptors ()).

es2018

Pada masa penulisan, pelepasan terbaru ini memperkenalkan sebilangan kecil ciri baru yang kuat.

async iterator

manakala janji.all () membolehkan anda menunggu parsing pelbagai janji, dalam beberapa kes, anda mungkin perlu melelehkan nilai -nilai yang diambil secara asynchronously. Anda kini boleh menunggu Iterator Asynchronous dengan pelbagai janji:

// ES2016 之前:
const hasBob = names.indexOf('bob') > -1;

// ES2016:
const hasBob = names.includes('bob');
Salin selepas log masuk
Salin selepas log masuk

objek memperluas dan baki sifat

Di permukaan, kedua -dua penambahbaikan sintaks ini telah menjadi popular di kalangan pemaju JavaScript kerana ketersediaan penyusun seperti Babel. Pengembangan objek dan sifat sisa adalah sama dengan pengembangan array dan sifat sisa dan membolehkan penyalinan cetek dan pengumpulan dekonstruksi sifat objek:

// ES2016 之前
Math.pow(5, 3); // => 125

// ES2016
5 ** 3; // => 125
Salin selepas log masuk
Salin selepas log masuk

Cadangan lain yang diterima termasuk janji.prototype.finally (), serta peningkatan kepada ekspresi biasa dan literal templat.

Kesimpulan

JavaScript telah berkembang dengan pesat dalam tempoh yang sangat singkat. Walaupun ini disebabkan oleh kerja yang sangat baik dari standard ECMAScript dan TC39, ia pada mulanya merupakan perjalanan yang sukar kerana kekurangan kestabilan dan perpaduan dalam pengurusan dan pembangunan versi JavaScript sebelumnya.

Oleh kerana proses cadangannya agak matang, bahasa hanya dapat diperbaiki dengan cara yang pragmatik dan terkawal. Ini adalah masa yang tepat untuk pemaju web!

FAQs Mengenai Pengurusan Versi JavaScript: ES6 dan ES2015

Apakah perbezaan utama antara ES6 dan ES2015?

ES6 dan ES2015 pada dasarnya sama. ES6 adalah edisi keenam bahasa pengaturcaraan ECMAScript di peringkat antarabangsa oleh ECMA. ES2015 hanyalah nama baru untuk ES6, mencerminkan tahun yang dikeluarkan. Renames dimaksudkan untuk mencerminkan tahun pelepasan dan menyingkirkan nombor versi, yang boleh mengelirukan.

mengapa menamakan semula ES6 hingga ES2015?

dinamakan semula ES6 hingga ES2015 untuk mencerminkan tahun pelepasannya dan menyingkirkan nombor versi. Langkah ini adalah untuk mengelakkan kekeliruan dan menunjukkan bahawa JavaScript adalah bahasa dinamik yang sentiasa dikemas kini dan diperbaiki. Konvensyen penamaan baru juga membantu untuk menunjukkan keteraturan kemas kini bahasa dan penambahbaikan.

Ciri -ciri utama apa yang diperkenalkan dalam ES6/ES2015?

es6/es2015 memperkenalkan banyak ciri baru untuk JavaScript, termasuk let dan const untuk pengisytiharan berubah-ubah, fungsi anak panah untuk sintaks fungsi yang lebih pendek, literasi templat untuk interpolasi rentetan, untuk kelas pengaturcaraan berorientasikan objek, berjanji untuk pengaturcaraan asynchronous, modul untuk organisasi kod, dan sebagainya.

ES6/ES2015 Bagaimana untuk memperbaiki pengekodan JavaScript?

ES6/ES2015 meningkatkan pengekodan JavaScript dalam pelbagai cara. Ia memperkenalkan sintaks baru dan ciri -ciri yang menjadikan bahasa lebih kuat dan lebih mudah digunakan. Sebagai contoh, Fungsi Arrow menyediakan sintaks yang lebih bersih untuk penulisan fungsi, sementara janji membuat pengendalian operasi asynchronous lebih mudah. Pengenalan modul juga membantu untuk mengatur kod yang lebih baik, menjadikannya lebih mudah untuk mengurus dan mengekalkan.

Bagaimana untuk memulakan menggunakan ciri ES6/ES2015 dalam kod JavaScript saya?

Untuk memulakan dengan ciri ES6/ES2015 dalam kod JavaScript, anda boleh menggunakan penterjemah seperti Babel yang menukarkan kod ES6 ke dalam kod ES5 yang boleh dijalankan dalam penyemak imbas semasa. Anda juga boleh menggunakan pembungkus modul seperti webpack untuk mengurus dan membungkus modul JavaScript anda.

Adakah terdapat masalah keserasian dengan ES6/ES2015?

Walaupun kebanyakan ciri ES6/ES2015 disokong oleh pelayar yang paling moden, mungkin terdapat beberapa masalah keserasian dengan pelayar yang lebih tua. Untuk memastikan keserasian, anda boleh menggunakan polyfill, yang menyediakan ciri -ciri yang anda harapkan sokongan asli dari penyemak imbas anda.

Apakah perbezaan antara JavaScript dan ECMAScript?

JavaScript adalah bahasa pengaturcaraan yang asalnya dibangunkan oleh Netscape. ECMAScript adalah versi standard JavaScript yang diseragamkan di peringkat antarabangsa oleh ECMA. JavaScript melaksanakan ECMAScript, yang bermaksud ia mengikuti peraturan dan struktur yang ditakrifkan dalam piawaian ECMAScript.

Apakah masa depan JavaScript selepas ES6/ES2015?

Selepas ES6/ES2015, JavaScript akan terus berkembang, dengan versi baru yang dikeluarkan setiap tahun, dan setiap versi memperkenalkan ciri dan penambahbaikan baru. Masa depan JavaScript mungkin melihat ciri -ciri yang lebih kukuh, prestasi yang lebih baik, dan keserasian yang lebih tinggi di seluruh platform dan peranti yang berbeza.

Apakah hubungan antara TypeScript dan ES6/ES2015?

TypeScript adalah superset JavaScript yang menambah jenis statik ke bahasa. Ia menyokong semua ciri ES6/ES2015, dan juga beberapa ciri tambahan yang tidak terdapat dalam JavaScript. Kod TypeScript diterjemahkan ke JavaScript, jadi ia boleh berjalan di mana -mana persekitaran JavaScript.

Apakah faedah menggunakan ES6/ES2015 daripada menggunakan versi awal JavaScript?

Menggunakan ES6/ES2015 menawarkan banyak faedah berbanding dengan versi awal JavaScript. Ia memperkenalkan sintaks baru dan ciri -ciri yang menjadikan bahasa lebih kuat dan lebih mudah digunakan. Ia juga meningkatkan organisasi kod dan penyelenggaraan dan memberikan sokongan yang lebih baik untuk aplikasi kompleks dan pangkalan kod besar.

Atas ialah kandungan terperinci ES6 (ES2015) dan Beyond: Memahami Versi JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan