הגדרת קבועים בג'אווה סקריפט
קבוע (Const) מייצג ערך שאינו בר שינוי במהלך התוכנית.
דוגמה להגדרת קבועים:
<script>
const HEIGHT = 600;
const DOUBLE_HEIGHT = 2*HEIGHT;
const HELLO_STR = "Hello World";
const WELCOME_STR = "Welcome";
const WELCOME_HOME = WELCOME_STR + " home";
const WELCOME_BACK = WELCOME_STR + ' back';
</script>
הגדרנו את הקבוע HEIGHT כשווה ערך ל-600, ואת הקבוע DOUBLE_HEIGHT כשווה ערך ל-1200. שניהם קבועים מספריים.
הגדרנו את הקבוע HELLO_STR כשווה ערך למחרוזת Hello World.
הגדרנו את הקבוע WELCOME_STR כשווה ערך למחרוזת Welcome.
הגדרנו את הקבוע WELCOME_HOME כשווה ערך למחרוזת Welcome home (ההגדרה היא למעשה חיבור של הקבוע WELCOME_STR עם המחרוזת home).
הגדרנו את הקבוע WELCOME_BACK כשווה ערך למחרוזת Welcome back (ההגדרה היא למעשה חיבור של הקבוע WELCOME_STR עם המחרוזת back).
נשים לב שכדי לייצג מחרוזת, השתמשנו פעם אחת במרכאות ופעם אחרת בגרשיים. זה לא באמת משנה. מטעמי נוחיות בקוד, מומלץ להשתמש בקונבנציה אחת קבועה ואחידה ככל שניתן.
מדוע להשתמש בקבוע במקום בערך עצמו ישירות?
סיבה אחת לכך, היא קריאות. כשקוראים את הקוד, קל יותר להבין למה התכוון המתכנת כשכתוב 2*HEIGHT מאשר כשכתוב 2*600.
סיבה נוספת, היא שקל יהיה לתחזק את הקוד בעתיד. אם הערך חוזר שוב ושוב בקוד, ובעתיד נרצה לשנותו, נוכל לשנות פעם אחת ובמקום אחד את הקבוע עצמו, במקום לנבור בקוד הארוך ולשנות את המספרים בכל המקומות.
הגדרת משתנים בג'אווה סקריפט
משתנה (Variable) מייצג ערך שהוא בר שינוי במהלך התוכנית.
דוגמה להגדרת משתנים:
<script>
var width = 1000;
var doubleWidth = 2*width;
var height = HEIGHT;
var name = "Daniel";
</script>
הגדרנו את המשתנה width כשווה ערך למספר 1000 ואת המשתנה doubleWidth כשווה ערך למספר 2000 (פעמיים width).
הגדרנו את המשתנה height כשווה ערך למספר 600 (מבוסס על הגדרת הקבוע HEIGHT מהדוגמה הקודמת).
הגדרנו את המשתנה name כשוות ערך למחרוזת Daniel.
קביעת שמות קבועים ומשתנים
שמות קבועים ושמות משתנים יכולים לכלול אותיות גדולות באנגלית, אותיות קטנות באנגלית, מספרים והתו _. התו הראשון בשם הקבוע/המשתנה לא יכול להיות מספר.
שמות קבועים ושמות משתנים הינם Case Sensitive, כלומר, בעלי "רגישות לאותיות גדולות/קטנות". הקבוע/המשתנה width הוא לא הקבוע/המשתנה Width וגם לא הקבוע/המשתנה WIDTH.
נהוג להגדיר שמות קבועים באותיות גדולות, עם סימן _ כמפריד בין מילים. למשל: AGE, MY_AGE, ADMIN_USER_AGE.
נהוג להגדיר שמות משתנים באותיות קטנות. אם שם המשתנה הוא רצף של כמה מילים, החל מהמילה השניה נהוג לשים אות גדולה בתחילת המילה. דוגמאות לשמות משתנים: age, myAge, adminUserAge.
הנוהג בכינוי שמות הקבועים והמשתנים באופן הזה, מכונה "קונבנציה".
השמירה על הקונבנציה היא לצרכי קריאות הקוד בלבד, כדי שאם נראה בקוד USER_NAME נדע שמדובר על קבוע ואם נראה userName נדע שמדובר על משתנה. אין חובה לשמור על הקונבנציה (המפרשן אינו אוכף את הקונבנציה) וניתן להגדיר קבוע בשם userName או user_name, אבל זה פשוט יבלבל אותנו אחר כך כשנקרא את הקוד.
ההבדלים בין קבועים ומשתנים
חשוב לזכור את ההבדל בין קבוע למשתנה: קבועים לא ניתן לשנות בקוד ואילו משתנים ניתן.
שאלה למחשבה: מדוע אם כן להשתמש בקבועים ולא רק במשתנים? הרי הקוד ירוץ בצורה טובה גם אם נחליף כל const ב-var...
הסיבה לשימוש בקבועים, היא שהקבועים מוחלפים על ידי המפרשן (ה-interpreter) מיידית. כלומר, עוד לפני שהקוד מתחיל לרוץ, הקבועים מפוענחים.
לעומתם, משתנים אינם מפוענחים טרם הריצה, אלא תוך כדי ריצה והם גם דורשים הקצאת זכרון, מעין מגירה שתשמור את הערך (חישבו על המגירה שרשום עליה width ואם פותחים אותה, יש בתוכה את הערך 1000).
במילים אחרות: קבועים הם מהירים וחסכוניים בזכרון, אבל לא ניתן לשנותם. משתנים הם איטיים וצורכים זכרון, אבל ברי שינוי.
סיבה נוספת לשימוש בקבועים ולא במשתנים, זה למנוע מאיתנו (או ממישהו שבעתיד אולי יתחזק את הקוד שכתבנו) לנסות לשנות בטעות את הקבוע. זה כמובן לא יתאפשר וימנע טעויות תכנות.