JavaScript Data Type — Referensi Singkat dan Cukup Lengkap

Nilai (Values)

Nilai adalah representasi data yang bisa disimpan, dimanipulasi, dan dikirim.

Variable

Variable adalah binding ke sebuah nilai.

let x = 10;
x = 20;

Karakteristik:

Constant

Constant adalah variable yang tidak bisa di-reassign.

const PI = 3.14;

Catatan penting:

const obj = { a: 1 };
obj.a = 2; // valid

Data Type (Primitive & Non-Primitive)

JavaScript memiliki dua kategori utama:

Primitive Types

Karakteristik:

Non-Primitive (Reference Types)

Karakteristik:


Primitive Data Type

string

Representasi teks.

let name = "Ikhsan";

Karakteristik:

Operasi:

name.length
name.toUpperCase()

number

Representasi angka (integer & floating point).

let n = 10;
let pi = 3.14;

Catatan:


boolean

let isActive = true;

Digunakan untuk:


undefined

Nilai default ketika variable belum diberi nilai.

let x;
console.log(x); // undefined

null

Representasi "tidak ada nilai", berbeda dengan undefined "belum diberi nilai"

let x = null;

Catatan:


Built-in Objects

JavaScript menyediakan berbagai object bawaan:

String (Object)

new String("hello");

Jarang digunakan secara eksplisit.


Number (Object)

new Number(10);

Boolean (Object)

new Boolean(true);

Object

Struktur data key-value.

let obj = {};
let user = {
  name: "Ikhsan",
  age: 30
};

Function

Function adalah first-class object yang callable (bisa dipanggil).

function fn() {}
function greet() {
  return "Hello";
}

Karakteristik:


Date

let now = new Date();

RegExp

let pattern = /abc/;

Array

let arr = [1, 2, 3];

Karakteristik:


Error

throw new Error("Something went wrong");

Bekerja dengan Nilai dan Tipe Data

1. Representasi

let a = 10;
let b = a; // copy value

let obj1 = { x: 1 };
let obj2 = obj1; // copy reference

2. Karakteristik

Tipe Mutable Dibandingkan
Primitive Tidak Value
Object Ya Reference

3. Behaviour

Contoh perbedaan:

let a = 10;
let b = 10;
a === b; // true

let x = {};
let y = {};
x === y; // false

4. Mengecek Tipe

typeof

typeof "hello"; // string
typeof 10;      // number
typeof true;    // boolean
typeof undefined; // undefined
typeof {};      // object
typeof null;    // object (bug)

instanceof

[] instanceof Array; // true

Array.isArray

Array.isArray([]);

5. Mendefinisikan

let str = "text";
let num = 10;
let bool = true;
let obj = {};
let arr = [];
let fn = () => {};

6. Representasi Internal (Konseptual)

Ini merupakan model konseptual, bukan implementasi spesifik engine


7. Konversi Tipe (Type Conversion)

Implicit (Coercion)

"5" + 1; // "51"
"5" - 1; // 4
Hati-hati dengan Type Coercion

Perlu hati-hati, karena JavaScript dapat melakukan konversi tipe data secara implisit seperti contoh di atas.

Explicit

Number("10");
String(10);
Boolean(0); // false

8. Truthy & Falsy

Falsy:

Truthy:


9. Operasi

Arithmetic

+ - * / %

Comparison

==   // loose
===  // strict

Gunakan:

===

Logical

&&
||
!

Object Operations

obj.key
obj["key"]
delete obj.key

Array Operations

arr.push(1);
arr.pop();
arr.map(x => x * 2);

10. Equality & Identity

0 == false;  // true
0 === false; // false

Rekomendasi:


BelajarDev merupakan bagian dari eksperimen Muhammad Ikhsan di Smartech Studios.