Cakupan dalam Javascript

Jika kita ingin membeli produk dari Amazon yang tidak memilikinya, Anda tidak dapat membeli produk tersebut karena Amazon dapat menjual produk yang ada di inventarisnya. Kami harus mencari toko lain untuk membeli produk tersebut

Dalam Pemrograman, konsep ini disebut Scope (secara teknis disebut Lexical Scope). Dalam Javascript, setiap fungsi mendapatkan cakupannya sendiri. Ruang lingkupnya adalah kumpulan variabel serta aturan bagaimana variabel tersebut diakses berdasarkan namanya.

Variabel harus unik dalam cakupannya, tetapi nama yang sama dapat muncul pada cakupan yang berbeda.

function one(){
// This 'a' only belongs to 'one()' function
var a = 10;
console.log(a)
}
function two(){
// This 'a' only belongs to 'two()' function
var a = 20;
console.log(b)
}
one();  // 10
two();  // 20

Selain itu, Scope dapat disarangkan di dalam scope lain. Jika satu cakupan berada di dalam cakupan lain, lingkup terdalam dapat mengakses variabel dari salah satu cakupan.

function outer() {
var a = 2;
function inner() {
var b = 5;
// We can able access both 'a' and 'b' from here
console.log(a + b)
}
inner() // 7
// Can only able to access 'a'
console.log(a) // 2
}

Aturan cakupan leksikal mengatakan bahwa kode dalam satu cakupan dapat mengakses variabel dalam cakupan tersebut atau cakupan apa pun di luarnya. Jadi kode di dalam fungsi inner()dapat mengakses kedua variabel 'a' dan 'b'. Namun kode di outside()hanya memiliki akses ke 'a'