{"id":21407480,"url":"https://github.com/palashmon/learnes6","last_synced_at":"2025-07-14T00:34:02.589Z","repository":{"id":85745933,"uuid":"91713591","full_name":"palashmon/LearnES6","owner":"palashmon","description":":fire: Starter files to Learn with ES6 for Everyone by @wesbos","archived":false,"fork":false,"pushed_at":"2023-11-29T05:50:27.000Z","size":1440,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-11-29T06:35:00.728Z","etag":null,"topics":["arrow-functions","async-await","babel","babel7","dom","es2017","es6","es7","es8","eslint","javascript-modules","learning","practice","promise","wesbos"],"latest_commit_sha":null,"homepage":"https://ES6.io","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/palashmon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-05-18T16:10:10.000Z","updated_at":"2023-10-16T05:00:08.000Z","dependencies_parsed_at":"2023-10-30T05:36:37.522Z","dependency_job_id":null,"html_url":"https://github.com/palashmon/LearnES6","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palashmon%2FLearnES6","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palashmon%2FLearnES6/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palashmon%2FLearnES6/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palashmon%2FLearnES6/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/palashmon","download_url":"https://codeload.github.com/palashmon/LearnES6/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225934428,"owners_count":17547737,"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":["arrow-functions","async-await","babel","babel7","dom","es2017","es6","es7","es8","eslint","javascript-modules","learning","practice","promise","wesbos"],"created_at":"2024-11-22T16:52:51.191Z","updated_at":"2024-11-22T16:52:51.743Z","avatar_url":"https://github.com/palashmon.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"![ES6 for Everyone](https://es6.io/images/es6-facebook-share.png?cool=yah)\n\n# ES6 for Everyone Starter Files\n\nEverything you need to Learn ES6 over at [ES6.io](https://ES6.io)\n\n---\n\n## LOGS\n\n### Day 1: 12 May 2017\nGot this course for free from [Wes Bos](https://github.com/wesbos) as an appreciation gift :heart:\nStarted looking at the overview of this course and setting up Slack.\n\n**Thoughts:**\n - Completed Module #1 New Variables - Creation, Updating and Scoping\n - `var` is function scope\n - We can redeclare it multiple times in same scope\n - `let` \u0026 `const` are block scope\n - We can not redeclare it twice in same scope\n - You can update a `let` variable, but `const` variables cannot be updated\n - However, the properties of a `const` variable can change. That's because the entire object is not immutable.\n - Came to know about [Object.freeze()](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze), so that nothing can be added to or removed from the properties set of a frozen object.\n - Also, completed Module #2 Function Improvements: Arrows and Default Arguments\n - I had known about Arrow Functions from the #Javascript30 course, but more in details about it today\n - Learnt more about arrow functions, implicit returns, when \u0026 when not to use arrow functions, `this` inside arrow functions\n - Also, about default function arguments\n\n\n### Day 2: 14 May 2017\nCompleted Module #3 - Template Strings\n\n**Thoughts:** Learnt about:-\n - Template strings, creating html fragments with template literals\n - Using if, loop and functions inside template strings\n - Tagged templates, some use cases and sanitizing user data with tagged templates\n - Found about [DOMPurify](https://github.com/cure53/DOMPurify) which helps to sanitize data in DOM\n\n### Day 3: 15 May 2017\nCompleted Module #4 - Additional String Improvements\n\n**Thoughts:**\n - Learnt about `startsWith()`, `endsWith()`, includes() \u0026 repeat() methods and did some practice related to them\n - Also, looked into `str.endsWith(searchString[, length])` and `str.startsWith(searchString[, position])`\n\n### Day 4: 16 May 2017\nCompleted Module #5 - Destructuring\n\n**Thoughts:**\n - Learnt about destructuring objects, renaming variables and default values\n - Learnt about destructuring arrays, functions and swapping variables\n - Snippets 1: `const { first, last, twitter } = someObjectHere`\n - Snippets 2: `const [ first, last, twitter ] = someArrayHere`\n\n### Day 5: 17 May 2017\nCompleted Module #6 - Completed Module #6 Iterables \u0026 Looping\n\n**Thoughts:**\n - Learnt about some advantages of `for of` loop over `for`, `foreach` and `for in`\n - `for-of` makes is easier for looping through array elements and most array-like objects like DOM NodeList, arguments\n - Learnt about `Array.prototype.entries()` method and how we can use it with `for-of` loop\n - Snippets 1: `for (const cut of cuts)`, just to get the values\n - Snippets 2: `for (const [i, cut] of cuts.entries())`, used to both index and value\n\n### Day 6: 18 May 2017\nCompleted Module #7 - An Array of Array Improvements\n\n**Thoughts:**\n - Learnt about `Array.from()` \u0026 `Array.of()` method\n - Array prototype methods like `find`, `findIndex`, `some` \u0026 `every`\n - Use Case 1 for [`Array.from()`](https://pbs.twimg.com/media/DAHWQDGUwAAdOZV.jpg)\n - Use Case 2 for Array.prototype [`.some()` \u0026 `.every()`](https://pbs.twimg.com/media/DAHdt4YU0AAv31R.jpg)\n\n### Day 7: 19 May 2017\nCompleted Module #8 - Say Hello to ...Spread and ...Rest\n\n**Thoughts:**\n - Learnt about ...Spread operator \u0026 ...Rest parameters and there various use cases with lots of examples\n - Some use cases for [`Rest parameters`](https://pbs.twimg.com/media/DAMnqDdUwAYmYes.jpg)\n\n### Day 8: 20 May 2017\nCompleted Module #9 - Object Literal Upgrades\n\n**Thoughts:**\n - Learnt about some handy stuffs like property value shorthand, method definition shorthand and computed property keys\n\nCompleted Module #10 - Promises\n\n**Thoughts:**\n - Learnt about how Promises works, creating my own promises, chaining them and working with multiple promises\n - As the Promise.prototype.then() and Promise.prototype.catch() methods return promises, they can be chained like\n - [Chaining promises](https://pbs.twimg.com/media/DAP3qFIVYAA2tPp.jpg)\n\n### Day 9: 23 May 2017\nCompleted Module #11 - Symbols (Newest primitive data type)\n\n**Thoughts:**\n - Learnt about Symbol data type and various use cases.\n - We can use it as object key as [unique identifier](https://pbs.twimg.com/media/DAhIFkYW0AAXLhD.jpg)\n\n\n### Day 10: 24 May 2017\n**Thoughts:**\n - Learnt about [ESLint](http://eslint.org/) and it's [usability](http://eslint.org/demo/)\n - Also, looked into the [Airbnb's settings](https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb) and did some practice\n - Looked into various [ESLint rules](http://eslint.org/docs/rules/) and tried to understand their importance and when to use them.\n\n### Day 11: 25 May 2017\n**Thoughts:**\n - Today learnt about ESLint file \u0026 line specific settings for enabling/disabling rules\n - More info [here](http://eslint.org/docs/user-guide/configuring.html#disabling-rules-with-inline-comments)\n\n\n### Day 12: 26 May 2017\n**Thoughts:**\n - Completed Module #12 - Code Quality with ESLint\n - Today learnt about JavaScript modules and WebPack 2 tooling setup\n\n### Day 13: 27 May 2017\n**Thoughts:**\n - Learnt about creating our own JavaScript modules and importing/exporting them\n - Also, looked into [export statement](https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export) and various syntax.\n\n\n### Day 14: 28 May 2017\n**Thoughts:**\n - Completed Module #13 - JavaScript Modules and Using npm\n - Did more practice on ES6 Modules\n - Learnt about how to import specific modules when its needed\n\n### Day 15: 29 May 2017\n**Thoughts:**\n - Completed Module #14 - ES6 Tooling\n - Learnt about SystemJS, Babel \u0026 [Polyfills](https://polyfill.io/v2/docs/) for ES6\n - Polyfills gives very good coverage for all ES6 features in old browsers\n\n - Completed Module #15 - Classes\n - Learnt about creating a new class (declaration-form), defining static methods \u0026 prototype methods, get \u0026 set methods\n - Also, learnt about extending an existing class, subclassing methods of a parent class and subclassing built-ins\n - Simple use case for Subclassing built-in classes and DOM [here](https://pbs.twimg.com/media/DBAfi7pUIAAupmH.jpg)\n\n### Day 16: 30 May 2017\n**Thoughts:**\n - Completed Module #16 - Generators\n - Learnt about Generators function, which returns a Generator object. Using it for ajax flow control (awesome stuff)\n - Simple use-case for [`Generators`](https://pbs.twimg.com/media/DBFCKe-VoAEiVxr.jpg)\n\n### Day 17: 01 June 2017\n**Thoughts:**\n - Learnt about ES6 Proxies and its various use cases.\n - It provide JavaScript with an intercession API, enabling us to trap or intercept all of the operations on a target object and modify how this target operates\n\n### Day 18: 05 June 2017\n**Thoughts:**\n - Completed Module #18 - Sets and WeakSets\n - The `Set` object lets us store unique values of any type, whether primitive values or object references.\n - The `WeakSet` object lets us store weakly held objects in a collection.\n - If there is no other reference to an object stored in the `WeakSet`, they can be garbage collected.\n - Also, `WeakSet` are not enumerable\n\n### Day 19: 06 June 2017\n**Thoughts:**\n - Completed Module #19 - Map and Weak Map\n - A `Map` object holds key-value pairs.\n - The `Map` object iterates its elements in insertion order - a `for...of` loop returns an array of `[key, value]` for each iteration.\n - The `WeakMap` object is a collection of key/value pairs in which the keys are weakly referenced.\n\n### Day 20: 28 Sep 2017\n**Thoughts:**\n - This course was updated recently.\n - Updated for ES7/ES2016 and ES8/ES2017 including Async+Await, Babel 7 and more!\n - Started looking into it from today.\n - Started with native promises and its use-cases.\n - Also looked into creating custom promises.\n\n### Day 21: 29 Sep 2017\n**Thoughts:**\n - Today I reviewed the Async+Await once more.\n - Also, looked into a generic way for error handling async functions.\n\n### Day 22: 30 Sep 2017\n**Thoughts:**\n - Today I looked into using multiple promises.\n - Looked into one more use case for [`Promise.all()`][promise-all]\n - Learned about how we can promisify functions so that we can use Async+Await on the them.\n\n### Day 23: 02 Oct 2017\n**Thoughts:**\n - Today I looked into some new \u0026 future language additions\n - Looked into Class properties\n - Also, looked into ES8 [`padStart`][string-padStart] and [`padEnd`][string-padEnd]\n - ES7 Exponentiation Operator\n - Trailing commas (sometimes called \"final commas\") in literals\n\n### Day 24: 04 Oct 2017\n**Thoughts:**\n - Today I looked into use cases of `Object.entries()` and `Object.values()`\n - Learned about how it can be used in specific scenarios.\n - Fnially finished the course :tada:\n\n\u003c!-- Links here --\u003e\n[promise-all]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all\n[string-padStart]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart\n[string-padEnd]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalashmon%2Flearnes6","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpalashmon%2Flearnes6","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalashmon%2Flearnes6/lists"}