JavaScript Sabiti
Anahtar kelime ES6'da (2015)const
tanıtıldı
.
İle tanımlanan değişkenler const
Yeniden Bildirilemez.
İle tanımlanan değişkenler const
Yeniden Atanamaz.
ile tanımlanan değişkenler const
Blok Kapsama sahiptir.
Yeniden Atanamaz
Bir const
değişken yeniden atanamaz:
Örnek
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
Atanmalı
JavaScript const
değişkenlerine bildirildiğinde bir değer atanmalıdır:
Doğru
const PI = 3.14159265359;
Yanlış
const PI;
PI = 3.14159265359;
JavaScript const ne zaman kullanılır?
Genel bir kural const
olarak, değerin değişeceğini bilmiyorsanız her zaman ile bir değişken tanımlayın.
const
Şunları beyan ettiğinizde kullanın :
- yeni bir Dizi
- Yeni bir Nesne
- yeni bir İşlev
- Yeni bir RegExp
Sabit Nesneler ve Diziler
Anahtar kelime const
biraz yanıltıcı.
Sabit bir değer tanımlamaz. Bir değere sabit bir referans tanımlar.
Bu nedenle şunları YAPAMAZSINIZ:
- Sabit bir değeri yeniden atayın
- Sabit bir diziyi yeniden atama
- Sabit bir nesneyi yeniden atama
- Sabit dizinin öğelerini değiştirin
- Sabit nesnenin özelliklerini değiştirin
Ama sen yapabilirsin:
Sabit Diziler
Sabit bir dizinin öğelerini değiştirebilirsiniz:
Örnek
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota";
// You can add an element:
cars.push("Audi");
Ancak diziyi yeniden atayamazsınız:
Örnek
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
Sabit Nesneler
Sabit bir nesnenin özelliklerini değiştirebilirsiniz:
Örnek
// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};
// You can change a property:
car.color = "red";
// You can add a property:
car.owner = "Johnson";
Ancak nesneyi yeniden atayamazsınız:
Örnek
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; //
ERROR
Tarayıcı Desteği
Anahtar const
sözcük, Internet Explorer 10 veya önceki sürümlerde desteklenmez.
Aşağıdaki tablo, const
anahtar kelime için tam desteğe sahip ilk tarayıcı sürümlerini tanımlar:
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
Blok Kapsamı
İle bir değişken bildirmek , Blok Kapsam
söz konusu olduğundakine const
benzer .let
Bu örnekte, blokta bildirilen x, bloğun dışında bildirilen x ile aynı değildir:
Örnek
const x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
JavaScript Kapsamı bölümünde blok kapsamı hakkında daha fazla bilgi edinebilirsiniz .
yeniden beyan
Bir programda herhangi bir yerde bir JavaScript var
değişkeninin yeniden bildirilmesine izin verilir:
Örnek
var x = 2; // Allowed
var x = 3; // Allowed
x = 4; // Allowed
Var olan var
veya let
değişkenin const
aynı kapsamda yeniden bildirilmesine izin verilmez:
Örnek
var x = 2; // Allowed
const x = 2; // Not allowed
{
let x = 2; // Allowed
const x = 2; // Not allowed
}
{
const x = 2; // Allowed
const x = 2; // Not allowed
}
Aynı kapsamda mevcut bir const
değişkeni yeniden atamaya izin verilmez:
Örnek
const x = 2; // Allowed
x = 2; // Not allowed
var x = 2; // Not allowed
let x = 2; // Not allowed
const x = 2; // Not allowed
{
const x = 2; // Allowed
x = 2;
// Not allowed
var x = 2;
// Not allowed
let x = 2;
// Not allowed
const x = 2; // Not allowed
}
const
Başka bir kapsamda veya başka bir blokta , ile bir değişkenin yeniden bildirilmesine izin verilir:
Örnek
const x = 2; // Allowed
{
const x = 3; // Allowed
}
{
const x = 4; // Allowed
}
İnşaat Kaldırma
ile tanımlanan değişkenler var
yukarı kaldırılır ve herhangi bir zamanda başlatılabilir.
Anlamı: Değişkeni bildirilmeden önce kullanabilirsiniz:
Örnek
Tamamdır:
carName = "Volvo";
var carName;
Kaldırma hakkında daha fazla bilgi edinmek istiyorsanız, JavaScript Kaldırma bölümünü inceleyin .
ile tanımlanan değişkenler const
de üste kaldırılır, ancak başlatılmaz.
Anlamı: Bir const
değişkeni bildirilmeden önce kullanmak, aşağıdakilerle sonuçlanır
ReferenceError
:
Örnek
alert (carName);
const carName = "Volvo";