{"id":1200,"date":"2012-05-23T20:48:56","date_gmt":"2012-05-23T18:48:56","guid":{"rendered":"https:\/\/sgaul.de\/?p=1200"},"modified":"2014-03-13T21:34:49","modified_gmt":"2014-03-13T20:34:49","slug":"konstanten-in-javascript","status":"publish","type":"post","link":"https:\/\/sgaul.de\/2012\/05\/23\/konstanten-in-javascript\/","title":{"rendered":"Konstanten in Javascript"},"content":{"rendered":"
Eigentlich ist es keine \u00dcberraschung, wenn eine Programmiersprache Konstanten unterst\u00fctzt. Bei Javascript bin ich zuvor aber nie dar\u00fcber gestolpert: Ich habe mal einen kleinen Test in Chrome und Firefox gemacht. Im Normalfall verhalten sich beide, wie man es erwartet. Versucht man jedoch nachtr\u00e4glich eine Variable in eine Konstante zu verwandeln, reagieren die beiden unterschiedlich: Chrome ignoriert das \u201econst\u201c und setzt den neuen Wert, w\u00e4hrend Firefox einen Fehler meldet und den neuen Wert ignoriert. Zumindest bleibt in beiden F\u00e4llen eine Variable variabel.<\/p>\n Bei der Sichtbarkeit verh\u00e4lt sich Ohne Scope werden Konstanten wie auch Variablen eine Eigenschaft des aktuellen Windows:<\/p>\n Eigentlich ist es keine \u00dcberraschung, wenn eine Programmiersprache Konstanten unterst\u00fctzt. Bei Javascript bin ich zuvor aber nie dar\u00fcber gestolpert: const.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[91],"tags":[369,158,497,499],"_links":{"self":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1200"}],"collection":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/comments?post=1200"}],"version-history":[{"count":4,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1200\/revisions"}],"predecessor-version":[{"id":2519,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1200\/revisions\/2519"}],"wp:attachment":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/media?parent=1200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/categories?post=1200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/tags?post=1200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}const<\/code><\/strong>.<\/p>\n
Chrome- und Firefox-Verhalten nicht konstant<\/h2>\n
const a = 1;\r\na = 2;\r\nconsole.log(a); \/\/ 1\r\n\r\nconst b = { b : 2 };\r\nb = 3;\r\nconsole.log(b); \/\/ Object { b=2}\r\n\r\nvar c = 3;\r\nconst c = 4; \/\/ Chrome: okay \/ FF: \"TypeError: redeclaration of var c\"\r\nconsole.log(c); \/\/ Chrome: 4 \/ FF: 3\r\nc = 5;\r\nconsole.log(c); \/\/ 5<\/pre>\n
Scoping wie bei var<\/h2>\n
const<\/code> genau wie
var<\/code>: Konstanten sind innerhalb von Funktionen beliebig tief sichtbar, au\u00dferhalb jedoch nicht.<\/p>\n
(function() { const c1 = 1; console.log(c1); }()); \/\/ 1\r\nconsole.log(c1); \/\/ ReferenceError: c1 is not defined<\/pre>\n
const c2 = 2;\r\nconsole.log(window.c2); \/\/ 2<\/pre>\n","protected":false},"excerpt":{"rendered":"