JavaScript היא שפה סלחנית. חלק מהתחביר שלו הוא אופציונלי, והשפה מתאוששת משגיאות בחן רב יותר מאשר רבות אחרות. אבל החזקת היד הזו מגיעה עם עונש: זה יכול להיות קל יותר להציג באגים, וקוד לא עקבי קשה יותר לקריאה.

למרבה המזל, אם אתה רוצה להפעיל יותר משמעת, יש דרך קלה לעשות זאת: מצב קפדני. מצב קפדני הוא דרך לבקש מ-JavaScript להגיב בצורה נחרצת יותר כאשר הוא נתקל בבעיות בקוד שלך.

מהו מצב קפדני?

מספר שפות משתמשות בקונספט של מצב קפדני: מצב שמעריך ומריץ קוד בצורה קפדנית יותר. ייתכן שאתה מכיר את ה-HTML strict doctype, אשר מוציא משימוש אלמנטים ותכונות מסוימים.

לפרל, עוד שפת סקריפטים מתפרשת, יש כבר מזמן מצב קפדני משלה. מצב זה אוסר סוגים מסוימים של ביטוי לא בטוח.

כיצד אוכל להשתמש במצב קפדני ב-JavaScript?

בתוך סקריפט, שים הצהרה "השתמש בקפדנות" ממש בחלק העליון, לפני כל הצהרות אחרות:

// כל הסקריפט הזה יהיה במצב קפדני
'שימוש קפדני';

שים לב שאתה יכול לכלול הערה לפניה, אך ללא הצהרות. אתה יכול להפעיל מצב קפדני בקובץ JavaScript, או בתחילת בלוק סקריפט בקובץ HTML. אתה יכול גם להפעיל מצב קפדני על בסיס פונקציה אחר פונקציה:

instagram viewer
function strict() {
// תחביר מצב קפדני ברמת הפונקציה
'שימוש קפדני';
return "הפונקציה הזו קפדנית";
}
function loose() {
return "פונקציה זו אינה קפדנית";
}

לאחר שהפעלת מצב קפדני, הקפד לבדוק את הקוד שלך. אם אתה עובד עם האינטרנט, פתח את א קונסולת JavaScript, כדי שתוכל לזהות שגיאות חדשות.

מה עושה המצב הקפדני של JavaScript?

בקיצור, המצב המחמיר יהיה פחות סלחן לסוגים מסוימים של קוד בעייתי. במקום להתעלם מבעיות ולהמשיך בביצוע, שגיאות מסוימות יעצרו את הסקריפט. זה לרוב בטוח יותר מאשר להמשיך בנסיבות לא רצויות.

מונע גלובלים מקריים

הדוגמה הטובה ביותר שמצב קפדני מגן מפניה היא יצירת משתנים גלובליים מקריים. בביצוע רגיל, הקוד הזה:

myVar = 17;

זה יצור מאפיין בשם myVar על האובייקט הגלובלי, בהנחה שלא הכרזת בעבר על myVar. בדפדפן אינטרנט, האובייקט הגלובלי הוא בדרך כלל חלון:

console.log (window.myVar);
>> 17

אם תכלול הצהרת "השתמש בקפדנות", לעומת זאת, תראה שגיאה במסוף, משהו כמו:

Uncaught ReferenceError: myVar אינו מוגדר

הסיבה שזה כל כך שימושי היא שהוא קולט מקרה נפוץ של שגיאות הקלדה. קל להקליד שגוי של שם משתנה, ושפות רבות היו קולטות אותנו בשגיאה כזו.

אבל JavaScript, כברירת מחדל, פשוט מניח את היקף האובייקט הגלובלי וממשיך כאילו שום דבר לא בסדר. קוד מסוים עשוי להיות תלוי בכוונה בהתנהגות הזו, וזה משהו שאתה צריך להיות מודע אליו כשאתה מחליט להשתמש במצב קפדני.

ראה גם: כיצד לשמור על הקוד שלך נקי עם אנקפסולציה של אובייקטים

הופך את הכישלון למפורש

התנהגות מסוימת ב-JavaScript נכשלת, אבל היא עושה זאת בשקט. ייתכן שלא ידעת על שגיאות כאלה אלא אם כן אתה בודק אותן באופן ספציפי. לדוגמה, NaN הוא מאפיין מיוחד של האובייקט הגלובלי המייצג מספר לא חוקי. מאפיין זה הוא לקריאה בלבד, אך עדיין תוכל לנסות לכתוב אליו:

NaN = 2;
>> 2

אבל למרות שנראה כאילו המשימה הזו הצליחה, היא לא:

NaN
>> NaN

במצב קפדני, תקבל שגיאה ממשית האומרת לך שאינך יכול להקצות ל-NaN. קוד זה משתמש בפונקציה כדי שתוכל להדגים מצב קפדני בקונסולה:

javascript
function badNaN() { "use strict"; חַלוֹן. NaN = 2; }
>> לא מוגדר
badNan()
>> Uncaught TypeError: לא ניתן להקצות למאפיין 'NaN' בלבד של האובייקט '#'
ב-badNaN (:1:46)
בשעה :1:1

זוהי דוגמה קלאסית שמראה, בעוד שבורות עשויה להיות אושר, לפעמים עדיף לדעת אם משהו משתבש.

מזהיר לגבי פרמטרים כפולים

הדוגמה האחרונה עוסקת בתכונה לא ידועה של JavaScript. אולי יפתיע אותך לגלות ששמות פרמטרים לא חייבים להיות ייחודיים:

function dupeParam (a, a, c) { console.log (a); }
>> לא מוגדר
dupeParam (2, 4, 8)
>> 4

שים לב ש-JavaScript מקצה את הערך האחרון לפרמטר משוכפל. כעת, התנהגות זו אינה שימושית במיוחד. למעשה, זה יהיה שימושי יותר עבור JavaScript לומר לנו שזו שגיאה, וזה בדיוק מה שמצב קפדני עושה:

function dupeParam (a, a, c) { "use strict"; }
<< Uncaught SyntaxError: שם פרמטר כפול אינו מותר בהקשר זה

השתמש במצב קפדני לביטחון קוד נוסף

שיטות עבודה טובות ואמצעים לאכיפתן הולכים יד ביד. בהקשרים מסוימים, כגון תפקיד תכנות מקצועי, תרצה להפעיל כמה שיותר משמעת. גם אם אתה רק עובד על פרויקט תחביב בקוד פתוח, ייתכן שהמתחזק יעדיף להשתמש במצב קפדני כסטנדרט.

בסופו של דבר, זה תלוי בך, אבל כדאי לדעת שיד עוזרת זמינה. כמתכנת, אתה תמיד צריך לחפש שיטות עבודה מומלצות ומה אתה יכול לעשות כדי לאכוף אותן.

10 עקרונות תכנות בסיסיים שכל מתכנת חייב לדעת

הקוד שלך צריך להיות ברור וקל לתחזוקה. להלן מספר עקרונות תכנות נוספים שיעזרו לך לנקות את המעשה שלך.

קרא הבא

לַחֲלוֹקצִיוּץאימייל
נושאים קשורים
  • תִכנוּת
  • JavaScript
  • בניית אתרים
  • שפות תכנות
על הסופר
בובי ג'ק (62 מאמרים שפורסמו)

בובי הוא חובב טכנולוגיה שעבד כמפתח תוכנה במשך רוב שני עשורים. הוא נלהב ממשחקים, עובד כעורך ראשי במגזין Switch Player, והוא שקוע בכל ההיבטים של פרסום מקוון ופיתוח אתרים.

עוד מבובי ג'ק

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחץ כאן כדי להירשם