{"id":21811537,"url":"https://github.com/dnbard/es6-guide","last_synced_at":"2025-04-13T22:24:40.030Z","repository":{"id":26288618,"uuid":"29736306","full_name":"dnbard/es6-guide","owner":"dnbard","description":"Comparison between ECMA5 and ECMA6 features","archived":false,"fork":false,"pushed_at":"2017-07-26T09:32:18.000Z","size":16,"stargazers_count":143,"open_issues_count":0,"forks_count":9,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-27T12:46:54.044Z","etag":null,"topics":["ecmascript6","es2015","es6","javascript"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dnbard.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-23T14:35:32.000Z","updated_at":"2021-06-27T17:33:38.000Z","dependencies_parsed_at":"2022-07-21T08:32:09.075Z","dependency_job_id":null,"html_url":"https://github.com/dnbard/es6-guide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnbard%2Fes6-guide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnbard%2Fes6-guide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnbard%2Fes6-guide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnbard%2Fes6-guide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dnbard","download_url":"https://codeload.github.com/dnbard/es6-guide/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248789989,"owners_count":21161926,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ecmascript6","es2015","es6","javascript"],"created_at":"2024-11-27T13:45:21.326Z","updated_at":"2025-04-13T22:24:39.999Z","avatar_url":"https://github.com/dnbard.png","language":null,"readme":"# ECMAScript 6 Features\n\n### [Arrows](https://github.com/dnbard/es6-guide/blob/master/ecma6/arrows.md)\nArrows are a function shorthand using the =\u003e syntax. They are syntactically similar to the related feature in C#, Java 8 and CoffeeScript. They support both expression and statement bodies. Unlike functions, arrows share the same lexical this as their surrounding code.\n\n### [Classes](https://github.com/dnbard/es6-guide/blob/master/ecma6/classes.md)\nES6 classes are a simple sugar over the prototype-based OO pattern. Having a single convenient declarative form makes class patterns easier to use, and encourages interoperability. Classes support prototype-based inheritance, super calls, instance and static methods and constructors.\n\n### [Enhanced Object Literals](https://github.com/dnbard/es6-guide/blob/master/ecma6/objectLiterals.md)\nObject literals are extended to support setting the prototype at construction, shorthand for foo: foo assignments, defining methods and making super calls. Together, these also bring object literals and class declarations closer together, and let object-based design benefit from some of the same conveniences.\n\n### [Template Strings](https://github.com/dnbard/es6-guide/blob/master/ecma6/templateStrings.md)\nTemplate strings provide syntactic sugar for constructing strings. This is similar to string interpolation features in Perl, Python and more. Optionally, a tag can be added to allow the string construction to be customized, avoiding injection attacks or constructing higher level data structures from string contents.\n\n### [Destructuring](https://github.com/dnbard/es6-guide/blob/master/ecma6/destructuring.md)\nDestructuring allows binding using pattern matching, with support for matching arrays and objects. Destructuring is fail-soft, similar to standard object lookup foo[\"bar\"], producing undefined values when not found.\n\n### [Default, Rest, Spread](https://github.com/dnbard/es6-guide/blob/master/ecma6/default.md)\nCallee-evaluated default parameter values. Turn an array into consecutive arguments in a function call. Bind trailing parameters to an array. Rest replaces the need for arguments and addresses common cases more directly.\n\n### [Let, Const](https://github.com/dnbard/es6-guide/blob/master/ecma6/let.md)\nBlock-scoped binding constructs. let is the new var. const is single-assignment. Static restrictions prevent use before assignment.\n\n### [Iterators, For..Of](https://github.com/dnbard/es6-guide/blob/master/ecma6/iterators.md)\nIterator objects enable custom iteration like CLR IEnumerable or Java Iterable. Generalize for..in to custom iterator-based iteration with for..of. Don’t require realizing an array, enabling lazy design patterns like LINQ.\n\n### [Generators](https://github.com/dnbard/es6-guide/blob/master/ecma6/generators.md)\nGenerators simplify iterator-authoring using function* and yield. A function declared as function* returns a Generator instance. Generators are subtypes of iterators which include additional next and throw. These enable values to flow back into the generator, so yield is an expression form which returns a value (or throws).\n\n### [Modules](https://github.com/dnbard/es6-guide/blob/master/ecma6/modules.md)\nLanguage-level support for modules for component definition. Codifies patterns from popular JavaScript module loaders (AMD, CommonJS). Runtime behaviour defined by a host-defined default loader. Implicitly async model – no code executes until requested modules are available and processed.\n\n# ECMAScript 7 Features\n\n### [Array Comprehension](https://github.com/dnbard/es6-guide/blob/master/ecma6/arrayComprehension.md)\nThe array comprehension syntax is a JavaScript expression which allows you to quickly assemble a new array based on an existing one.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnbard%2Fes6-guide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdnbard%2Fes6-guide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnbard%2Fes6-guide/lists"}