{"id":29532196,"url":"https://github.com/misaghmomenib/javascript-cheat-sheet","last_synced_at":"2026-04-20T04:03:27.245Z","repository":{"id":303246759,"uuid":"985625803","full_name":"MisaghMomeniB/JavaScript-Cheat-Sheet","owner":"MisaghMomeniB","description":"Visit My Profile to Access More Repositories and Projects.","archived":false,"fork":false,"pushed_at":"2025-07-06T15:42:30.000Z","size":2639,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-06T15:43:42.602Z","etag":null,"topics":["cheatsheet","git","javascript"],"latest_commit_sha":null,"homepage":"","language":null,"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/MisaghMomeniB.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,"zenodo":null}},"created_at":"2025-05-18T07:08:51.000Z","updated_at":"2025-07-06T15:42:33.000Z","dependencies_parsed_at":"2025-07-06T15:43:46.749Z","dependency_job_id":"1e2dfc97-eef0-41e9-a389-4446d66e4ee8","html_url":"https://github.com/MisaghMomeniB/JavaScript-Cheat-Sheet","commit_stats":null,"previous_names":["misaghmomenib/javascript-cheat-sheet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MisaghMomeniB/JavaScript-Cheat-Sheet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisaghMomeniB%2FJavaScript-Cheat-Sheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisaghMomeniB%2FJavaScript-Cheat-Sheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisaghMomeniB%2FJavaScript-Cheat-Sheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisaghMomeniB%2FJavaScript-Cheat-Sheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MisaghMomeniB","download_url":"https://codeload.github.com/MisaghMomeniB/JavaScript-Cheat-Sheet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisaghMomeniB%2FJavaScript-Cheat-Sheet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265549139,"owners_count":23786339,"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":["cheatsheet","git","javascript"],"created_at":"2025-07-16T23:07:41.053Z","updated_at":"2026-04-20T04:03:27.239Z","avatar_url":"https://github.com/MisaghMomeniB.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📘 JavaScript Cheat Sheet\n\n🔤 زبان: فارسی + English\n👶 سطح: مبتدی تا پیشرفته (Beginner to Advanced)\n🌐 قابل استفاده برای فرانت‌اند، بک‌اند و فول‌استک\n\n---\n\n## 🧱 بخش ۱: مفاهیم پایه – Basics\n\n### ✅ معرفی JavaScript\n\n**🇫🇮 فارسی**: جاوااسکریپت یک زبان اسکریپتی قدرتمند برای تعامل با صفحات وب و ساخت اپلیکیشن‌های تحت وب است.\n**🇺🇸 English**: JavaScript is a powerful scripting language used to create dynamic and interactive web content.\n\n---\n\n### 🔤 چاپ خروجی – Console Output\n\n```js\nconsole.log(\"Hello, world!\");\n```\n\n🗣️\n**🇫🇮 فارسی**: برای نمایش خروجی در کنسول مرورگر استفاده می‌شود.\n**🇺🇸 English**: Prints output to the browser's console.\n\n---\n\n### 📦 متغیرها – Variables\n\n```js\nvar x = 10;\nlet y = 20;\nconst z = 30;\n```\n\n🧠\n**🇫🇮 فارسی**: برای ذخیره داده‌ها در حافظه استفاده می‌شود.\n**🇺🇸 English**: Used to store data in memory.\n\n---\n\n### 🧬 انواع داده – Data Types\n\n```js\nlet name = \"Ali\";         // String\nlet age = 25;             // Number\nlet isOnline = true;      // Boolean\nlet address = null;       // Null\nlet phone;                // Undefined\nlet person = { name: \"Ali\", age: 25 };  // Object\nlet numbers = [1, 2, 3];  // Array\n```\n\n---\n\n## 🔁 بخش ۲: عملگرها و شرط‌ها – Operators \u0026 Conditions\n\n### ➕ عملگرها – Operators\n\n```js\n// Arithmetic\n+  -  *  /  % \n\n// Comparison\n==  ===  !=  !==  \u003e  \u003c  \u003e=  \u003c=\n\n// Logical\n\u0026\u0026  ||  !\n```\n\n---\n\n### ❓ شرط‌ها – Conditions\n\n```js\nif (age \u003e 18) {\n  console.log(\"Adult\");\n} else {\n  console.log(\"Minor\");\n}\n\nlet result = age \u003e 18 ? \"Adult\" : \"Minor\"; // Ternary\n```\n\n---\n\n## 🔄 بخش ۳: حلقه‌ها – Loops\n\n```js\n// For loop\nfor (let i = 0; i \u003c 5; i++) {\n  console.log(i);\n}\n\n// While loop\nlet i = 0;\nwhile (i \u003c 5) {\n  console.log(i++);\n}\n\n// Do...while\ndo {\n  console.log(i++);\n} while (i \u003c 10);\n\n// For...of\nfor (let item of [10, 20, 30]) {\n  console.log(item);\n}\n\n// For...in\nfor (let key in {a: 1, b: 2}) {\n  console.log(key);\n}\n```\n\n---\n\n## 🧰 بخش ۴: توابع – Functions\n\n```js\nfunction greet(name) {\n  return \"Hello, \" + name;\n}\n\nconst greet2 = (name) =\u003e \"Hi, \" + name;\n\nfunction welcome(name = \"Guest\") {\n  console.log(\"Welcome, \" + name);\n}\n```\n\n---\n\n## 📁 بخش ۵: اشیاء و آرایه‌ها – Objects \u0026 Arrays\n\n```js\nlet person = {\n  name: \"Sara\",\n  age: 30,\n  greet() {\n    console.log(\"Hi, I'm \" + this.name);\n  }\n};\n\nlet nums = [1, 2, 3];\nnums.push(4);      // Add\nnums.pop();        // Remove last\nnums.shift();      // Remove first\nnums.unshift(0);   // Add to start\n\nnums.forEach(n =\u003e console.log(n));\n```\n\n---\n\n## 🧪 بخش ۶: متدهای آرایه – Advanced Array Methods\n\n```js\nlet nums = [1, 2, 3, 4];\n\nnums.map(n =\u003e n * 2);            // [2, 4, 6, 8]\nnums.filter(n =\u003e n % 2 === 0);   // [2, 4]\nnums.reduce((a, b) =\u003e a + b);    // 10\nnums.find(n =\u003e n \u003e 2);           // 3\n```\n\n---\n\n## 🧠 بخش ۷: Destructuring – واپاشی\n\n```js\nconst { name, age } = { name: \"Ali\", age: 30 };\nconst [a, b] = [10, 20];\n```\n\n---\n\n## 🧩 بخش ۸: Spread و Rest\n\n```js\nlet arr = [1, 2, 3];\nlet newArr = [...arr, 4];  // Spread\n\nfunction sum(...nums) {    // Rest\n  return nums.reduce((a, b) =\u003e a + b, 0);\n}\n```\n\n---\n\n## 🔁 بخش ۹: توابع بازگشتی – Recursion\n\n```js\nfunction factorial(n) {\n  if (n === 1) return 1;\n  return n * factorial(n - 1);\n}\n```\n\n---\n\n## 🛑 بخش ۱۰: مدیریت خطا – Error Handling\n\n```js\ntry {\n  risky();\n} catch (error) {\n  console.error(error.message);\n} finally {\n  console.log(\"Done\");\n}\n```\n\n---\n\n## 📦 بخش ۱۱: ماژول‌ها – Modules\n\n```js\n// A.js\nexport const name = \"Ali\";\nexport default function hello() {\n  console.log(\"Hello\");\n}\n\n// B.js\nimport hello, { name } from './A.js';\nhello();\n```\n\n---\n\n## 🧱 بخش ۱۲: کلاس‌ها و شی‌گرایی – Classes \u0026 OOP\n\n```js\nclass Person {\n  constructor(name) {\n    this.name = name;\n  }\n\n  speak() {\n    console.log(\"Hi, I'm \" + this.name);\n  }\n}\n\nconst p = new Person(\"Ali\");\np.speak();\n```\n\n---\n\n## ⏱️ بخش ۱۳: Event Loop\n\n```js\nconsole.log(\"Start\");\n\nsetTimeout(() =\u003e {\n  console.log(\"Timeout\");\n}, 0);\n\nconsole.log(\"End\");\n// Output: Start -\u003e End -\u003e Timeout\n```\n\n---\n\n## 🌐 بخش ۱۴: تعامل با DOM – DOM Manipulation\n\n```html\n\u003cbutton onclick=\"sayHi()\"\u003eClick me\u003c/button\u003e\n\u003cscript\u003e\nfunction sayHi() {\n  alert(\"Hello!\");\n}\n\u003c/script\u003e\n```\n\n```js\ndocument.getElementById(\"title\").textContent = \"New Title\";\ndocument.querySelector(\"p\").style.color = \"red\";\n```\n\n---\n\n## 🧠 بخش ۱۵: Optional Chaining \u0026 Nullish Coalescing\n\n```js\nconst user = { profile: { name: \"Sara\" } };\nconsole.log(user?.profile?.name); // \"Sara\"\nconsole.log(user?.address?.city); // undefined\n\nlet name = null;\nconsole.log(name ?? \"Guest\"); // \"Guest\"\n```\n\n---\n\n## 📡 بخش ۱۶: Promise و async/await\n\n```js\n\nconst myPromise = new Promise((resolve, reject) =\u003e {\n  setTimeout(() =\u003e {\n    const success = true;\n    if(success) resolve(\"عملیات موفق بود!\");\n    else reject(\"عملیات شکست خورد!\");\n  }, 1000);\n});\n\nmyPromise\n  .then(result =\u003e console.log(result))\n  .catch(error =\u003e console.error(error));\n\nasync function fetchData() {\n  try {\n    const response = await fetch('https://jsonplaceholder.typicode.com/posts/1');\n    const data = await response.json();\n    console.log(data);\n  } catch (error) {\n    console.error(\"خطا در دریافت داده:\", error);\n  }\n}\n\nfetchData();\n\n```\n\n---\n\n## 🧰 بخش ۱۷: Set و Map\n\n```js\nlet mySet = new Set([1, 2, 3]);\nmySet.add(4);\n\nlet myMap = new Map();\nmyMap.set(\"name\", \"Ali\");\nconsole.log(myMap.get(\"name\"));\n```\n\n\n## 🧰 بخش 18: Generic Function\n```js\nfunction* generator() {\n  yield 1;\n  yield 2;\n  yield 3;\n}\n\nconst gen = generator();\nconsole.log(gen.next().value); // 1\nconsole.log(gen.next().value); // 2\nconsole.log(gen.next().value); // 3\n\n\n\n```\n\n\n## 🧰 بخش 19:Symbol\n```js\nconst sym = Symbol('id');\nconst obj = {\n  [sym]: 123\n};\nconsole.log(obj[sym]); // 123\n\n```\n\n## 🧰 بخش 20:Reflect and Proxy\n```js\nconst target = {};\nconst handler = {\n  get(target, prop) {\n    return `ویژگی ${prop} خوانده شد`;\n  }\n};\nconst proxy = new Proxy(target, handler);\nconsole.log(proxy.anything); // ویژگی anything خوانده شد\n\n\n```\n\n## 🧰 بخش 21: Web Apis\n```js\nfetch('https://jsonplaceholder.typicode.com/posts/1')\n  .then(res =\u003e res.json())\n  .then(data =\u003e console.log(data))\n  .catch(err =\u003e console.error('خطا:', err));\n\n// LocalStorage\nlocalStorage.setItem('name', 'علی');\nconsole.log(localStorage.getItem('name')); // \"علی\"\n```\n## بخش 22 :  Scope Chain and Variable Shadowing\n```js\nlet name = \"Ali\";\n\nfunction greet() {\n  let name = \"Sara\";  // Shadowing variable from outer scope\n  console.log(name);  // Sara\n}\n\ngreet();\nconsole.log(name);    // Ali\n```\n## بخش 23 : this keyword in different contexts\n```js\nconst obj = {\n  name: \"Object\",\n  showThis() {\n    console.log(this.name);\n  }\n};\n\nobj.showThis(); // Object\n\nfunction standalone() {\n  console.log(this);\n}\n\nstandalone();  // window (یا undefined در strict mode)\n```\n## بخش : 24  ES Modules (import/export)\n```js\n// math.js\nexport function add(a, b) {\n  return a + b;\n}\n\n// main.js\nimport { add } from './math.js';\nconsole.log(add(2, 3));  // 5\n```\n## بخش 25 : Memory management and Garbage Collection\n```js\nfunction createObj() {\n  let obj = {name: \"temp\"};\n  return obj;\n}\n\nlet myObj = createObj();\n// وقتی myObj به null یا undefined تغییر کند، حافظه obj آزاد می‌شود\nmyObj = null;\n```\n## بخش 26 :Memory management and Garbage Collection\n```js\nfunction createObj() {\n  let obj = {name: \"temp\"};\n  return obj;\n}\n\nlet myObj = createObj();\n// وقتی myObj به null یا undefined تغییر کند، حافظه obj آزاد می‌شود\nmyObj = null;\n```\n## بخش 27 : Clean Code and JavaScript Best Practices\n```js \n// Bad practice\nfunction c(a, b) {\n  return a+b;\n}\n\n// Clean code\nfunction calculateSum(firstNumber, secondNumber) {\n  return firstNumber + secondNumber;\n}\n```\n## بخش 28 :Proxy and Reflect APIs\n```js\nconst target = {};\nconst handler = {\n  get: (obj, prop) =\u003e {\n    return prop in obj ? obj[prop] : `Property ${prop} does not exist`;\n  }\n};\n\nconst proxy = new Proxy(target, handler);\nconsole.log(proxy.name); // Property name does not exist\n```\n## بخش 29 :Simple Design Patterns (Factory, Module Pattern)\n```js\n// Factory Pattern\nfunction createPerson(name, age) {\n  return {\n    name,\n    age,\n    greet() {\n      console.log(`Hi, I'm ${name}`);\n    }\n  };\n}\n\nconst person = createPerson(\"Ali\", 30);\nperson.greet(); // Hi, I'm Ali\n\n// Module Pattern\nconst counterModule = (function() {\n  let count = 0;\n  return {\n    increment() {\n      count++;\n      console.log(count);\n    },\n    reset() {\n      count = 0;\n      console.log(count);\n    }\n  };\n})();\n\ncounterModule.increment(); // 1\ncounterModule.reset();     // 0\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisaghmomenib%2Fjavascript-cheat-sheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmisaghmomenib%2Fjavascript-cheat-sheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisaghmomenib%2Fjavascript-cheat-sheet/lists"}