{"id":21091193,"url":"https://github.com/manikmaity/30-days-javascript-challenge","last_synced_at":"2025-03-14T06:21:52.715Z","repository":{"id":193894816,"uuid":"689666733","full_name":"ManikMaity/30-Days-JavaScript-Challenge","owner":"ManikMaity","description":"30 Days JavaScript Challenge","archived":false,"fork":false,"pushed_at":"2024-01-04T16:18:04.000Z","size":324,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-21T01:13:30.720Z","etag":null,"topics":["30daysofjavascript","javascript","javascript-vanilla","js","learnjavascript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/ManikMaity.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-10T14:36:11.000Z","updated_at":"2023-09-26T16:34:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"4de24573-56ab-4f32-90fa-e3390dae7df4","html_url":"https://github.com/ManikMaity/30-Days-JavaScript-Challenge","commit_stats":null,"previous_names":["manikmaity/30-days-javascript-challenge"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManikMaity%2F30-Days-JavaScript-Challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManikMaity%2F30-Days-JavaScript-Challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManikMaity%2F30-Days-JavaScript-Challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManikMaity%2F30-Days-JavaScript-Challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ManikMaity","download_url":"https://codeload.github.com/ManikMaity/30-Days-JavaScript-Challenge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243532786,"owners_count":20306209,"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":["30daysofjavascript","javascript","javascript-vanilla","js","learnjavascript"],"created_at":"2024-11-19T21:44:07.765Z","updated_at":"2025-03-14T06:21:52.682Z","avatar_url":"https://github.com/ManikMaity.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 30-Days-JavaScript-Challenge\n\n## This is the GitHub Repository for [30 days Javascript learning challenge](https://30dayjavascript.js.org/)!.\n\n### Current Javascript Learning Process Bar : ![](https://geps.dev/progress/51)\n\n## Table Of Content\u003chr\u003e\n\n| **Days** | **What Learned?** | **Checkbox** |\n|:--------:|:-----------------:|:------------:|\n| **1**    |        \u003cul\u003e\u003cli\u003eConsole.log()\u003c/li\u003e\u003cli\u003eJs variables\u003c/li\u003e\u003cli\u003eJs Naming\u003c/li\u003e\u003cli\u003eUsing Js in webpage\u003c/li\u003e\u003cli\u003eData Types In Js\u003c/li\u003e\u003c/ul\u003e           |   :heavy_check_mark:         |\n| **2**    |  \u003cul\u003e\u003cli\u003ePrimitive Data Types\u003c/li\u003e\u003cli\u003eNon-Primitive Data Types\u003c/li\u003e\u003cli\u003eArrays\u003c/li\u003e\u003cli\u003eNumbers\u003c/li\u003e\u003cli\u003eMath Objects\u003c/li\u003e\u003cli\u003eStrings\u003c/li\u003e\u003cli\u003eConcetenating String\u003c/li\u003e\u003cli\u003eEscape Charecter\u003c/li\u003e\u003cli\u003eTamplate Lireral\u003c/li\u003e\u003cli\u003eAll js string methods\u003c/li\u003e\u003cli\u003eTypeof\u003c/li\u003e\u003cli\u003eConverting Data Types\u003c/li\u003e\u003cli\u003eDone all levels exercises✔\u003c/li\u003e\u003c/ul\u003e                 |:heavy_check_mark:            |\n| **3**    |  \u003cul\u003e\u003cli\u003eBooleans\u003c/li\u003e\u003cli\u003eTruthy Value \u0026 value\u003c/li\u003e\u003cli\u003eundefined \u0026 null\u003c/li\u003e\u003cli\u003eOperators (+,-,*,/,%,**)\u003c/li\u003e\u003cli\u003eComparison Operators\u003c/li\u003e\u003cli\u003eLogical Operators\u003c/li\u003e\u003cli\u003eIncrement Operators\u003c/li\u003e\u003cli\u003eTernary Operators\u003c/li\u003e\u003cli\u003eWindows Methods\u003c/li\u003e\u003cli\u003eDate Object and Methods\u003c/li\u003e\u003cli\u003eCompleted all exercises Day03✔\u003c/li\u003e\u003c/ul\u003e                 |:heavy_check_mark:            |\n| **4**    |  \u003cul\u003e\u003cli\u003eLearned about Conditionals\u003c/li\u003e\u003cli\u003eLearned if, else\u003c/li\u003e\u003cli\u003eelse if statements\u003c/li\u003e\u003cli\u003eSwitch conditions\u003c/li\u003e\u003cli\u003eTernary Operators\u003c/li\u003e\u003cli\u003eError handling using conditions\u003c/li\u003e\u003cli\u003eCompleted all level exercises✔\u003c/li\u003e\u003c/ul\u003e                 | :heavy_check_mark:           |\n| **5**    |  \u003cul\u003e\u003cli\u003eLearned about Arrays\u003c/li\u003e\u003cli\u003eDifferent ways to make arrat - Array constructor \u0026 using []\u003c/li\u003e\u003cli\u003e.split()\u003c/li\u003e\u003cli\u003eAccessing array items by index\u003c/li\u003e\u003cli\u003eModifying array element\u003c/li\u003e\u003cli\u003eMethods to manipulate array\u003c/li\u003e\u003cli\u003e.fill(value)\u003c/li\u003e\u003cli\u003eMerge Arrays by .concat(array)\u003c/li\u003e\u003cli\u003earray length\u003c/li\u003e\u003cli\u003eindexOf() in array\u003c/li\u003e\u003cli\u003e.toString()\u003c/li\u003e\u003cli\u003e.join()\u003c/li\u003e\u003cli\u003e.slice(sarting index, ending index)\u003c/li\u003e\u003cli\u003epush(item to add in last index)\u003c/li\u003e\u003cli\u003e.pop();\u003c/li\u003e\u003cli\u003e.shift()\u003c/li\u003e\u003cli\u003e.unshift(element to include in first index)\u003c/li\u003e\u003cli\u003e.reverse()\u003c/li\u003e\u003cli\u003e.sort()\u003c/li\u003e\u003cli\u003earray of arrays\u003c/li\u003e\u003cli\u003eDone level1 exercises✔\u003c/li\u003e\u003c/ul\u003e                 |  :heavy_check_mark:          |\n| **6**    | \u003cul\u003e\u003cli\u003efor loop\u003c/li\u003e\u003cli\u003ewhile loop\u003c/li\u003e\u003cli\u003edo while loop\u003c/li\u003e\u003cli\u003efor of loop\u003c/li\u003e\u003cli\u003ebreak; \u0026 continue;\u003c/li\u003e\u003cli\u003eLevel1 and 2 exercises done✔\u003c/li\u003e\u003cli\u003eLevel3 exercise done✔\u003c/li\u003e\u003c/ul\u003e                  |  :heavy_check_mark:          |\n| **7**    |  \u003cul\u003e\u003cli\u003eDeclairing a function\u003c/li\u003e\u003cli\u003eFunction without perameters\u003c/li\u003e\u003cli\u003eFunction with parameter - one, two, multple, ulimited\u003c/li\u003e\u003cli\u003eunlimited perameter with arguments\u003c/li\u003e\u003cli\u003eunlimited perameter with rest operator\u003c/li\u003e\u003cli\u003eAnonymous Function\u003c/li\u003e\u003cli\u003eArrow Function\u003c/li\u003e\u003cli\u003eArrow Function - without, single, two, more \u003c/li\u003e\u003cli\u003eArrow Function without return statement\u003c/li\u003e\u003cli\u003eFunction with default peramiter\u003c/li\u003e\u003cli\u003eLevel 1 exercises ✔\u003c/li\u003e\u003cli\u003eLevel 2 exercises ✔\u003c/li\u003e\u003cli\u003eLevel 3 exercises ✔\u003c/li\u003e\u003c/ul\u003e                 |  :heavy_check_mark:          |\n| **8**    |  \u003cul\u003e\u003cli\u003eLocal Scope\u003c/li\u003e\u003cli\u003eGlobal scope\u003c/li\u003e\u003cli\u003eBlock scope and function scope\u003c/li\u003e\u003cli\u003eObjects - empty, with values\u003c/li\u003e\u003cli\u003eGetting values from an object\u003c/li\u003e\u003cli\u003eObject Methods and \"this\"\u003c/li\u003e\u003cli\u003eSrtting new key for object\u003c/li\u003e\u003cli\u003eObject methods:\u003c/li\u003e\u003cli\u003eObject.assign\u003c/li\u003e\u003cli\u003eObject.keys\u003c/li\u003e\u003cli\u003eObject.values\u003c/li\u003e\u003cli\u003eObject.entries\u003c/li\u003e\u003cli\u003ehasOwnProperty\u003c/li\u003e\u003cli\u003eLevel2 exercises✔️\u003c/li\u003e\u003cli\u003eLevel3 exercises✔️\u003c/li\u003e\u003c/ul\u003e                 |  :heavy_check_mark:            |\n| **9**    |   \u003cul\u003e\u003cli\u003eHigher Order Function\u003c/li\u003e\u003cli\u003eCallback\u003c/li\u003e\u003cli\u003eReturning Function\u003c/li\u003e\u003cli\u003eSetting time\u003c/li\u003e\u003cli\u003e1. setInterval(callback, duration)\u003c/li\u003e\u003cli\u003e2. setTimeout(callback, duration)\u003c/li\u003e\u003cli\u003eFunctional Programming\u003c/li\u003e\u003cli\u003e1. forEach\u003c/li\u003e\u003cli\u003e2. map\u003c/li\u003e\u003cli\u003e3. filter\u003c/li\u003e\u003cli\u003e4. reduce\u003c/li\u003e\u003cli\u003e5. find\u003c/li\u003e\u003cli\u003e6. find\u003c/li\u003e\u003cli\u003e7. findIndex\u003c/li\u003e\u003cli\u003e8. some\u003c/li\u003e\u003cli\u003e9. sort\u003c/li\u003e\u003cli\u003ei. normal sort\u003c/li\u003e\u003cli\u003eii. number and object sort\u003c/li\u003e\u003cli\u003eLevel1 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel2 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel3 ex done ✔️\u003c/li\u003e\u003c/ul\u003e                 |  :heavy_check_mark:          |\n| **10**   |   \u003cul\u003e\u003cli\u003e\u003cstrong\u003eSet\u003c/strong\u003e\u003c/li\u003e\u003cli\u003eCreating a set -\u003c/li\u003e\u003cli\u003e1. Empty set\u003c/li\u003e\u003cli\u003e2. Set from arrays\u003c/li\u003e\u003cli\u003eSet is iterable by for of loop\u003c/li\u003e\u003cli\u003eSet Methods\u003c/li\u003e\u003cli\u003e1. adding element (.add(item))\u003c/li\u003e\u003cli\u003e2. deleting element (.delete(item))\u003c/li\u003e\u003cli\u003e3. cheacking element (.has(item))\u003c/li\u003e\u003cli\u003e4. clear all elements (.clear())\u003c/li\u003e\u003cli\u003eUnion of sets\u003c/li\u003e\u003cli\u003eIntersection of sets\u003c/li\u003e\u003cli\u003eDifference of sets\u003c/li\u003e\u003cli\u003e\u003cstrong\u003eMap\u003c/strong\u003e\u003c/li\u003e\u003cli\u003eCeating map\u003c/li\u003e\u003cli\u003e1. empty map ()\u003c/li\u003e\u003cli\u003e2. Map from arrays\u003c/li\u003e\u003cli\u003eMap methods\u003c/li\u003e\u003cli\u003e1. Add element in map (.set(item1, item2))\u003c/li\u003e\u003cli\u003e2. Getting element from Map (.get(item))\u003c/li\u003e\u003cli\u003e3. checking map keys (.has(keyItem))\u003c/li\u003e\u003cli\u003eMap values using for..of loop\u003c/li\u003e\u003cli\u003eLevel1 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel2 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel3 ex done ✔️\u003c/li\u003e\u003c/ul\u003e                 |  :heavy_check_mark:          |\n| **11**   | \u003cul\u003e\u003cli\u003eDestructuring\u003c/li\u003e\u003cli\u003eDestructuring arrays\u003c/li\u003e\u003cli\u003e1. If we want to skip a value of array for destructuring\u003c/li\u003e\u003cli\u003e2. We can use default values\u003c/li\u003e\u003cli\u003e3. We can use spred operator (...) in destructuring to specify rest of valuse\u003c/li\u003e\u003cli\u003e4. Destructuring during iteration\u003c/li\u003e\u003cli\u003eObject destructuring\u003c/li\u003e\u003cli\u003e1. Renaming during destructring\u003c/li\u003e\u003cli\u003e2. We can use default values if key is not found or undefined\u003c/li\u003e\u003cli\u003e3. Destructuring object during iteration\u003c/li\u003e\u003cli\u003eSpread or Rest Operator (...)\u003c/li\u003e\u003cli\u003e1. Spread operator to get rest of element\u003c/li\u003e\u003cli\u003e2. spread operator to copy array and merge arrays\u003c/li\u003e\u003cli\u003e3. Spread operator to copy object\u003c/li\u003e\u003cli\u003e4. changing object value while coping\u003c/li\u003e\u003cli\u003e5. Speard operator with unlimited arguments function\u003c/li\u003e\u003cli\u003eLevel1 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel2 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel3 ex done ✔️\u003c/li\u003e\u003c/ul\u003e                  | :heavy_check_mark:           |\n| **12**   | \u003cul\u003e\u003cli\u003eRegular Expressions\u003c/li\u003e\u003cli\u003ePattern \u0026 Flags\u003c/li\u003e\u003cli\u003eCreating a pattern with RegExp Constructor\u003c/li\u003e\u003cli\u003eregexp constructor\u003c/li\u003e\u003cli\u003eRegExp object mathods\u003c/li\u003e\u003cli\u003e.test, .match, .search, .replace\u003c/li\u003e\u003cli\u003eRegexp charecters and meaning\u003c/li\u003e\u003cli\u003eSquare Bracket []\u003c/li\u003e\u003cli\u003eEscape character()\u003c/li\u003e\u003cli\u003eOne or more times(+)\u003c/li\u003e\u003cli\u003ePeriod(.)\u003c/li\u003e\u003c/ul\u003e                  | ❌           |\n| **13**   | \u003cul\u003e\u003cli\u003eConsole Object Methods\u003c/li\u003e\u003cli\u003econsole.log\u003c/li\u003e\u003cli\u003eSubstitution\u003c/li\u003e\u003cli\u003eCSS in console\u003c/li\u003e\u003cli\u003eWarn, Error \u0026 table\u003c/li\u003e\u003cli\u003econsole.time() \u0026 console.timeEnd()\u003c/li\u003e\u003cli\u003econsole.info()\u003c/li\u003e\u003cli\u003econsole.assert()\u003c/li\u003e\u003cli\u003econsole.group()\u003c/li\u003e\u003cli\u003econsole.count()\u003c/li\u003e\u003cli\u003econsole.clear()\u003c/li\u003e\u003cli\u003eLevel1 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel2 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel3 ex done ✔️\u003c/li\u003e\u003c/ul\u003e                  | :heavy_check_mark:            |\n| **14**   |  \u003cul\u003e\u003cli\u003eError Handling\u003c/li\u003e\u003cli\u003etry, catch, finally\u003c/li\u003e\u003cli\u003eCatch block peramiter\u003c/li\u003e\u003cli\u003ethrow\u003c/li\u003e\u003cli\u003eError Types\u003c/li\u003e\u003cli\u003e- Reference, Syntax and Type Errors\u003c/li\u003e\u003cli\u003eLevel1 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel2 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel3 ex done ✔️\u003c/li\u003e\u003c/ul\u003e                  |:heavy_check_mark:            |\n| **15**   | \u003cul\u003e\u003cli\u003eClasses\u003c/li\u003e\u003cli\u003eClass Syntax\u003c/li\u003e\u003cli\u003eClass Instantiation\u003c/li\u003e\u003cli\u003eClass Constructor - Syntax, example\u003c/li\u003e\u003cli\u003eDefault values with constructor\u003c/li\u003e\u003cli\u003eClass methods making\u003c/li\u003e\u003cli\u003eProperties with initial value\u003c/li\u003e\u003cli\u003egettter - get\u003c/li\u003e\u003cli\u003esetter - set\u003c/li\u003e\u003cli\u003eStatic method\u003c/li\u003e\u003cli\u003eLevel3 ex done ✔️\u003c/li\u003e\u003c/ul\u003e                  | :heavy_check_mark:           |\n| **16**   | \u003cul\u003e\u003cli\u003eJSON\u003c/li\u003e\u003cli\u003eExample, Syntax\u003c/li\u003e\u003cli\u003eJSON to js Object - parse()\u003c/li\u003e\u003cli\u003eReviver function with JSON.parse()\u003c/li\u003e\u003cli\u003eObject to JSON - stringify()\u003c/li\u003e\u003cli\u003eFilter with JSON.stringify\u003c/li\u003e\u003cli\u003eLevel1 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel2 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel3 ex done ✔️\u003c/li\u003e\u003c/ul\u003e                  | :heavy_check_mark:           |\n| **17**   | \u003cul\u003e\u003cli\u003eHTML5 Web Storage\u003c/li\u003e\u003cli\u003esessionStorage, localStorage\u003c/li\u003e\u003cli\u003esetItem(), getItem(), removeItem(), clear(), key()\u003c/li\u003e\u003cli\u003eUsage of local storege\u003c/li\u003e\u003cli\u003eHTML5 Web Storage Objects\u003c/li\u003e\u003cli\u003eSetting item - localStorage.setItem('key', 'value');\u003c/li\u003e\u003cli\u003eSyntax, Example, JSON store\u003c/li\u003e\u003cli\u003eGetting item - localStorage.getItem('key')\u003c/li\u003e\u003cli\u003eClearing the localStorage\u003c/li\u003e\u003cli\u003eclear one item, clear all item\u003c/li\u003e\u003cli\u003eLevel1 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel2 ex done ✔️\u003c/li\u003e\u003cli\u003eLevel3 ex done ✔️\u003c/li\u003e\u003c/ul\u003e                  |:heavy_check_mark:            |\n| **18**   |                   |            |\n| **19**   |                   |            |\n| **20**   |               |          |\n| **21**   |               |          |\n| **22**   |               |          |\n| **23**   |               |          |\n| **24**   |               |          |\n| **25**   |               |          |\n| **26**   |               |          |\n| **27**   |               |          |\n| **28**   |               |          |\n| **29**   |               |          |\n| **30**   |               |          |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanikmaity%2F30-days-javascript-challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanikmaity%2F30-days-javascript-challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanikmaity%2F30-days-javascript-challenge/lists"}