Pilihan biner pilihan generator


ECMAScript 3. Jawatankuasa tidak pernah melepaskan standard ECMAScript 4 untuk mengelakkan kekeliruan dengan usaha sekarang yang tidak berfungsi dengan nama yang sama. Ciri-ciri ini berbeza-beza dari objek dan corak yang sama sekali baru kepada perubahan sintaks ke kaedah baru pada objek sedia ada. Perkara yang menarik tentang ECMAScript 6 ialah semua perubahannya ditujukan untuk menyelesaikan masalah yang sebenarnya dihadapi oleh pemaju.

ECMAScript 4 adalah besar dalam skop, memperkenalkan perubahan yang kecil dan besar kepada bahasa. Ciri-ciri yang dikemas kini termasuk sintaks baru, modul, kelas, warisan klasik, ahli objek peribadi, anotasi jenis pilihan dan banyak lagi.


Tiada Pengisytiharan Jika pengenal pasti telah ditakrifkan dalam skop, kemudian menggunakan pengecam dalam perisytiharan yang dibiarkan di dalam skop itu menyebabkan ralat dibuang. Sebagai contoh: Oleh kerana tidak akan mendefinisikan semula pengenal yang sudah ada dalam skop yang sama, pengisytiharan yang dibiarkan akan membuang kesilapan.

Apa yang anda ketahui sebagai JavaScript dalam pelayar dan Node. Pelayar dan Node. Pembangunan berterusan ECMA adalah penting untuk kejayaan JavaScript secara keseluruhan, dan buku ini meliputi perubahan yang disebabkan oleh kemas kini utama yang paling baru-baru ini kepada bahasa: ECMAScript 6.

Bab 1: Bagaimana Blok Bindings Berfungsi kerja tentang let dan const, penggantian peringkat blok untuk var. Bab 2: Strings dan Expressions Biasa merangkumi fungsi tambahan untuk manipulasi dan pemeriksaan tali serta pengenalan rentetan template. Bab 3: Ini termasuk borang fungsi anak panah, parameter lalai, parameter rest, dan banyak lagi.

TDZ tidak pernah dinamakan secara eksplisit dalam spesifikasi ECMAScript, tetapi istilah ini sering digunakan untuk menggambarkan mengapa perisytiharan let dan const tidak dapat diakses sebelum deklarasi mereka. Bahagian ini merangkumi beberapa perihal perisytiharan peletakan yang disebabkan oleh TDZ, dan walaupun contoh-contoh yang ditunjukkan menggunakan semua dibiarkan, perhatikan bahawa maklumat yang sama terpakai untuk const.


Ketenangan ini dalam cara konstanta berfungsi dengan objek mudah difahami. Ingatlah: Zon Temporal Mati Pemboleh ubah yang diisytiharkan dengan sama ada let atau const tidak boleh diakses sehingga selepas perisytiharan. Percubaan untuk melakukannya mengakibatkan ralat rujukan, walaupun menggunakan operasi yang normal seperti operasi jenis dalam contoh ini: Masalahnya adalah bahawa nilai wujud dalam apa yang disebut komunitas JavaScript sebagai TDZ zon mati temporal.

pilihan biner penjana isyarat

ECMAScript 6 melancarkan janji-janji dan menjadikannya tersedia secara lalai. Proksi dan API Refleksi memperkenalkan API pantulan rasmi untuk JavaScript dan objek proksi baru yang membolehkan anda memintas setiap operasi yang dilakukan pada sesuatu objek. Proxies memberi pemaju kawalan yang tidak pernah berlaku sebelumnya terhadap objek dan, oleh itu, kemungkinan yang tidak terbatas untuk menentukan corak interaksi baru.



Percubaan untuk menetapkan konstabel kepada pemalar yang ditetapkan sebelumnya akan membuang ralat, dalam kedua-dua mod yang ketat dan tidak ketat: Walau bagaimanapun, tidak seperti pemalar dalam bahasa lain, nilai pemanggangan tetap boleh diubah suai jika ia merupakan objek. Pengisytiharan Objek dengan Const A declaration const menghalang pengubahsuaian yang mengikat dan bukannya nilai itu sendiri. Ini bermakna pernyataan const untuk objek tidak menghalang pengubahsuaian objek tersebut. Apabila kod ini cuba memberikan nilai kepada orang yang cuba mengubah pengikatan, kesalahan akan dibuang.

Tujuannya ialah modul ini boleh menggantikan banyak format definisi modul ad-hoc yang telah muncul sejak beberapa tahun kebelakangan ini. Bab 9: Janji adalah usaha akar umbi yang akhirnya dimulakan dan mendapat populariti kerana sokongan perpustakaan yang luas. Begitu juga, beberapa nilai dari peta dapat dipadankan: Pada setiap lelaran, gelung membuat pemboleh ubah baru dan menginisialisasinya kepada nilai pembolehubah dengan nama yang sama dari lelaran sebelumnya. Apa yang anda ketahui sebagai JavaScript dalam pelayar dan Node, pilihan biner penjana isyarat. Pilihan biner pilihan generator Rauschmayer atas maklum balasnya dan beberapa perbualan yang membantu menjelaskan beberapa konsep yang dibincangkan dalam buku ini. Proksi dan API Refleksi memperkenalkan API pantulan rasmi untuk JavaScript dan objek proksi baru yang membolehkan anda memintas setiap operasi yang dilakukan pada sesuatu objek.

Atas sebab ini, setiap pemboleh ubah mesti diinisikan pada pengisytiharan, seperti yang ditunjukkan dalam contoh ini: Pembolehubah nama, bagaimanapun, akan menyebabkan ralat sintaks jika anda cuba menjalankan program yang mengandungi kod ini, kerana nama tidak dimulakan. Constants vs Let Declarations Constants, seperti let deklarasi, adalah deklarasi tahap blok.

Anda perlu mempunyai pemahaman asas yang baik mengenai bahasa untuk menggunakan buku ini. Banyak bab bermula dengan membincangkan masalah yang telah dilakukan oleh ECMAScript 6 untuk menyelesaikannya, untuk memberi anda konteks yang lebih luas untuk perubahan tersebut, dan semua bab termasuk contoh kod untuk membantu anda mempelajari sintaks dan konsep baru.

Ciri-ciri ini membolehkan anda bekerja dengan koleksi data dengan cara yang berkuasa yang tidak mungkin dalam versi JavaScript terdahulu. Bab 9: Seringkali satu titik kekeliruan bagi mereka yang datang dari bahasa lain, penambahan sintaks kelas dalam JavaScript menjadikan bahasa itu lebih mudah didekati oleh orang lain dan lebih ringkas bagi peminat.

Axel Rauschmayer atas maklum balasnya dan beberapa perbualan yang membantu menjelaskan beberapa konsep yang dibincangkan dalam buku ini. Terima kasih kepada semua orang yang menyerahkan pembetulan kepada versi buku ini yang dihoskan di GitHub: Juga, terima kasih kepada semua orang yang menyokong buku ini di Patreon: Casey Visco. Blok Bindings Secara tradisinya, cara kerja deklarasi ubahsuaian telah menjadi salah satu bahagian pemrograman dalam JavaScript.

Ciri-ciri bahasa yang diperkenalkan dalam ECMAScript 6 mewakili asas di mana aplikasi JavaScript akan dibina untuk masa depan yang boleh dijangka. Pelayar dan Nod. Khususnya, buku ini bertujuan untuk pengaturcaraan pemaju JavaScript antara muka untuk penyemak imbas atau Node. Buku ini bukan untuk pemula yang tidak pernah menulis JavaScript.

Sebaliknya, tiada kesilapan dilemparkan jika pengisytiharan letakan membuat pembolehubah baru dengan nama yang sama sebagai pemboleh ubah dalam skopnya yang mengandungi, seperti ditunjukkan dalam kod berikut: Di dalam blok jika, pembolehubah baru ini mewarnakan kiraan global, menghalang akses kepadanya sehingga pelaksanaan meninggalkan blok tersebut. Pembolehubah yang diisytiharkan menggunakan const dianggap pemalar, bermakna nilai mereka tidak boleh diubah setelah ditetapkan.

Skop perubahan ECMAScript 4 menyebabkan kecacatan untuk membentuk dalam TC, dengan beberapa ahli merasakan bahawa edisi keempat cuba untuk mencapai terlalu banyak.

Memandangkan perisytiharan tidak dinaikkan ke bahagian atas blok yang dilampirkan, anda mungkin mahu sentiasa meletakkan perisytiharan pertama di blok, supaya ia boleh didapati di seluruh blok. Jika keadaan menilai palsu, maka nilai tidak akan diisytiharkan atau dimulakan.

Bab 4: Fungsi Objek Diperluas menerangkan perubahan bagaimana objek dicipta, diubahsuai, dan digunakan. Topik termasuk perubahan pada objek sintaks literal, dan kaedah refleksi baru.

Ia sering mengambil pemaju JavaScript baru beberapa lama untuk membiasakan diri dengan deklarasi mengangkat, dan salah faham tingkah laku unik ini boleh menyebabkan penyebab pepijat. Deklarasi Tahap Blok Deklarasi peringkat blok adalah mereka yang mengisytiharkan pemboleh ubah yang tidak boleh diakses di luar skop blok yang diberikan. Skop blok, juga dikenali sebagai skop leksikal, diwujudkan: Biarkan Pengisytiharan Sintaks akuan pengumuman adalah sama dengan sintaks untuk var.

Keupayaan Array Peningkatan Bab memperincikan perubahan pada array asal dan cara baru yang menarik yang boleh digunakan dalam JavaScript. Promosi dan Pengaturcara Asynchronous memperkenalkan janji-janji sebagai bahagian baru bahasa.

Pengisytiharan Var dan Hoisting Pengisytiharan yang berubah-ubah dengan menggunakan var diperlakukan seolah-olah mereka berada di bahagian atas fungsi atau ruang lingkup global, jika dinyatakan di luar fungsi tanpa mengira di mana perisytiharan sebenar berlaku; ini dipanggil angkat. Untuk demonstrasi apa yang mengangkatnya, pertimbangkan definisi fungsi berikut: Malah, nilai pembolehubah dibuat tanpa mengira. Di sebalik tabir, enjin JavaScript mengubah fungsi getValue untuk kelihatan seperti ini: Ini bermakna nilai berubah sebenarnya masih boleh diakses dari dalam klausa lain.

pilihan biner penjana isyarat

Bab 5: Melancarkan untuk Akses Data Mudah memperkenalkan objek dan array pemusnahan, yang membolehkan anda untuk mengurai objek dan tatasusunan dengan menggunakan sintaks ringkas. Bab 6: Symbols and Symbol Properties memperkenalkan konsep simbol, cara baru untuk menentukan sifat. Simbol adalah jenis primitif baru yang boleh digunakan untuk mengaburi tetapi tidak menyembunyikan sifat objek dan kaedah.

Janji adalah usaha akar umbi yang akhirnya dimulakan dan mendapat populariti kerana sokongan perpustakaan yang luas.


Ini bermakna pemalar tidak lagi boleh diakses sebaik sahaja aliran keluar dari blok yang diisytiharkan dan pengisytiharan tidak dinaikkan, seperti ditunjukkan dalam contoh ini: Setelah penyataan selesai, maxItems tidak dapat diakses di luar blok tersebut. Dalam persamaan yang lain untuk dibiarkan, pernyataan const melemparkan kesilapan apabila dibuat dengan pengecam bagi pembolehubah yang telah ditetapkan dalam skop yang sama. Sebagai contoh, pertimbangkan kod ini: Walaupun terdapat persamaan, terdapat satu perbezaan besar antara let dan const untuk diingat.

Bab 7: Jenis ini memperluaskan kegunaan array dengan menambahkan semantik, de-duping, dan pengurusan memori yang direka khusus untuk JavaScript. Bab 8: Iterators and Generators membincangkan penambahan iterators dan generator kepada bahasa tersebut.

Encapsulating Code with Modules memperincikan format modul rasmi untuk JavaScript. Tujuannya ialah modul ini boleh menggantikan banyak format definisi modul ad-hoc yang telah muncul sejak beberapa tahun kebelakangan ini. Lampiran A: Apendiks B: Konvensyen yang Digunakan Konvensyen tipografi berikut digunakan dalam buku ini: Italics memperkenalkan istilah baru Lapisan yang tetap menunjukkan sekeping kod atau nama fail Selain itu, contoh kod yang lebih panjang terkandung dalam blok kod lebar tetap seperti: Bantuan dan Sokongan Anda boleh memfailkan isu-isu, mencadangkan perubahan, dan permintaan tarik terbuka terhadap buku ini dengan melawat: Pemahaman dan kesabaran mereka kerana produktiviti saya diperlahankan untuk merangkak semasa penyakit saya yang panjang adalah sesuatu yang saya tidak akan lupa.

Dalam kebanyakan bahasa berasaskan C, pemboleh ubah atau pengikatan diwujudkan di tempat di mana perisytiharan itu berlaku. Dalam JavaScript, bagaimanapun, ini tidak berlaku. Di mana pemboleh ubah anda sebenarnya dibuat bergantung kepada cara anda mengisytiharkannya, dan ECMAScript 6 menawarkan pilihan untuk membuat skop pengawalan lebih mudah. Bab ini menunjukkan mengapa deklarasi var klasik boleh mengelirukan, memperkenalkan pengikatan peringkat blok dalam ECMAScript 6, dan kemudian menawarkan beberapa amalan terbaik untuk menggunakannya.