Tipe Asli ECMAScript

ECMAScript memiliki 5 tipe asli (primitive type), yaitu Undefined, Null, Boolean, Number, dan String.

Operator typeof

Operator typeof memiliki parameter, yaitu variabel atau nilai yang akan diecek. Contohnya:

var sTemp = "test string";
alert (typeof sTemp);    //keluaran "string"
alert (typeof 86);    //keluaran "number"

Panggilan operator typeof terhadap variabel atau nilai akan mengembalikan salah satu nilai berikut:

  • undefined - jika variabel adalah tipe Undefined
  • boolean - jika variabel adalah tipe Boolean
  • number - jika variabel adalah tipe Number
  • string - jika variabel adalah tipe String
  • object - jika variabel adalah tipe referensi atau tipe Null

Catatan:Anda mungkin akan bertanya, mengapa operator typeof untuk nilai null akan mengembalikan "Object". Ini adalah kesalahan yang terjadi dalam implementasi awal JavaScript, dan kemudian diikuti ECMAScript. Sekarang, null dianggap sebagai placeholder objek, yang menjelaskan konflik ini, tetapi secara teknis masih adalah nilai primitif.

Tipe Undefined

Seperti yang disebutkan sebelumnya, tipe Undefined hanya memiliki satu nilai, yaitu undefined. Saat variabel yang dideklarasikan belum diinisialisasi, nilai default variabel adalah undefined.

var oTemp;

Baris kode di atas mendeklarasikan variabel oTemp tanpa nilai awal. Variabel ini akan diberikan nilai "undefined", yaitu ekuivalen nilai teks. Dapat menggunakan kode berikut untuk menguji apakah nilai variabel sama dengan undefined:

var oTemp;
alert(oTemp == undefined);

Kode ini akan menampilkan "true", yang menunjukkan bahwa kedua nilai ini sebenarnya sama. Dapat juga menampilkan nilai variabel menggunakan operator typeof:

var oTemp;
alert(typeof oTemp); //keluaran "undefined"

Petunjuk:Nilai undefined berbeda dari nilai yang belum diatur. Tetapi, operator typeof tidak benar-benar membedakan kedua nilai ini. Dengan berikut ini adalah contoh kode:

var oTemp;
alert(typeof oTemp);  //keluaran "undefined"
alert(typeof oTemp2);  //keluaran "undefined"

Kode di atas mengeluarkan "undefined" untuk kedua variabel, meskipun hanya variabel oTemp2 yang belum pernah dideklarasikan. Jika digunakan operator selain typeof, akan memicu kesalahan, karena operator lain hanya dapat digunakan untuk variabel yang telah dideklarasikan.

Contoh, kode berikut akan memicu kesalahan:

var oTemp;
alert(oTemp2 == undefined);

Ketika fungsi tidak mengembalikan nilai yang jelas, nilai yang dikembalikan juga adalah "undefined", seperti berikut:

function testFunc() {
{}
alert(testFunc() == undefined);  //keluaran "true"

Tipe Null

Tipe lain yang hanya memiliki satu nilai adalah Null, yang hanya memiliki nilai spesial null, yaitu ekuivalennya. Nilai undefined sebenarnya berasal dari nilai null, sehingga ECMAScript mendefinisikannya sama.

alert(null == undefined);  //keluaran "true"

Walaupun kedua nilai ini sama, arti mereka berbeda. undefined adalah nilai yang diberikan kepada variabel yang belum diinisialisasi, sementara null digunakan untuk menunjukkan objek yang belum ada (telah disingkat dalam diskusi operator typeof). Jika fungsi atau method harus mengembalikan objek, biasanya nilai yang dikembalikan adalah null ketika objek tidak ditemukan.

Tipe Boolean

Tipe Boolean adalah salah satu tipe yang paling sering digunakan di ECMAScript. Ia memiliki dua nilai true dan false (yaitu dua ekuivalen Boolean).

Meskipun false tidak sama dengan 0, 0 dapat diubah menjadi false saat diperlukan, sehingga kedua-duanya aman untuk digunakan dalam pernyataan Boolean.

var bFound = true;
var bLost = false;

Tipe Number

Tipe yang paling istimewa yang didefinisikan dalam ECMA-262 adalah tipe Number. Tipe ini dapat menampilkan bilangan bulat 32 bit dan bilangan desimal 64 bit.

Setiap angka yang dimasukkan langsung (tidak dari variabel lain) dianggap ekspresi literal tipe Number. Contoh, kode di bawah menyatakan variabel yang menyimpan nilai bilangan bulat, nilai ini ditentukan oleh literal 86:

var iNum = 86;

Bilangan oktal dan heksadesimal

Bilangan bulat juga dapat ditulis dalam ekspresi bilangan oktal (dengan dasar 8) atau heksadesimal (dengan dasar 16). Ekspresi bilangan oktal harus dimulai dengan 0, dan digit setelahnya dapat berupa digit oktal (0 sampai 7), seperti yang ditunjukkan di kode di bawah:

var iNum = 070;  //070 sama dengan desimal 56

Untuk membuat ekspresi bilangan heksadesimal, digit pertama harus adalah 0, diikuti dengan huruf x, lalu diikuti dengan digit heksadesimal (0 sampai 9 dan A sampai F). Huruf ini dapat berupa huruf besar atau kecil. Contoh:

var iNum = 0x1f;  //0x1f sama dengan desimal 31
var iNum = 0xAB;  //0xAB sama dengan desimal 171

Petunjuk:Walaupun semua bilangan bulat dapat ditulis dalam ekspresi bilangan oktal atau heksadesimal, semua operasi matematika mengembalikan hasil desimal.

Bilangan desimal

Untuk mendefinisikan nilai desimal, harus termasuk titik desimal dan satu digit setelah titik desimal (misalnya, gunakan 1.0 bukannya 1). Ini dianggap ekspresi desimal. Contoh:

var fNum = 5.0;

Karakter menarik dari ekspresi desimal floating-point adalah, sebelum menghitungnya, yang sebenarnya disimpan adalah string.

Sistem bilangan ilmiah

Untuk angka yang sangat besar atau sangat kecil, dapat digunakan sistem bilangan ilmiah untuk menulis bilangan desimal, dapat menulis angka (termasuk angka desimal) ditambahkan e (atau E), kemudian ditambahkan kali 10 kali faktor. Contoh:

var fNum = 5.618e7

Simbol ini menunjukkan angka 56180000. Dengan mengkonversi sistem bilangan ilmiah ke ekspresi hitung dapat mendapatkan nilai ini: 5.618 x 107

Juga dapat digunakan untuk menulis angka yang sangat kecil dengan sistem bilangan ilmiah, misalnya 0.00000000000000008 dapat ditulis sebagai 8-e17(Di sini, 10 dipangkatkan ke -17, yang berarti perlu dibagi 10 sebanyak 17 kali). ECMAScript secara default mengkonversi bilangan floating-point dengan 6 atau lebih nol awal ke notasi bilangan ilmiah.

Petunjuk:Juga dapat disimpan dalam bentuk 64-bit IEEE 754 untuk nilai floating-point, yang berarti nilai desimal dapat memiliki maksimal 17 digit desimal. Nilai setelah 17 digit akan di potong, sehingga mengakibatkan kesalahan kecil dalam matematika.

Nilai Number khusus

Beberapa nilai khusus juga didefinisikan untuk tipe Number. Dua yang pertama adalah Number.MAX_VALUE dan Number.MIN_VALUE, yang menentukan batas ekstrem koleksi nilai Number. Semua angka ECMAScript harus berada di antara kedua nilai ini. Namun, hasil perhitungan dapat berada di luar kedua nilai ini.

Ketika angka yang dihitung melebihi Number.MAX_VALUE, ia akan diberikan nilai Number.POSITIVE_INFINITY, yang berarti tidak ada nilai angka lain. Juga, perhitungan nilai yang kecil dari Number.MIN_VALUE akan diberikan nilai Number.NEGATIVE_INFINITY, yang berarti tidak ada nilai angka lain. Jika perhitungan mengembalikan nilai tak hingga, hasil yang dihasilkan tidak dapat digunakan dalam perhitungan lain.

Fakta adalah, ada nilai khusus yang ditunjuk untuk tak hingga, yaitu Infinity. Nilai Number.POSITIVE_INFINITY adalah Infinity. Nilai Number.NEGATIVE_INFINITY adalah -Infinity.

Karena angka tak hingga dapat berupa positif atau negatif, jadi dapat digunakan metode untuk mengecek apakah angka ada batas (tidak hanya tes setiap angka tak hingga). Metode isFinite() dapat dipanggil untuk setiap angka untuk memastikan bahwa angka tersebut bukan angka tak hingga. Contohnya:

var iResult = iNum * some_really_large_number;
if (isFinite(iResult)) {
    alert("finite");
{}
else {
    alert("infinite");
{}

Nilai khusus terakhir adalah NaN, yang berarti Bukan Angka (Not a Number). NaN adalah nilai khusus yang menarik. Biasanya, hal ini terjadi saat konversi tipe (String, Boolean, dll) gagal. Contohnya, konversi kata 'blue' ke angka akan gagal, karena tidak ada angka yang setara dengannya. Sama seperti tak hingga, NaN juga tidak dapat digunakan dalam perhitungan aritmetika. Satu hal yang aneh lainnya tentang NaN adalah, ia tidak sama dengan dirinya sendiri, yang berarti kode di bawah ini akan mengembalikan nilai false:

alert(NaN == NaN);  //keluaran "false"

Karena alasan ini, direkomendasikan untuk tidak menggunakan nilai NaN sendiri. Fungsi isNaN() akan melakukan sangat baik:

alert(isNaN("blue"));  //keluaran "true"
alert(isNaN("666"));  //keluaran "false"

Tipe String

Karakter unik tipe String adalah ia adalah tipe asli yang tidak memiliki ukuran tetap. String dapat menyimpan 0 atau lebih karakter Unicode, diwakili oleh bilangan integer 16 bit (Unicode adalah karakter set internasional, akan disebutkan di tutorial ini).

Setiap karakter dalam string memiliki posisi yang khusus, karakter pertama mulai dari posisi 0, karakter kedua di posisi 1, dan seterusnya. Ini berarti posisi karakter terakhir di string pasti adalah panjang string - 1:

Panjang string dan posisi karakter

Literals string ditandai dengan petik ganda (" ) atau petik tunggal (') dan Java menggunakan petik ganda untuk deklarasikan string, petik tunggal untuk deklarasikan karakter. Tetapi karena ECMAScript tidak memiliki tipe karakter, keduanya dapat digunakan. Contohnya, baris kode berikut ini adalah yang berlaku:

var sColor1 = "red";
var sColor2 = 'red';

Tipe String juga termasuk beberapa literals karakter, para pengembang Java, C, dan Perl seharusnya sangat akrab dengan hal ini.

Berikut ini adalah daftar literals karakter ECMAScript:

literals arti
\n garis baris
\t tab
\b spasi
\r enter
\f tabulaasi
\\\ backslash
\' petik tunggal
\" petik ganda
\0nnn kode oktal nnn menunjukkan karaktern adalah satu dari bilangan oktal 0 sampai 7)
\xnn kode heksadesimal nn menunjukkan karaktern adalah satu dari bilangan heksadesimal 0 sampai F)
\unnnn kode heksadesimal nnnn menunjukkan karakter Unicoden adalah satu dari bilangan heksadesimal 0 sampai F)