jenis JavaScript
Dalam JavaScript ada 5 tipe data berbeda yang dapat berisi nilai:
string
number
boolean
object
function
Ada 6 jenis objek:
Object
Date
Array
String
Number
Boolean
Dan 2 tipe data yang tidak dapat berisi nilai:
null
undefined
Jenis Operator
Anda dapat menggunakan typeof
operator untuk menemukan tipe data variabel JavaScript.
Contoh
typeof "John"
// Returns "string"
typeof 3.14
// Returns "number"
typeof NaN
// Returns "number"
typeof false
// Returns "boolean"
typeof [1,2,3,4] // Returns
"object"
typeof {name:'John', age:34}
// Returns "object"
typeof new Date()
// Returns "object"
typeof function () {} // Returns
"function"
typeof myCar
// Returns "undefined" *
typeof null
// Returns "object"
Harap perhatikan:
- Tipe data NaN adalah angka
- Tipe data array adalah objek
- Tipe data tanggal adalah objek
- Tipe data null adalah objek
- Tipe data dari variabel yang tidak terdefinisi adalah tidak terdefinisi *
- Tipe data variabel yang belum diberi nilai juga tidak terdefinisi *
Anda tidak dapat menggunakan typeof
untuk menentukan apakah objek JavaScript adalah array (atau tanggal).
Data Primitif
Nilai data primitif adalah nilai data sederhana tunggal tanpa properti dan metode tambahan.
Operator typeof
dapat mengembalikan salah satu dari tipe primitif ini:
string
number
boolean
undefined
Contoh
typeof "John" // Returns
"string"
typeof 3.14 // Returns
"number"
typeof true // Returns
"boolean"
typeof false // Returns
"boolean"
typeof x
// Returns "undefined" (if x has no value)
Data Kompleks
Operator typeof
dapat mengembalikan salah satu dari dua tipe kompleks:
function
object
Operator typeof
mengembalikan "objek" untuk objek, array, dan null.
Operator typeof
tidak mengembalikan "objek" untuk fungsi.
Contoh
typeof {name:'John', age:34} // Returns "object"
typeof [1,2,3,4]
// Returns "object" (not "array", see note below)
typeof null // Returns
"object"
typeof function myFunc(){} // Returns "function"
Operator typeof
mengembalikan " object
" untuk array karena dalam JavaScript array adalah objek.
Tipe Data dari tipe
Operator typeof
bukan variabel. Ini adalah operator. Operator ( + - * / ) tidak memiliki tipe data apa pun.
Tapi, typeof
operator selalu mengembalikan string (berisi jenis operan).
Properti konstruktor
Properti constructor
mengembalikan fungsi konstruktor untuk semua variabel JavaScript.
Contoh
"John".constructor
// Returns function String() {[native code]}
(3.14).constructor
// Returns function Number() {[native code]}
false.constructor // Returns
function Boolean() {[native code]}
[1,2,3,4].constructor
// Returns function Array() {[native code]}
{name:'John',age:34}.constructor
// Returns function Object() {[native code]}
new Date().constructor
// Returns function Date() {[native code]}
function () {}.constructor // Returns
function Function(){[native code]}
Anda dapat memeriksa properti konstruktor untuk mengetahui apakah suatu objek adalah Array
(berisi kata "Array"):
Contoh
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
Atau bahkan lebih sederhana, Anda dapat memeriksa apakah objek tersebut adalah fungsi Array :
Contoh
function isArray(myArray) {
return myArray.constructor
=== Array;
}
Anda dapat memeriksa properti konstruktor untuk mengetahui apakah suatu objek adalah
Date
(berisi kata "Tanggal"):
Contoh
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
Atau bahkan lebih sederhana, Anda dapat memeriksa apakah objek tersebut adalah fungsi Date :
Contoh
function isDate(myDate) {
return myDate.constructor === Date;
}
Tidak terdefinisi
Dalam JavaScript, variabel tanpa nilai, memiliki nilai undefined
. Jenisnya juga undefined
.
Contoh
let car; // Value is undefined,
type is undefined
Variabel apa pun dapat dikosongkan, dengan menyetel nilainya ke undefined
. Jenisnya juga akan undefined
.
Contoh
car = undefined; // Value is undefined,
type is undefined
Nilai Kosong
Nilai kosong tidak ada hubungannya dengan undefined
.
String kosong memiliki nilai legal dan tipe.
Contoh
let car = ""; //
The value is
"", the typeof is "string"
Batal
Dalam JavaScript null
adalah "tidak ada". Itu seharusnya menjadi sesuatu yang tidak ada.
Sayangnya, dalam JavaScript, tipe datanya null
adalah objek.
Anda dapat menganggapnya sebagai bug dalam JavaScript yang typeof null
merupakan objek. Seharusnya null
.
Anda dapat mengosongkan objek dengan menyetelnya ke null
:
Contoh
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null; //
Now value is null,
but type is still an object
Anda juga dapat mengosongkan objek dengan menyetelnya ke undefined
:
Contoh
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined; //
Now both value and type is undefined
Perbedaan Antara Tidak Terdefinisi dan Null
undefined
dan null
sama nilainya tetapi berbeda jenisnya:
typeof undefined
// undefined
typeof null
// object
null === undefined
// false
null == undefined
// true