ECMAScript 5 ile sabitlere benzer bir yapi olusturabilsekte pek guzel ve kolay bir sekilde yapmak mumkun degildi.

constlarin buyuk veya kucuk harflerle tanimlanabilsede genelde diger dillerde oldugu gibi buyuk harfler kullanmak kabul gormus bir kullanim seklidir.

En basit haliyle bir const tanimlama;

const TEST = 10;

Bir const'i tekrar tanimlaya calistigimizda veya ayni isimde bir degisken olusturmaya calistigimizda hata aliriz.

const TEST = 10;
const TEST = 2;
//Uncaught TypeError: Identifier 'TEST' has already been declared
var TEST = 3;
//Uncaught TypeError: Identifier 'TEST' has already been declared

constlar baslaticiya ihtiyac duyarlar yani const TEST; gibi bir kullanim hata almaniza neden olacaktir.

constlar icin array veya obje tanimlamalari yapilabilir. Bu degiskenlerin degerleri degistirilebilir ancak yukarda belirttigim gibi tekrar tanimlanamazlar.

const OBJE = {"anahtar":"deger"};

OBJE.anahtar = "Baska bir deger"; 

constlar let ile tanimlanmis degiskenler ayni scope kurallarini takip ederler ancak tekrar tanimlanamazlar. Yani javascript var ile tanimlanmis degiskenler gibi function-scope degil block-scoped'dur.

var a = 10;

if (a==10) {
	const HAKAN = 5;
}
console.log(HAKAN);
// Bu durumda hata olusacaktir.