Section Artikel
ECMAScript 6 juga dikenal sebagai ES6 dan ECMAScript 2015.
Beberapa orang menyebutnya JavaScript 6.
Bab ini akan memperkenalkan beberapa fitur baru di ES6.
Safari 10 dan Edge 14 adalah browser pertama yang sepenuhnya mendukung ES6:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 58 | Edge 14 | Firefox 54 | Safari 10 | Opera 55 |
Jan 2017 | Aug 2016 | Mar 2017 | Jul 2016 | Aug 2018 |
Pernyataan let memungkinkan untuk mendeklarasikan variabel dengan cakupan blok.
Contoh:
<!DOCTYPE html> <html> <body> <h2>Mendeklarasikan Variabel Menggunakan let</h2> <p id="demo"></p> <script> var x = 10; // Here x is 10 { let x = 2; // Here x is 2 } // Here x is 10 document.getElementById("demo").innerHTML = x; </script> </body> </html>
Pernyataan const memungkinkan untuk mendeklarasikan konstanta (variabel JavaScript dengan nilai konstan).
Konstanta mirip dengan variabel let, kecuali nilainya tidak dapat diubah.
Contoh:
<!DOCTYPE html> <html> <body> <h2>Mendeklarasikan Variabel Menggunakan const</h2> <p id="demo"></p> <script> var x = 10; // Here x is 10 { const x = 2; // Here x is 2 } // Here x is 10 document.getElementById("demo").innerHTML = x; </script> </body> </html>
Fungsi panah memungkinkan sintaks lebih pendek untuk menulis ekspresi fungsi.
Kita tidak memerlukan kata kunci function, kata kunci return, dan tanda kurung kurawal.
Contoh:
<!DOCTYPE html> <html> <body> <h2>JavaScript Fungsi Panah</h2> <p>Kita tidak memerlukan kata kunci function, kata kunci return, dan tanda kurung kurawal.</p> <p>Fungsi panah tidak didukung di IE11 atau versi sebelumnya.</p> <p id="demo"></p> <script> const x = (x, y) => x * y; document.getElementById("demo").innerHTML = x(5, 5); </script> </body> </html>
Fungsi panah tidak memiliki this. Mereka tidak cocok untuk mendefinisikan metode objek.
Fungsi panah tidak diangkat (hoisting). Mereka harus ditentukan sebelum digunakan.
Menggunakan const lebih aman daripada menggunakan var, karena ekspresi fungsi selalu berupa nilai konstan.
Anda hanya dapat menghilangkan kata kunci return dan tanda kurung kurawal jika fungsinya berupa pernyataan tunggal.
Contoh:
<!DOCTYPE html> <html> <body> <h2> Fungsi Panah JavaScript </h2> <p> Fungsi panah tidak didukung di IE11 atau versi sebelumnya. </p> <p id="demo"></p> <script> const x = (x, y) => { return x * y }; document.getElementById("demo").innerHTML = x(5, 5); </script> </body> </html>
ES6 memperkenalkan kelas.
Kelas adalah jenis fungsi, tetapi alih-alih menggunakan kata kunci function untuk memulainya, justru menggunakan kata kunci class, dan properti ditetapkan di dalam metode constructor().
Gunakan kata kunci class untuk membuat kelas, dan selalu tambahkan metode constructor.
Metode constructor dipanggil setiap kali objek kelas diinisialisasi.
Contoh:
Definisi kelas sederhana untuk kelas bernama “Car”
class Car { constructor(brand) { this.carname = brand; } }
Sekarang Anda dapat membuat objek menggunakan kelas Car:
Contoh
Buat objek bernama “myCar” berdasarkan kelas Car:
<!DOCTYPE html> <html> <body> <h2>JavaScript Class</h2> <p> Dalam contoh ini kami mendemonstrasikan definisi kelas sederhana dan cara menggunakannya. </p> <p id="demo"></p> <script> class Car { constructor(brand) { this.carname = brand; } } let myCar = new Car("Ford"); document.getElementById("demo").innerHTML = myCar.carname; </script> </body> </html>
ES6 memungkinkan parameter fungsi memiliki nilai default.
Contoh:
<!DOCTYPE html> <html> <body> <h2>Nilai Parameter Default</h2> <p id="demo"></p> <script> function myFunction(x, y = 10) { // y is 10 if not passed or undefined return x + y; } document.getElementById("demo").innerHTML = myFunction(5); </script> </body> </html>
Metode find() mengembalikan nilai elemen array pertama yang lolos fungsi pengujian.
Contoh ini menemukan (mengembalikan nilai) elemen pertama yang lebih besar dari 18:
Contoh
<!DOCTYPE html> <html> <body> <h2>JavaScript Array.find()</h2> <p id="demo"></p> <script> var numbers = [4, 9, 16, 25, 29]; var first = numbers.find(myFunction); document.getElementById("demo").innerHTML = "Angka pertama di atas 18 adalah " + first; function myFunction(value, index, array) { return value > 18; } </script> </body> </html>
Perhatikan bahwa fungsi tersebut membutuhkan 3 argumen:
Metode findIndex() mengembalikan indeks elemen array pertama yang lolos fungsi pengujian.
Contoh ini menemukan indeks elemen pertama yang lebih besar dari 18:
Contoh
<!DOCTYPE html> <html> <body> <h2>JavaScript Array.findIndex()</h2> <p id="demo"></p> <script> var numbers = [4, 9, 16, 25, 29]; var first = numbers.findIndex(myFunction); document.getElementById("demo").innerHTML = "Angka pertama di atas 18 memiliki indeks " + first; function myFunction(value, index, array) { return value > 18; } </script> </body> </html>
Perhatikan bahwa fungsi tersebut membutuhkan 3 argumen:
ES6 menambahkan properti berikut ke objek Number:
Contoh
<!DOCTYPE html> <html> <body> <h2>Number Object Properti</h2> <p>EPSILON</p> <p id="demo"></p> <script> var x = Number.EPSILON; document.getElementById("demo").innerHTML = x; </script> </body> </html>
<!DOCTYPE html> <html> <body> <h2>Number Object Properti</h2> <p>MIN_SAFE_INTEGER</p> <p id="demo"></p> <script> var x = Number.MIN_SAFE_INTEGER; document.getElementById("demo").innerHTML = x; </script> </body> </html>
<!DOCTYPE html> <html> <body> <h2>Number Object Properti</h2> <p>MAX_SAFE_INTEGER</p> <p id="demo"></p> <script> var x = Number.MAX_SAFE_INTEGER; document.getElementById("demo").innerHTML = x; </script> </body> </html>
ES6 menambahkan 2 metode baru ke objek Number:\
Number.isInteger()
Number.isSafeInteger()
Metode Number.isInteger() mengembalikan nilai true jika argumennya adalah integer.
Contoh
<!DOCTYPE html> <html> <body> <h2>JavaScript Number Methods</h2> <p> Metode isInteger() mengembalikan nilai true jika argumennya adalah integer. </p> <p> Jika tidak, hasilnya adalah false. </p> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = Number.isInteger(10) + "<br>" + Number.isInteger(10.5); </script> </body> </html>
Number.isSafeInteger() adalah bilangan bulat yang dapat direpresentasikan dengan tepat sebagai angka presisi ganda.
Metode Number.isSafeInteger () mengembalikan nilai true jika argumennya adalah integer yang aman.
Contoh
<!DOCTYPE html> <html> <body> <h2>JavaScript Number Methods</h2> <p> Metode isSafeInteger() mengembalikan nilai true jika argumennya adalah integer yang aman. </p> <p> Jika tidak, hasilnya adalah false. </p> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = Number.isSafeInteger(10) + "<br>" + Number.isSafeInteger(12345678901234567890); </script> </body> </html>
Semua bilangan bulat aman adalah semua bilangan bulat dari – (253 – 1) hingga + (253 – 1).
Ini aman: 9007199254740991. Ini tidak aman: 9007199254740992.
ES6 juga menambahkan 2 metode nomor global baru:
Metode global isFinite () mengembalikan false jika argumennya adalah Infinity atau NaN.
Jika tidak, itu mengembalikan true:
Contoh
<!DOCTYPE html> <html> <body> <h2>JavaScript Number Methods</h2> <p> Metode isFinite () menampilkan false jika argumennya adalah Infinity atau NaN. </p> <p> Jika tidak, hasilnya akan benar. </p> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = isFinite(10 / 0) + "<br>" + isFinite(10 / 1); </script> </body> </html>
Metode isNaN () global mengembalikan nilai true jika argumennya adalah NaN. Jika tidak, itu mengembalikan salah:
Contoh
<!DOCTYPE html> <html> <body> <h2>JavaScript Number Methods</h2> <p> Metode isNan () mengembalikan nilai true jika argumennya adalah NaN. Jika tidak, hasilnya adalah false. </p> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = isNaN("Hello") + "<br>" + isNaN("10"); </script> </body> </html>
Operator eksponen (**) menaikkan operan pertama ke pangkat operan kedua.
Contoh
<!DOCTYPE html> <html> <body> <h2>Operator **</h2> <p id="demo"></p> <script> var x = 5; document.getElementById("demo").innerHTML = x ** 2; </script> </body> </html>
x ** y menghasilkan hasil yang sama dengan Math.pow (x, y):
<!DOCTYPE html> <html> <body> <h2>Math.pow()</h2> <p id="demo"></p> <script> var x = 5; document.getElementById("demo").innerHTML = Math.pow(x,2); </script> </body> </html>