JavaScript Academy · Pelajaran

Scope Blok/Fungsi/Modul dan TDZ

Pahami scope blok, fungsi, dan modul; lihat TDZ secara langsung dan hindari kebocoran variabel.

Pelajaran 2 dari 38 langkah

Scope Blok/Fungsi/Modul dan TDZ adalah pelajaran JavaScript Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar JavaScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus JavaScript Academy mencakup 3 pelajaran total.

Pengantar

Tujuan: Ketahui tempat variabel berada dan kapan variabel tersebut dapat digunakan.

  • Lingkup blok (let/const)
  • Lingkup fungsi (var)
  • Lingkup modul
  • Keamanan TDZ
Scope Blok/Fungsi/Modul dan TDZ — ilustrasi 1

Demo lingkup blok

Lingkup blok menjaga variabel tetap lokal dalam sepasang kurung kurawal.

// Block scope: let/const exist only inside the braces
let lives = 3;

if (true) {
  const bonus = 5;
  let level = 1;
  console.log("Inside block:", bonus, level);
}

console.log("Lives:", lives);
// Uncommenting next line would fail (not in scope):
// console.log(bonus, level);
Scope Blok/Fungsi/Modul dan TDZ — ilustrasi 2

Lingkup fungsi dengan var

var memiliki lingkup fungsi, bukan lingkup blok. Utamakan let/const dalam JS modern.

// Function scope: var is visible across the whole function
function demo() {
  if (true) {
    var x = 10; // function-scoped
  }
  console.log("x is visible here:", x); // 10
}
demo();
Scope Blok/Fungsi/Modul dan TDZ — ilustrasi 3

Dasar lingkup modul

Lingkup modul: pengikatan tingkat teratas bersifat lokal untuk berkas tersebut (modul ES).

// Module scope: top-level variables are local to the module file
const appName = "CoddyKit";
console.log("App name:", appName);

// In a real project, this would be its own file/module.
// Other files must import to access appName.
Scope Blok/Fungsi/Modul dan TDZ — ilustrasi 4

Zona Mati Temporal

TDZ mencegah pembacaan terlalu dini yang tidak disengaja. Deklarasikan terlebih dahulu, lalu gunakan.

// TDZ: using let/const before declaration throws ReferenceError
try {
  // Uncommenting would trigger TDZ:
  // console.log(mode); // ReferenceError
  let mode = "dark";
  console.log("Mode after declare:", mode);
} catch (e) {
  console.log("Caught:", e.message);
}
Scope Blok/Fungsi/Modul dan TDZ — ilustrasi 5

Perangkap lingkup

Perangkap:

  • Jangan mencampur var dengan let/const dalam lingkup yang sama.
  • Deklarasikan variabel dekat dengan penggunaannya.
  • Hindari membaca nilai sebelum baris deklarasi (TDZ).
Scope Blok/Fungsi/Modul dan TDZ — ilustrasi 6

Kuis TDZ

Pemeriksaan cepat: Perilaku TDZ.

Scope Blok/Fungsi/Modul dan TDZ — ilustrasi 7

Ringkasan

Ringkasan: let/const memiliki lingkup blok; var memiliki lingkup fungsi; modul memiliki lingkup berkasnya sendiri; TDZ menghentikan akses terlalu dini.

Scope Blok/Fungsi/Modul dan TDZ — ilustrasi 8
Gratis untuk memulai

Belajar JavaScript dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
59
Pelajaran
200

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Scope Blok/Fungsi/Modul dan TDZ” gratis?

Ya — teks lengkap “Scope Blok/Fungsi/Modul dan TDZ” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus JavaScript Academy, upgrade ke CoddyKit PRO. Kursus JavaScript Academy mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Scope Blok/Fungsi/Modul dan TDZ”?

Pahami scope blok, fungsi, dan modul; lihat TDZ secara langsung dan hindari kebocoran variabel. Kamu berlatih JavaScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai JavaScript Academy?

Tidak diperlukan pengalaman sebelumnya. JavaScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 3.

Berapa lama pelajaran “Scope Blok/Fungsi/Modul dan TDZ” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran JavaScript Academy ini?

Ya. Setiap pelajaran JavaScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. let, const, dan Menghindari var
  2. Scope Blok/Fungsi/Modul dan TDZ
  3. Penamaan, Keterbacaan, dan Jebakan Umum
← Kembali ke JavaScript Academy