תיעוד JavaScript
מדריך עיון תמציתי ל-JavaScript, מבוסס דוגמאות. קוראים את המושג, רואים את הקוד, ואז מתרגלים אותו במסלול של Coddy.
להתחיל מסלול JavaScript מודרךGetting Started
- מה זה JavaScriptמה זה JavaScript באמת, איפה היא רצה, למה משתמשים בה ובמה היא שונה מ-Java ומ-TypeScript: היכרות מבוססת למתחילים.
- הרצת JSהדרכים המעשיות להריץ JavaScript ב-2026: קונסולת הדפדפן, תגית script בקובץ HTML, Node.js מהטרמינל, ומתי להשתמש בכל אחת.
- תחביר ונקודה-פסיקאיך התחביר של JavaScript עובד: הוראות, בלוקים וביטויים, והסיפור האמיתי על נקודה-פסיק, הכנסה אוטומטית של נקודה-פסיק ומתי זה נוקם בכם.
- Strict Modeמה משתנה ב-strict mode של JavaScript, איך מפעילים אותו, ולמה קוד מודרני (מודולים ומחלקות) מקבל אותו אוטומטית.
- הערותאיך הערות עובדות ב-JavaScript: `//` לשורה אחת, `/* */` לבלוקים, וההרגלים שהופכים הערות לשימושיות באמת במקום לרעש.
Variables & Types
- let, const, varשלוש הדרכים להצהיר על משתנה ב-JavaScript, ולמה קוד מודרני משתמש ב-`const` כברירת מחדל, ב-`let` כשאין ברירה, וב-`var` כמעט אף פעם.
- טיפוסים פרימיטיבייםשבעת הטיפוסים הפרימיטיביים של JavaScript: string, number, bigint, boolean, null, undefined ו-symbol, ובמה הם שונים מאובייקטים.
- מחרוזות ו-Templatesאיך מחרוזות עובדות ב-JavaScript: מרכאות, backticks, שילוב ערכים בטקסט, טקסט מרובה שורות והמתודות שבאמת תשתמשו בהן.
- מספרים ו-BigIntאיך טיפוס ה-Number של JavaScript עובד באמת: דיוק של floating-point, MAX_SAFE_INTEGER, ומתי כדאי לעבור ל-BigInt.
- null מול undefinedמה באמת ההבדל בין null ל-undefined ב-JavaScript, איך בודקים כל אחד מהם, ובאיזה מהם כדאי להשתמש בקוד שלכם.
- Type Coercionאיך JavaScript ממירה ערכים בין טיפוסים: החוקים המרומזים שמכשילים אנשים, ההמרות המפורשות שכדאי להעדיף, ומתי כל אחת נכנסת לפעולה.
- שוויון (== מול ===)איך שוויון עובד ב-JavaScript: השוואה מחמירה מול השוואה רופפת, המוזרויות של ==, איך NaN ואובייקטים מתנהגים, ומתי להשתמש ב-Object.is.
Control Flow
- אופרטוריםהאופרטורים ש-JavaScript נותנת לכם לחישובים, להשוואת ערכים, לשילוב ערכים בוליאניים ולהשמה, עם המוזרויות שבאמת מפילות בפועל.
- if / elseאיך if/else עובד ב-JavaScript: תנאים, שרשראות else if, מלכודות של truthy ו-falsy, ומתי עדיף להשתמש באופרטור הטרנרי.
- Switchאיך משפט switch עובד ב-JavaScript: case, break, default, fallthrough, ומתי switch עדיף על שרשרת של if/else.
- לולאות forאיך לולאת ה-`for` הקלאסית עובדת ב-JavaScript: הכותרת בת שלושת החלקים, מעבר על מערכים, break ו-continue, לולאות מקוננות ומלכודות נפוצות.
- לולאות Whileאיך לולאות `while` ו-`do...while` עובדות ב-JavaScript, מתי כדאי להשתמש בהן במקום `for`, ואיך להימנע מלולאות אינסופיות.
- for...of ו-for...inההבדל האמיתי בין for...of ל-for...in ב-JavaScript: ערכים מול מפתחות, מערכים מול אובייקטים, ומתי להשתמש בכל אחת.
- Truthy ו-Falsyמה נחשב truthy ומה falsy ב-JavaScript, הרשימה המלאה של ערכי falsy, ואיך המרה לבוליאני מתנהגת בקוד אמיתי.
Iteration
Functions
- הצהרת פונקציותאיך מצהירים על פונקציות ב-JavaScript: מילת המפתח function, פרמטרים, ערכי החזרה, hoisting, ומתי לבחור בהצהרה ומתי בביטוי.
- Arrow Functionsאיך arrow functions עובדות ב-JavaScript: התחביר `=>`, החזרה מרומזת, איך הן מטפלות ב-`this`, ומתי לבחור בהן במקום `function`.
- פרמטרים וברירות מחדלאיך פרמטרים עובדים ב-JavaScript: ערכי ברירת מחדל, ה-undefined שמפעיל אותם, סדר החישוב וההבדל בין פרמטרים לארגומנטים.
- Rest ו-Spreadאיך האופרטור ... עובד ב-JavaScript: איסוף ארגומנטים עם פרמטרי rest, פריסת מערכים ואובייקטים עם spread, ומתי להשתמש בכל אחד.
- Closuresclosure היא פונקציה שזוכרת את המשתנים שסביבה. כך closures עובדים ב-JavaScript, עם דוגמאות להרצה ושימושים אמיתיים.
- מילת המפתח thisאיך `this` באמת עובד ב-JavaScript: ארבעת חוקי ה-binding, למה arrow functions שונות, ואיך להימנע מהמלכודת הקלאסית של 'this is undefined'.
- Higher-Order Functionsפונקציות מסדר גבוה ב-JavaScript: העברת פונקציות כארגומנטים, החזרת פונקציות מפונקציות אחרות, ותבניות map/filter/reduce שתשתמשו בהן כל יום.
Objects & Arrays
- אובייקטיםאיך אובייקטים ב-JavaScript עובדים באמת: יצירה, קריאה וכתיבה של מאפיינים, הוספת מתודות, והדפוסים ששומרים על קוד אובייקטים קריא.
- מערכיםאיך מערכים עובדים ב-JavaScript: יצירה, אינדקסים, length, push/pop, ההבדל בין slice ל-splice, והלולאות שנקראות הכי טוב.
- Destructuringאיך destructuring עובד ב-JavaScript: שליפת ערכים מאובייקטים וממערכים, שינוי שמות, ברירות מחדל, תבניות מקוננות ופרמטרים של פונקציות.
- Object Spreadאיך אופרטור ה-spread לאובייקטים עובד ב-JavaScript: שכפול, מיזוג, דריסת מאפיינים, ומלכודת ההעתקה הרדודה שמפילה אנשים.
- מתודות מערךמתודות המערך שמחליפות את רוב לולאות ה-for שלכם: map, filter, reduce, find, some ו-every, ואילו מהן משנות את המערך ואילו מחזירות מערך חדש.
- Map ו-Setאיך Map ו-Set עובדים ב-JavaScript, במה הם שונים מאובייקטים ומערכים רגילים, ומתי השימוש בהם משתלם.
- JSONאיך ממירים אובייקטים של JavaScript ל-JSON ובחזרה: JSON.stringify, JSON.parse, ה-replacer וה-reviver, והערכים שלא שורדים את הדרך הלוך ושוב.
- Optional Chainingאיך האופרטור `?.` מאפשר לכם להגיע לתוך אובייקטים, מערכים ומתודות מקוננים בלי לקרוס על null או undefined.
- Nullish Coalescingאיך האופרטור `??` בוחר ברירת מחדל רק כשהערך הוא `null` או `undefined`, ולמה זה עדיף על `||` ברוב ערכי ברירת המחדל בעולם האמיתי.
Classes & Prototypes
- מחלקותאיך מחלקות באמת עובדות ב-JavaScript: בנאים, מתודות, שדות מופע, getters ו-setters, והמודל המחשבתי שמאחורי מילת המפתח `class`.
- ירושהאיך ירושה עובדת במחלקות של JavaScript: extends, super, דריסת מתודות, ומתי ירושה היא הכלי הלא נכון.
- איברים סטטייםאיך מתודות ומאפיינים סטטיים עובדים במחלקות של JavaScript: מתי להשתמש בהם, איך `this` מתנהג, ודפוס ה-factory שהם מאפשרים.
- שדות פרטייםאיך הקידומת `#` הופכת שדות ומתודות של מחלקה לפרטיים באמת ב-JavaScript: התחביר, הכללים, ולמה מוסכמת הקו התחתון לא מספיקה.
- Prototypesמה הם באמת prototypes ב-JavaScript, איך שרשרת ה-prototypes מוצאת מאפיינים, ואיך תחביר `class` ממופה לאותו מנגנון בדיוק.
Async JavaScript
- Event Loopהמודל המנטלי שמאחורי JavaScript אסינכרוני: מחסנית הקריאות, תור המשימות, תור ה-microtasks, ואיך ה-event loop מחבר ביניהם.
- Callbacksאיך callbacks עובדים ב-JavaScript: העברת פונקציות כארגומנטים, דפוס error-first, ולמה callbacks מקוננים דחפו את הקהילה אל promises.
- Promisesאיך Promises עובדים ב-JavaScript: שלושת המצבים, שרשור עם then ו-catch, שילוב עם Promise.all וכתיבת Promise משלכם עם new Promise.
- async/awaitאיך async/await באמת עובד ב-JavaScript: פונקציות async, המתנה ל-promises, טיפול בשגיאות עם try/catch, והרצת משימות במקביל.
- Fetch APIאיך משתמשים ב-Fetch API ב-JavaScript: בקשות GET ו-POST, פענוח JSON, טיפול נכון בשגיאות וביטול בקשות איטיות.
- שגיאות asyncאיך שגיאות באמת זורמות בקוד JavaScript אסינכרוני: try/catch עם async/await, .catch על promises, והמלכודות שבולעות כשלים בשקט.
Modules & Tooling
- ES Modulesאיך ES modules עובדים ב-JavaScript: exports עם שם ו-default, תחביר import, import() דינמי, והכללים שמבדילים בין מודולים לסקריפטים רגילים.
- CommonJS מול ESMשתי מערכות המודולים שמגיעות עם JavaScript, למה שתיהן קיימות, ואיך לבחור בין require ל-import בפרויקטים של Node.
- יסודות npmאיך npm עובד בפועל: התקנת חבילות, init, תלויות פיתוח, עדכונים, ומודל החשיבה שמאחורי node_modules וקובץ ה-lock.
- package.jsonמה יש בתוך package.json: השדות שחשובים, איך סקריפטים עובדים, ואיך טווחי semver קובעים אילו גרסאות npm מתקין.
- Node runtimeמה זה סביבת הריצה של Node.js, במה היא שונה מהדפדפן, ומהם ה-APIs המרכזיים (globals, מודולים, process, fs) שמאפשרים JavaScript בצד השרת.
Errors & Debugging
- try/catchאיך try/catch/finally עובד ב-JavaScript: תפיסת שגיאות, אובייקט השגיאה, זריקה מחדש, ומתי try/catch הוא הכלי הלא נכון.
- סוגי שגיאותסוגי השגיאות המובנים ב-JavaScript: מה כל אחד אומר, מתי תיתקלו בו, ואיך לקרוא את ההודעה בלי לנחש.
- Console ו-DevToolsמתודות ה-console ויכולות ה-DevTools שהופכות דיבוג ב-JavaScript למהיר יותר מפיזור console.log בכל מקום.
Working with Real Data
- Regexאיך ביטויים רגולריים עובדים ב-JavaScript: יצירת תבניות, המתודות המרכזיות (test, match, replace), דגלים וקבוצות לכידה עם דוגמאות אמיתיות.
- תאריך ושעהאיך האובייקט Date של JavaScript עובד באמת: יצירת תאריכים, עיצוב, חישובים, אזורי זמן והמוזרויות שמכשילות מפתחים.
- URLs ו-Query Stringsאיך לפענח, לבנות ולשנות כתובות URL ב-JavaScript בעזרת ה-APIs `URL` ו-`URLSearchParams`, בלי regex ובלי באגים של מקרי קצה.