{"id":888,"date":"2015-01-05T23:57:24","date_gmt":"2015-01-05T22:57:24","guid":{"rendered":"https:\/\/vielhuber.de\/?p=888"},"modified":"2016-06-05T23:00:05","modified_gmt":"2016-06-05T21:00:05","slug":"willkommen-javascript-2-0","status":"publish","type":"post","link":"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/","title":{"rendered":"Willkommen JavaScript 2.0"},"content":{"rendered":"<p>JavaScript dominiert das Web \u2013 und ECMAScript, der Kern der Sprache wird erwachsen. Die neue Spezifikation (ES6 bzw. JS2), die Mitte dieses Jahres erwartet wird, bringt zahlreiche Neuerungen mit sich, die man schon heute ausprobieren kann. Firefox bringt momentan die <a href=\"http:\/\/kangax.github.io\/compat-table\/es6\/\" target=\"_blank\">beste Unterst\u00fctzung<\/a> mit, aber auch Polyfills durch sog. Transpiler wie <a href=\"https:\/\/github.com\/google\/traceur-compiler\" target=\"_blank\">Google Traceur<\/a> sind m\u00f6glich. Es folgt eine kurze \u00dcbersicht der neuen Features von ES6.<\/p>\n<p><!--more--><\/p>\n<p>Das neue Schl\u00fcsselwort <strong>let<\/strong>\u00a0macht vieles besser als <strong>var<\/strong>: So verh\u00e4lt sich das Scoping nun genau wie in anderen Sprachen (C\/C++, Java), weshalb nun auch if-Bl\u00f6cke einen eigenen Geltungsbereich haben. Auch das Hoisting, also das Vorziehen von Variablendeklarationen (nicht Wertzuweisungen) innerhalb des jeweiligen Geltungsbereiches wird repariert:<\/p>\n<pre class=\"javascript\">console.log(x);\r\nvar x = 'foo'; \r\n\/\/ undefined\r\n\r\nconsole.log(y);\r\nlet y = 'bar';\r\n\/\/ not initialized<\/pre>\n<p>Die Zahl der weiteren Neuerungen ist lang: Konstanten (const), Default-Werte f\u00fcr Funktionen (function pow(a,b=2) { return Math.pow(a,b); }), eine neuen Schreibweise f\u00fcr Funktionen (let pow = (a,b=2) =&gt; Math.pow(a,b);), eine Vielzahl neuer Funktionen (repeat(), contains(), startsWith(), find(), findIndex()), die neuen Schleifenkonstruktion for ... of.<\/p>\n<p>Auch die neuen Datentypen Set, Map, Proxy und Symbol, das Importieren von (Teilen anderer) JavaScript-Dateien mit import und eine neue intuitive Syntax f\u00fcr Klassen und Vererbungen sind zu nennen. Oft sind es aber auch kleine aber lang erwartete Dinge wie der M\u00f6glichkeit von Zeilenumbr\u00fcchen in String-Literalen (man beachte die speziellen Anf\u00fchrungszeichen):<\/p>\n<pre class=\"javascript\">`foo\r\n\r\nbar`<\/pre>\n<p>JavaScript ist schon lange weit mehr als ein Hilfsmittel f\u00fcr kleine Webseiten-Tricks \u2013 es entstehen m\u00e4chtige, performante Webapplikationen, die ihren Desktop-Pendants in nichts nach stehen. Mit der gro\u00dfen Menge an hilfreichen Neuerungen und der schon heute vorhandenen Unterst\u00fctzung von ES6 macht die Programmierung doppelt Spa\u00df.<\/p>\n<p>Wer wollte nicht schon immer mit Hilfe der neuen Konstante <a href=\"https:\/\/developer.mozilla.org\/de\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Number\/EPSILON\" target=\"_blank\">Number.EPSILON<\/a>, deren Wert die Differenz zwischen 1 und dem n\u00e4chsth\u00f6heren Gleitkommawert tr\u00e4gt, die Gleichheit zweier Zahlen pr\u00fcfen?<\/p>\n<pre class=\"javascript\">let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript dominiert das Web \u2013 und ECMAScript, der Kern der Sprache wird erwachsen. Die neue Spezifikation (ES6 bzw. JS2), die Mitte dieses Jahres erwartet wird, bringt zahlreiche Neuerungen mit sich, die man schon heute ausprobieren kann. Firefox bringt momentan die beste Unterst\u00fctzung mit, aber auch Polyfills durch sog. Transpiler wie Google Traceur sind m\u00f6glich. Es [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"gtbabel_prevent_lngs":"","gtbabel_alt_lng":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-888","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-blog"},"acf":[],"yoast_head":"<title>Willkommen JavaScript 2.0 &#060; Vielhuber David<\/title>\n<meta name=\"description\" content=\"JavaScript dominiert das Web \u2013 und ECMAScript, der Kern der Sprache wird erwachsen. Die neue Spezifikation (ES6 bzw. JS2), die Mitte dieses Jahres\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Willkommen JavaScript 2.0 &#060; Vielhuber David\" \/>\n<meta property=\"og:description\" content=\"JavaScript dominiert das Web \u2013 und ECMAScript, der Kern der Sprache wird erwachsen. Die neue Spezifikation (ES6 bzw. JS2), die Mitte dieses Jahres\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/\" \/>\n<meta property=\"og:site_name\" content=\"Vielhuber David\" \/>\n<meta property=\"article:published_time\" content=\"2015-01-05T22:57:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-06-05T21:00:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"552\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"David\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vielhuber\" \/>\n<meta name=\"twitter:site\" content=\"@vielhuber\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"David\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/willkommen-javascript-2-0\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/willkommen-javascript-2-0\\\/\"},\"author\":{\"name\":\"David\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\"},\"headline\":\"Willkommen JavaScript 2.0\",\"datePublished\":\"2015-01-05T22:57:24+00:00\",\"dateModified\":\"2016-06-05T21:00:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/willkommen-javascript-2-0\\\/\"},\"wordCount\":302,\"publisher\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\"},\"articleSection\":[\"Blog\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/willkommen-javascript-2-0\\\/\",\"url\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/willkommen-javascript-2-0\\\/\",\"name\":\"Willkommen JavaScript 2.0 &#060; Vielhuber David\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#website\"},\"datePublished\":\"2015-01-05T22:57:24+00:00\",\"dateModified\":\"2016-06-05T21:00:05+00:00\",\"description\":\"JavaScript dominiert das Web \u2013 und ECMAScript, der Kern der Sprache wird erwachsen. Die neue Spezifikation (ES6 bzw. JS2), die Mitte dieses Jahres\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/willkommen-javascript-2-0\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vielhuber.de\\\/blog\\\/willkommen-javascript-2-0\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/blog\\\/willkommen-javascript-2-0\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vielhuber.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Willkommen JavaScript 2.0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#website\",\"url\":\"https:\\\/\\\/vielhuber.de\\\/\",\"name\":\"Vielhuber David\",\"description\":\"Full-Stack Developer\",\"publisher\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vielhuber.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/vielhuber.de\\\/#\\\/schema\\\/person\\\/64d4ff14713d413ea4d9b210d0c2c6ef\",\"name\":\"David\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\",\"url\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\",\"contentUrl\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\",\"width\":700,\"height\":552,\"caption\":\"David\"},\"logo\":{\"@id\":\"https:\\\/\\\/vielhuber.de\\\/wp-content\\\/uploads\\\/about.jpg\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/vielhuber\"]}]}<\/script>","yoast_head_json":{"title":"Willkommen JavaScript 2.0 &#060; Vielhuber David","description":"JavaScript dominiert das Web \u2013 und ECMAScript, der Kern der Sprache wird erwachsen. Die neue Spezifikation (ES6 bzw. JS2), die Mitte dieses Jahres","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/","og_locale":"de_DE","og_type":"article","og_title":"Willkommen JavaScript 2.0 &#060; Vielhuber David","og_description":"JavaScript dominiert das Web \u2013 und ECMAScript, der Kern der Sprache wird erwachsen. Die neue Spezifikation (ES6 bzw. JS2), die Mitte dieses Jahres","og_url":"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/","og_site_name":"Vielhuber David","article_published_time":"2015-01-05T22:57:24+00:00","article_modified_time":"2016-06-05T21:00:05+00:00","og_image":[{"width":700,"height":552,"url":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","type":"image\/jpeg"}],"author":"David","twitter_card":"summary_large_image","twitter_creator":"@vielhuber","twitter_site":"@vielhuber","twitter_misc":{"Verfasst von":"David","Gesch\u00e4tzte Lesezeit":"2\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/#article","isPartOf":{"@id":"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/"},"author":{"name":"David","@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef"},"headline":"Willkommen JavaScript 2.0","datePublished":"2015-01-05T22:57:24+00:00","dateModified":"2016-06-05T21:00:05+00:00","mainEntityOfPage":{"@id":"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/"},"wordCount":302,"publisher":{"@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef"},"articleSection":["Blog"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/","url":"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/","name":"Willkommen JavaScript 2.0 &#060; Vielhuber David","isPartOf":{"@id":"https:\/\/vielhuber.de\/#website"},"datePublished":"2015-01-05T22:57:24+00:00","dateModified":"2016-06-05T21:00:05+00:00","description":"JavaScript dominiert das Web \u2013 und ECMAScript, der Kern der Sprache wird erwachsen. Die neue Spezifikation (ES6 bzw. JS2), die Mitte dieses Jahres","breadcrumb":{"@id":"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vielhuber.de\/blog\/willkommen-javascript-2-0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vielhuber.de\/"},{"@type":"ListItem","position":2,"name":"Willkommen JavaScript 2.0"}]},{"@type":"WebSite","@id":"https:\/\/vielhuber.de\/#website","url":"https:\/\/vielhuber.de\/","name":"Vielhuber David","description":"Full-Stack Developer","publisher":{"@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vielhuber.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":["Person","Organization"],"@id":"https:\/\/vielhuber.de\/#\/schema\/person\/64d4ff14713d413ea4d9b210d0c2c6ef","name":"David","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","url":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","contentUrl":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg","width":700,"height":552,"caption":"David"},"logo":{"@id":"https:\/\/vielhuber.de\/wp-content\/uploads\/about.jpg"},"sameAs":["https:\/\/x.com\/vielhuber"]}]}},"_links":{"self":[{"href":"https:\/\/vielhuber.de\/bn\/wp-json\/wp\/v2\/posts\/888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vielhuber.de\/bn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vielhuber.de\/bn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vielhuber.de\/bn\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vielhuber.de\/bn\/wp-json\/wp\/v2\/comments?post=888"}],"version-history":[{"count":1,"href":"https:\/\/vielhuber.de\/bn\/wp-json\/wp\/v2\/posts\/888\/revisions"}],"predecessor-version":[{"id":1302,"href":"https:\/\/vielhuber.de\/bn\/wp-json\/wp\/v2\/posts\/888\/revisions\/1302"}],"wp:attachment":[{"href":"https:\/\/vielhuber.de\/bn\/wp-json\/wp\/v2\/media?parent=888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vielhuber.de\/bn\/wp-json\/wp\/v2\/categories?post=888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vielhuber.de\/bn\/wp-json\/wp\/v2\/tags?post=888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}