1 2 3 4 5 |
let foo = 'string'; // tipe data saat ini string foo = 23; // sekarang menjadi tipe data number foo = true; // sekarang berubah menjadi tipe data boolean |
Tipe Data Primitive
Tipe data primitive merupakan tipe data yang bersifat immutable, artinya dalam tipe data jenis ini nilai tidak dapat dirubah atau di manipulasi. Tipe data primitive memiliki 7 jenis tipe data diantaranya:1. Boolean
Tipe data boolean mengambarkan entitas logika, boolean hanya memiliki 2 kondisi yaitu true dan false. Perhatikan kode berikut ini
1 2 3 |
const foo = true // boolean dengan kondisi true const foo2 = false // boolean dengan kondisi false |
2. String Literal
String atau dapat disebut dengan string literal adalah tipe data yang merepresentasikan data yang bersifat textual. Penulisan tipe data jenis ini dengan menggunakan singgle quote (‘’) atau dapat juga menggunakan double quote (“”).
1 2 3 4 5 |
// menggunakan double quote const alamat = "rumah saya no 40" // atau dapat menggunakan single quote const kota = 'pontianak' |
1 |
const name = 'I\'m Muhammad Iqbal'; // output -> I'm Muhammad Iqbal |
1 2 |
const name = 'I\'m Muhammad Iqbal' + ' and i live in pontianak'; // output -> I'm Muhammad Iqbal and i live in pontianak |
3. Number
Apabila value berupa angka maka javascript akan menggap ini sebagai tipe data number baik angka tersebut desimal (interger) atau pecahan (float).
1 2 3 4 5 |
// number untuk integer const angka = 121 // number juga bisa menjadi float const angkaPecahan = 7.5 |
4. Bigint
Sesuai dengan namanya bigint artinya bilangan decimal yang besar. Bigint adalah integer presisi yang mampu mewakili bilangan bulat uang lebih besar dari 253 -1. Jika hanya mengandalkan tipe dataa number/integer maka maksimal penggunaan 9007199254740992. Apabila jumlahnya melebihi dari 9007199254740992, integer tidak support. Perhatikan kode dibawah ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
const limit = Number.MAX_SAFE_INTEGER; // output -> 9007199254740991 limit + 1 // output -> 9007199254740992 limit + 2 // output -> 9007199254740992 <-- mengunci nilai Number.MAX_SAFE_INTEGER + 1 /* Seharusnya Number.MAX_SAFE_INTEGER = 9007199254740991 + 2 = 9007199254740993 Akan tetapi otuput yang dihasilkan tetap 9007199254740992. Hal ini disebabkan karena melewati batas maximal Number.MAX_SAFE_INTEGER + 1 */ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// cara pertama deklarasi tipe data bigint const bilangBesar = 9007199254740991n; // cara kedua deklarasi tipedata bigint const bilanganBesarJuga = BigInt(9007199254740991); // batas maksimal int const maksimal = BigInt(Number.MAX_SAFE_INTEGER); // batas maksimal di kali 2 const maksimalDikali2 = maksimal * 2n; // mengetahui tipe data console.log(typeof bilangBesar); // output -> bigint //hasil perkalian 2 batas maksimal (9007199254740991n * 2n) console.log(maksimalDikali2); // output -> 18014398509481982n |
5. Symbol
Tipe data symbol diperkenalkan oleh ES6, symbol merupakan tipe data primitive yang bersifat immutable(tidak dapat berubah). Setiap tipe data symbol akan mengembalikan dengan nilai Symbol() karena penggunaan tipe data ini menggunakan fungsi Symbol(). Karean tujuan dari penggunaan fungsi symbol adalah untuk melakukan identifikasi property pada objek dikarenakan tipe data symbol bersifat unik.
1 2 3 4 5 6 7 8 9 10 11 12 |
// tipe data symbol akan mengembalikan data symbol() const symbol1 = Symbol(); // output -> Symbol() // deklarasi dengan dua nilai symbol() yang sama const symbol2 = Symbol(23); const symbol3 = Symbol(23); console.log(symbol2 === symbol3); // output -> false // meskipun nilai kedua variable sama // akan tetapi tetap menghasilkan nilai false // karena fungsi symbol bersifat unik // berarti symbol akan tetap menganggap kedua variable tersebut berbeda |
Syntak Symbol.
Symbol([deskripsi]) Keterangan: Deskripsi besifat optional, deskripsi digunakan pada saat debugging, karena kita tidak dapat mengakses nilai pada symbol. Symbol memiliki ciri yaitu tidak dapat di konversi dalam sebagai string. Meskipun hampir semua tipe data mendukung secara implisit untuk di konversi sebagai string dengan bantuan fungsi alert() akan tetapi Symbol tidak dapatmelakukannya.
1 2 3 |
const symbol1 = Symbol("sym"); alert(symbol1); // output -> TypeError: Cannot convert a Symbol value to a string |
1 2 3 4 5 |
const symbol1 = Symbol("sym"); alert(symbol1.toString()); // output -> Symbol("sym") alert(symbol1.description); // output -> sym |
6. Null
Null yaitu merepresentasikan nilai kosong/tidak ada nilai sama sekali. berbeda apabila anda menuliskan string kosong untuk mendefenisikan variable. javascript akan tetap menganggap bahwa variable tersebut bernilai string. Pemberian nilai null dilakukan secara sengaja, yang bertujuan untuk mendefenisikan variable tanpa nilai atau kosong.
1 2 3 4 5 6 |
const foo = null; console.log(foo); // output -> null // ini merupakan kesalahan saat pengembangan awal javascript console.log(typeof null); // output -> object |
7. Undefined
Mudahnya untuk memahami undefined yaitu variable yang belum didefenisikan atau tidak diberi nilai. Perhatikan kode berikut ini.
1 2 3 4 5 |
const foo console.log(foo); // output -> undefined console.log(typeof foo); // output -> undefined |
1 2 3 |
const foo = undefined; console.log(foo); // output -> undefined |
Tipe Data Object
Tipe data object adalah tipe data yang bersifat mutable, artinya data ini dapat dimanupulasi berdasarkan method yang disediakan oleh tipe data ini. klasifikasi tipe data object dibagi menjadi dua yaitu Function, Array dan Object. dikarenakan pembahasan tentang function, array dan objek sangat penting dan pembahasannya cukup panjang, kami akan membahasnya pada bab terpisah secara khusus.
Sumber: Tipe Data