JavaScript – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
Ronam20 (שיחה | תרומות)
Yoavd (שיחה | תרומות)
מ אחידות במיקום הערות שוליים
שורה 27:
 
== אפיוני השפה ==
השפה היא שפה שעוברת תהליך [[מפרש (תוכנה)|אינטרפטרציה (פירוש)]] ולא [[מהדר|קומפילציה (הידור)]].<ref>{{קישור כללי|כתובת=https://web.stanford.edu/class/cs98si/slides/overview.html|כותרת=Introduction|אתר=web.stanford.edu|תאריך_וידוא=2020-02-16}}</ref> משמעות הדבר שקוד המקור לא צריך לעבור תהליך של קימפול (הידור) לשפת ביניים ואז להריץ אותו, אלא הinterpreter(מפרש) קורא שורה שורה או מקבץ של שורות (למשל scope של פונקציה) ומריץ אותן ישירות. תהליך זה מקל לעיתים להבין היכן התבצעה שגיאה ומאפשר דיבוג קל יותר של השפה.
 
העברת פרמטרים לפונקציה בשפה משתנה בין טיפוסים פרימטיבים לאובייקטים. טיפוסים פרמיטיבים עוברים by value כלומר השפה מעבירה את הערך כמו שהוא ולא יוצרת העתק של הערך. טיפוסים מורכבים או אובייקטים עוברים by reference כלומר השפה תעביר העתק של של האובייקט ולא את האובייקט המקורי.<ref>{{קישור כללי|כתובת=https://www.w3schools.com/js/js_function_parameters.asp|כותרת=JavaScript Function Parameters|אתר=www.w3schools.com|תאריך_וידוא=2020-02-16}}</ref>.
 
השפה תומכת בתחביר הסטנדרטי של שפת C, מבחינת [[אופרטור (תכנות)|אופרטורים]], מבני בקרה ופקודות, ומבדילה בין אותיות גדולות לקטנות (case-sensitive). כמו ברוב שפות התסריט טיפוסי השפה מקושרים לערכים ולא למשתנים, משתנה X יכול להפוך במהלך הריצה ממספר למחרוזת לפי ההשמה.