JavaScript (בעברית: ג'אווה סקריפט, קיצור: JS) היא שפת תכנות מרכזית לפיתוח אתרי אינטרנט ואפליקציות. היא עובדת יחד עם HTML ו־CSS כדי לבנות דפי אינטרנט דינמיים. נכון ל־2023, כ־98.7% מהאתרים משתמשים ב־JavaScript בצד הלקוח. כל הדפדפנים הגדולים כוללים מנוע הרצה שמריץ קוד JS אצל המשתמש.
השפה פותחה על ידי נטסקייפ ב־1995 והוכנסה לנטסקייפ 2.0 כ־JavaScript 1.0. שמה המקורי היה LiveScript. השינוי לשם נבע מסיבות שיווקיות ובהשוואה ל־Java, אך שתי השפות שונות במהותן. מיקרוסופט יצרה גרסאות מתחרות כמו VBScript ו־JScript. בסופו של דבר הושם דגש על תקן משותף בשם ECMAScript (תקן לשפה).
JavaScript היא שפה עילית ועוקבת בדרך כלל אחרי תהליך פירוש (interpreter), לפעמים עם הידור בזמן ריצה (JIT - קומפילציה בזמן ריצה). ECMAScript הוא התקן ש־JS מממשת. טיפוסיותה דינמית, טיפוס קשור לערכים ולא למשתנים, וערך יכול להשתנות במהלך הריצה. השפה מבוססת פרוטוטיפים (Prototype), שיטה של תכנות מונחה־עצמים שבה אובייקטים יורשים מתבניות אחרות.
JS תומכת בפרדיגמות שונות: תכנות מונחה אירועים (הגיבו לאירועים), פונקציונלי (פונקציות הן ערכים) ואימפרטיבי. יש בה ממשקי תכנות (APIs) לעבודה עם טקסט, תאריכים, ביטויים רגולריים (כללים לחיפוש טקסט), מבני נתונים ו־DOM, המבנה של דפי HTML ו־XML בדפדפן.
התקן ECMAScript אינו כולל ממשקי קלט/פלט חיצוניים כמו גרפיקה או רשת. בפועל, דפדפנים וסביבות הריצה מספקים את ה־APIs האלה. על בסיס מנועי דפדפנים נבנו סביבות הרצה נפוצות כמו Node.js, Deno ו־Bun שמריצות JS גם בשרתים ומחשבים.
העברה של פרמטרים לפונקציות משתנה לפי טיפוס: טיפוסים פרימיטיביים מועברים בערך (עתק), ואובייקטים מועברים ברפרנס (כתובת לאותו אובייקט). התחביר דומה ל־C מבחינת אופרטורים ומבני בקרה, והשפה רגישה להבחנה בין אותיות גדולות לקטנות (case-sensitive).
אובייקטים ב־JS הם מבנים אסוציאטיביים. יש שלושה סוגי אובייקטים עיקריים: אובייקטים של השפה (כמו Date), אובייקטי דפדפן (כמו window ו־document), ואובייקטים שמייצר המפתח. ניתן להרחיב מתודות של אובייקטים טבעיים באמצעות פרוטוטייפינג.
דוגמה נפוצה מראה טופס קלט וכפתור בדף. לחיצה על הכפתור קוראת לפונקציה checkPrime שבודקת אם המספר ראשוני. יש פונקציית עזר בשם getFactor שמחפשת מחלק טבעי גדול מ־1. בקוד משתמשים בהערות (//) ובחסימות מוזחות לשם קריאות.
כיוון ש־JS רצה בצד הלקוח, נעשו ניסיונות לגניבת מידע באמצעות XSS (Cross‑Site Scripting, התקפה שמריצה קוד זדוני בדפים). קיימים כלים כמו התוסף NoScript ודפדפנים עם מנגנוני הגנה שמקטינים סיכונים אלו.
בדפדפנים ישנים אפשר היה להזריק קוד בשורת הכתובת ולהשפיע על ה־DOM. דוגמה ידועה היא alert(document.cookie) שמציגה את העוגיות (cookies). בדפדפנים מודרניים נחסמה האפשרות הזאת, או שהפרוטוקול JavaScript: מוסר בעת הדבקה, כדי למנוע פגיעה.
JS התקבלה בספריות ומסגרות רבות. בעזרת Node.js נהוג לבנות שרתים ואפליקציות. לדוגמה: jQuery מקלה על עבודה עם ה־DOM; Angular, React ו־Vue משמשות לבניית ממשקי משתמש; ReactNative ו־NativeScript מאפשרות אפליקציות לטלפון; Ionic לבניית אפליקציות היברידיות; Express.js לבניית שרתי HTTP; Electron משמש לבניית תוכנות שולחן עבודה שמריצות דפי אינטרנט בתוך חלון נייטיבי.
ניתן להכניס קוד JS ישירות בתוך תגית script ב־HTML, אבל מקובל יותר לייבא קובץ חיצוני בעזרת הפרמטר src בתגית script. ניתן גם ליצור אלמנט script דינמי ולצרף אליו קובץ עם document.createElement("script") ואז להוסיף אותו ל־head של הדף כדי להריץ אותו.
JavaScript (ג'אווה סקריפט) היא שפה שעוזרת לבנות אתרי אינטרנט ודפי אינטרנט דינמיים. היא עובדת יחד עם HTML ו־CSS.
השפה נוצרה ב־1995 על ידי נטסקייפ. השם המקורי היה LiveScript. מיקרוסופט ניסתה שפות אחרות, אבל בסוף השתמשו בסטנדרט אחיד בשם ECMAScript. ECMAScript הוא התקן לשפה.
JavaScript היא שפה שמפורשת שורה שורה (interpreter). משמעות הדבר שהמנוע של הדפדפן קורא ומריץ את הקוד ישירות. היא בעלת טיפוס דינמי, ערכים יכולים להשתנות. היא מבוססת על פרוטוטיפים (דרך שבה אובייקטים יורשים תכונות).
תוכנית פשוטה יוצרת שדה קלט וכפתור. כשלוחצים על הכפתור קוראים לפונקציה שבודקת אם המספר הוא ראשוני. יש פונקציה שעוזרת למצוא מחלקים.
מפתחים נלחמים בניסיונות לגניבת מידע שנקראים XSS. יש תוספים ודפדפנים שחוסמים קוד זדוני.
בעבר אפשר להכניס קוד בשורת הכתובת ולשנות את הדף. דוגמה פשוטה היא alert(document.cookie) שמציגה עוגיות. ברוב הדפדפנים החדשים שיטה זו נחסמה.
יש ספריות שמקלות את העבודה: jQuery לעבודה עם הדף, React ו־Angular לבניית אתרים, ו־Node.js להרצת JS על השרת. יש גם כלים לבניית אפליקציות לטלפון ותוכנות למחשב.
קוד JS יכול להיות בתוך תגית script ב־HTML או בקובץ חיצוני שמייבאים עם src. אפשר גם ליצור תגית script בדף ולהוסיף לה קובץ ולהריץ אותו.
תגובות גולשים