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
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:
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.
Ini adalah langkah mudah yang membolehkan penyerahan idea kepada spesifikasi. Sesiapa sahaja boleh membuat cadangan ciri-i.e.
fasa pertama formalisasi cadangan. Mesti:
Seseorang yang bertanggungjawab mesti dipilih untuk mengadopsi dan memajukan cadangan tersebut. Orang ini mestilah ahli TC39. Peringkat 2: Draf (Draf)
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.
Cadangan ini telah diterima dan boleh ditambah kepada ECMAScript. Oleh itu, ia sememangnya:
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.
Juga dikenali sebagai ES7, ini adalah versi pertama yang lebih kecil, tambahan ECMAScript. Selain pembetulan pepijat, ia hanya menambah dua ciri.
Kaedah Contoh ini memudahkan operasi mencari nilai dalam array:
// ES2016 之前: const hasBob = names.indexOf('bob') > -1; // ES2016: const hasBob = names.includes('bob');
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
ES2017 (aka ES8) adalah versi yang lebih besar yang mengandungi beberapa kaedah berguna dan struktur sintaks.
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; };
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';
Ciri -ciri lain termasuk koma trailing, memori bersama dan operasi atom, dan kaedah objek statik (object.entries (), object.values (), dan object.getownPropertyDescriptors ()).
Pada masa penulisan, pelepasan terbaru ini memperkenalkan sebilangan kecil ciri baru yang kuat.
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');
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
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
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.
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.
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 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.
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.
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.
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.
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.
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.
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!