Let JavaScript
- Halaman Sebelumnya JS Variabel
- Halaman Berikutnya JS Const
ECMAScript 2015
ECMAScript 2015 memperkenalkan dua kunci penting baru di JavaScript:let
和 const
.
Kunci ini menyediakan area pengaruh blok di JavaScript (Block Scope) variabel (dan konstanta).
Sebelum ES2015, JavaScript hanya memiliki dua jenis area pengaruh:全局作用域和函数作用域.
全局作用域
GlobalVariabel yang dideklarasikan (di luar fungsi)全局作用域.
Contoh
var carName = "porsche"; // kode di tempat ini dapat menggunakan carName function myFunction() { // kode di tempat ini JUGA dapat menggunakan carName }
GlobalVariabel dapat diakses di setiap tempat di program JavaScript.
函数作用域
LokalVariabel yang dideklarasikan (dalam fungsi)函数作用域.
Contoh
// kode di tempat ini tidak dapat menggunakan carName function myFunction() { var carName = "porsche"; // kode di tempat ini BISA menggunakan carName } // kode di tempat ini tidak dapat menggunakan carName
LokalVariabel hanya dapat diakses di dalam fungsi tempat mereka dideklarasikan.
Area pengaruh blok JavaScript
melakukan var
Variabel yang dideklarasikan dengan kunci tidak memilikiArea pengaruh.
Dalam blok {} Variabel yang dideklarasikan didalam blok dapat diakses dari luar blok.
Contoh
{ var x = 10; } // di tempat ini dapat digunakan x
Sebelum ES2015, JavaScript tidak memiliki area pengaruh blok.
Dapat digunakan let
Kunci deklarasi memiliki area pengaruh blok.
Dalam blok {} Variabel yang dideklarasikan didalam blok tidak dapat diakses dari luar blok:
Contoh
{ let x = 10; } // di tempat ini tidak dapat digunakan x
Deklarasi ulang variabel
Penggunaan var
Kunci deklarasi ulang variabel dapat membawa masalah.
Mengulang deklarasi variabel di dalam blok juga akan mengulang deklarasi variabel di luar blok:
Contoh
var x = 10; // di tempat ini x adalah 10 { var x = 6; // di tempat ini x adalah 6 } // di tempat ini x adalah 6
Penggunaan let
Kunci deklarasi ulang variabel dapat memecahkan masalah ini.
Mengulang deklarasi variabel di dalam blok tidak akan mengulang deklarasi variabel di luar blok:
Contoh
var x = 10; // di tempat ini x adalah 10 { let x = 6; // di tempat ini x adalah 6 } // di tempat ini x adalah 10
Dukungan browser
Internet Explorer 11 atau versi yang lebih awal tidak mendukung sepenuhnya let
kunci.
Tabel di bawah mendefinisikan yang pertama sepenuhnya mendukung let
Versi browser kunci:
Chrome 49 | IE / Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
2016 年 3 月 | 2015 年 7 月 | 2015 年 1 月 | 2017 年 9 月 | 2016 年 3 月 |
循环作用域
在循环中使用 var
:
Contoh
var i = 7; for (var i = 0; i < 10; i++) { // 一些语句 } // 此处,i 为 10
在循环中使用 let
:
Contoh
let i = 7; for (let i = 0; i < 10; i++) { // 一些语句 } // 此处 i 为 7
在第一个例子中,在循环中使用的变量使用 var
重新声明了循环之外的变量。
在第二个例子中,在循环中使用的变量使用 let
并没有重新声明循环外的变量。
如果在循环中用 let
声明了变量 i,那么只有在循环内,变量 i 才是可见的。
函数作用域
在函数内声明变量时,使用 var
和 let
很相似。
它们都有函数作用域:
function myFunction() { var carName = "porsche"; // 函数作用域 } function myFunction() { let carName = "porsche"; // 函数作用域 }
全局作用域
如果在块外声明声明,那么 var
和 let
也很相似。
它们都拥有全局作用域:
var x = 10; // 全局作用域 let y = 6; // 全局作用域
HTML 中的全局变量
使用 JavaScript 的情况下,全局作用域是 JavaScript 环境。
在 HTML 中,全局作用域是 window 对象。
melakukan var
关键词定义的全局变量属于 window 对象:
Contoh
var carName = "porsche"; // 此处的代码可使用 window.carName
melakukan let
关键词定义的全局变量不属于 window 对象:
Contoh
let carName = "porsche"; // 此处的代码不可使用 window.carName
重新声明
允许在程序的任何位置使用 var
重新声明 JavaScript 变量:
Contoh
var x = 10; // 现在,x 为 10 var x = 6; // 现在,x 为 6
di lingkungan yang sama, atau di blok yang sama, melalui let
Pengdeklarasian ulang var
Variabel adalah tidak diperbolehkan:
Contoh
var x = 10; // 允许 let x = 6; // 不允许 { var x = 10; // 允许 let x = 6; // 不允许 }
di lingkungan yang sama, atau di blok yang sama, melalui let
Pengdeklarasian ulang let
Variabel adalah tidak diperbolehkan:
Contoh
let x = 10; // Diperbolehkan let x = 6; // 不允许 { let x = 10; // Diperbolehkan let x = 6; // 不允许 }
di lingkungan yang sama, atau di blok yang sama, melalui var
Pengdeklarasian ulang let
Variabel adalah tidak diperbolehkan:
Contoh
let x = 10; // Diperbolehkan var x = 6; // Tidak diperbolehkan { let x = 10; // Diperbolehkan var x = 6; // Tidak diperbolehkan }
dalam lingkungan yang berbeda atau blok melalui let
Pengdeklarasian ulang variabel diperbolehkan:
Contoh
let x = 6; // Diperbolehkan { let x = 7; // Diperbolehkan } { let x = 8; // Diperbolehkan }
Penyangkalan
melakukan var
Deklarasi variabel akanPenyangkalandi atas. Jika Anda tidak mengerti apa penyangkalan (Hoisting), silakan belajar bab penyangkalan kami.
Anda dapat menggunakan variabel variabel sebelum deklarasinya:
Contoh
// Di sini, Anda dapat menggunakan carName var carName;
melakukan let
Variabel yang didefinisikan tidak akan diangkat ke atas. Dengan cara
di deklarasikan let
Penggunaan variabel sebelum deklarasinya akan menyebabkan ReferenceError.
Variabel tetap berada di 'daerah mati sementara' dari awal blok sampai deklarasinya:
Contoh
// Di sini, Anda tidak dapat menggunakan carName let carName;
- Halaman Sebelumnya JS Variabel
- Halaman Berikutnya JS Const