Konstanten – Sebastians Blog https://sgaul.de Neues aus den Softwareminen Thu, 13 Mar 2014 20:34:49 +0000 de-DE hourly 1 https://wordpress.org/?v=6.1.1 https://sgaul.de/wp-content/uploads/2019/02/cropped-sgaul-2-1-32x32.jpg Konstanten – Sebastians Blog https://sgaul.de 32 32 Konstanten in Javascript https://sgaul.de/2012/05/23/konstanten-in-javascript/ https://sgaul.de/2012/05/23/konstanten-in-javascript/#comments Wed, 23 May 2012 18:48:56 +0000 https://sgaul.de/?p=1200 Eigentlich ist es keine Überraschung, wenn eine Programmiersprache Konstanten unterstützt. Bei Javascript bin ich zuvor aber nie darüber gestolpert: const.

Chrome- und Firefox-Verhalten nicht konstant

Ich habe mal einen kleinen Test in Chrome und Firefox gemacht. Im Normalfall verhalten sich beide, wie man es erwartet. Versucht man jedoch nachträglich eine Variable in eine Konstante zu verwandeln, reagieren die beiden unterschiedlich: Chrome ignoriert das „const“ und setzt den neuen Wert, während Firefox einen Fehler meldet und den neuen Wert ignoriert. Zumindest bleibt in beiden Fällen eine Variable variabel.

const a = 1;
a = 2;
console.log(a); // 1

const b = { b : 2 };
b = 3;
console.log(b); // Object { b=2}

var c = 3;
const c = 4; // Chrome: okay / FF: "TypeError: redeclaration of var c"
console.log(c); // Chrome: 4 / FF: 3
c = 5;
console.log(c); // 5

Scoping wie bei var

Bei der Sichtbarkeit verhält sich const genau wie var: Konstanten sind innerhalb von Funktionen beliebig tief sichtbar, außerhalb jedoch nicht.

(function() { const c1 = 1; console.log(c1); }()); // 1
console.log(c1); // ReferenceError: c1 is not defined

Ohne Scope werden Konstanten wie auch Variablen eine Eigenschaft des aktuellen Windows:

const c2 = 2;
console.log(window.c2); // 2
]]>
https://sgaul.de/2012/05/23/konstanten-in-javascript/feed/ 8