חווה סקריפט
היי, שמי חווה, וזו שפת התכנות שלי, חווה סקריפט, שפת תסריט בעברית בלבד, אשר מומרת בזמן אמת ל-JavaScript על ידי תרגום מילות המפתח ושמות המשתנים מעברית ללועזית. בואו ונכתוב את התוכנית הראשונה שלנו:
בכל מקום שיופיע קוד חווה סקריפט באתר, אאפשר לערוך את הקוד ולבקש שאריץ אותו. הקוד ירוץ בדפדפן שלכם ע״י המרתו ל-JavaScript תחילה, ולאחר מכן שערוך של הקוד אשר נוצר. את תוצאת ההמרה תוכלו לראות משמאל, ואת הפלט לממשק הבקרה (בלעז: console) תוכלו לראות מימין.
באתר של חווה תוכלו גם למצוא את
מגרש המשחקים,
בו תוכלו להשתעשע עם קוד חווה סקריפט, ואת
עמוד התיעוד,
המכיל תיאור מפורט של כל מילות המפתח והמילון אשר מנחים אותי בזמן המרת הקוד.
בעמוד זה, אני אציג בזריזות את שפת חווה סקריפט.
תוכן עניינים
משתנים
בחווה סקריפט ניתן להצהיר על משתנים ב-3 אופנים, בדומה ל-JavaScript, ע״י שימוש במילות המפתח
משתנה
,
יהי
ו-
קבוע
אשר אמיר ל-
var
,
let
ו-
const
בהתאמה.
שימו לב לקריאהבקרה.תעד
אשר ממומרת ל-console.log
, את המנגנון שמנחה אותי בזמן התרגום אסביר בהמשך העמוד.
יכולות
בחווה סקריפט ניתן להגדיר
יכולת
אשר למעשה תתורגם ל-
function
הלועזית. מתוך גוף היכולת ניתן להנחות אותי להחזיר ערך או לחזור ע״י שימוש במילת המפתח
החזירי
אשר למעשה תתורגם ל-
return
,
ולגשת ל-
טיעונים
הלוא הם ה-
arguments
.
שימו לב ליכולת
לדבר2
,
זוהי יכולת משונה (בלעז
variadic function),
הציצו על תוצאה ההמרה משמאל על מנת להבין את קוד ה-JavaScript שנוצר.
ביטויי הגיון
ביטויי הגיון בחווה סקריפט מתבססים על מילות המפתח
אמת
,
שקר
,
אם
ו-
אחרת
.
לולאות
בחווה סקריפט 3 סוגי לולאות, לולאת
עבור
(for
),
לולאת
כאשר
(while
)
ולולאת
עשי
(do
).
לולאת
עבור
יכולה להתבצע גם על מפתחות עצם ע״י שימוש ב-
מתוך
(in
),
או על ערכי העצם ע״י שימוש ב-
של
(of
).
מתוך גוף לולאות ניתן להנחות אותי לקפוץ החוצה מגוף הלולאה ע״י שימוש ב-
שברי
(break
),
או לקפוץ לחזרה הבאה ע״י שימוש ב-
המשיכי
(continue
).
החלפת מקרה
ביטויי החלפת מקרה בחווה סקריפט מתבססים על מילות המפתח
החליפי
,
מקרה
,
שברי
,
ו-
ברירתמחדל
.
טיפול בשגיאות
ביטויי טיפול בשגיאות בחווה סקריפט מתבססים על מילות המפתח
נסי
,
תפסי
,
ולבסוף
,
ו-
זרקי
.
שימו לב לביטויי הלמבדה (בלעז: lambda expressions), בתחתית הקוד, אשר מאפשרים להגדיר יכולת חסרת שם.
תכנות מונחה עצמים
תכנות מונחה עצמים בחווה סקריפט מבוסס על מילת המפתח
מחלקה
אשר מאפשרת להגדיר מחלקה חדשה. מתוך גוף המחלקה, ניתן לגשת אל העצם עצמו ע״י שימוש במילה
אנוכי
(this
).
ניתן להנחות אותי ליצור עצם חדש ממחלקה ע״י שימוש במילה
צרי
(new
).
את בנאי המחלקה ניתן להגדיר באמצעות הצהרת יכולת הנקראת
בנאי
.
ניתן להגדיר ירושה בין מחלקות ע״י שימוש במילה
מרחיבה
(extends
),
מתוך גוף המחלקה היורשת ניתן לגשת למאפיינים ושיטות של מחלקת האם ע״י שימוש במילה
אמא
(super
).
ניתן לתת למשתנה ערך ריק ע״י שימוש במילהכלום
(null
), לבדוק מחלקה של עצם ע״י שימוש ב-מסוג
(instanceof
) ולהגדיר מאפיינים ושיטות נייחות ע״י שימוש במילהנייח
(static
).
את רשימת מילות המפתח המלאה ניתן למצוא בעמוד התיעוד
הערות
תרגום שמות משתנים
בחווה סקריפט מנגנון לתרגום שמות משתנים. בזמן הרמת הקוד, בכל פעם שאתקל בשם משתנה, אמיר אותו ללועזית.
תחילת אחפש במילון שלי מילה מתאימה, אם אמצא תרגום למילה זו, אשתמש בו. כך לדוגמא אמיר את
בקרה
ל-
console
.
במידה ולא אמצא מילה זו במילון, אתרגם אותה באופן מילולי, כדי להימנע ממשתנים עבריים בקוד המומר.
נשים לב שמנגנון התרגום מאפשר שימוש במשתנים פומביים ובמאפיינים שלהם, דוגמת
חשבון.אקראי
אשר יומר ל-
math.random
,
אך אם זאת, מאפשר גם להדיר משתנה בשם
חשבון
אשר יתורגם ל-
math
,
ובכך בעצם ידרוס את ההתייחסות למשתנה הגלובאלי, באופן עקבי לשפת המקור.
משתנים פומביים נוספים אשר כדאי להכיר הם
תוהו
-
undefined
,
לאמספר
-
NaN
,
חשבון
-
Math
,
הבטחה
-
promise
ו-
פנחס
פענוח נתונים חווה סקריפט
-
JSON
קיצור עבור
JavaScript Object Notation.
שיטות ומאפיינים של משתנים פומביים מתורגמים אף הם. לדוגמא
חשבון.רצפה
אשר מתורגם ל-
Math.floor
,
הבטחה.הפר
אשר מתורגם ל-
Promise.reject
ושיטות ומאפייני מערך
אורך
,
מפה
ו-
צמצם
,
אשר מתורגים ל-
length
,
map
ו-
reduce
בהתאמה.
נשים לב כי שמות ציווי של משתנים פומביים מוטים ללשון נקבה כי הם מנחים אותי באופן ישיר, דוגמתשערכי
, ואילו שמות ציווי אשר מהווים מאפיינים או שיטות של משתנה כלשהו מוטים ללשון זכר משום שהם מנחים את המשתנה עצמו, לדוגמאמערך.מפה
ולא מערך.מפי.
את המילון המלא של חווה סקריפט ניתן למצוא בעמוד התיעוד