פשוט יותר אם הצהרות אומרות תמיד קוד JavaScript נקי יותר.

הצהרות מותנות הן חלק חיוני מ-JavaScript. הם מאפשרים לך להפעיל קוד על סמך אם תנאי נתון הוא נכון או לא נכון, ואתה יכול לקנן מרובים אחרת הצהרות (ו- אַחֵר) כדי להעריך יותר מתנאי אחד.

אבל כאן הבעיה - כשכותבים מורכבים אחרת רשתות, דברים יכולים להסתבך במהירות, ואתה יכול בקלות לקבל קוד שקשה לקרוא ולהבין.

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

מורכבות אם...אחרת שרשראות

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

פוּנקצִיָהיכול לשתות(אדם) {
אם(אדם? גיל != ריק) {
אם(אדם.גיל < 18) {
לְנַחֵם.עֵץ("עדיין צעיר מדי")
} אַחֵראם(גיל אדם < 21) {
לְנַחֵם.עֵץ("לא בארה"ב")
} אַחֵר {
לְנַחֵם.עֵץ("מותר לשתות")
}
} אַחֵר {
לְנַחֵם.עֵץ("אתה לא בן אדם")
}
}

const אדם = {
גיל: 22
}

canDrink (אדם)

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

instagram viewer

אם האדם צעיר מ-18, הוא צעיר מכדי לשתות. אם הם מתחת לגיל 21, הם עדיין מתחת לגיל השתייה החוקי בארצות הברית. אחרת, הם יכולים לקבל משקה באופן חוקי.

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

סעיפי משמר

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

פוּנקצִיָהcanDrinkBetter() {
אם(אדם? גיל == ריק) לַחֲזוֹרלְנַחֵם.עֵץ("אתה לא בן אדם")

אם(אדם.גיל < 18) {
לְנַחֵם.עֵץ("עדיין צעיר מדי")
} אַחֵראם(גיל אדם < 21) {
לְנַחֵם.עֵץ("לא בארה"ב")
} אַחֵר {
לְנַחֵם.עֵץ("מותר לשתות")
}
}

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

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

אל תשתמש בהחזרה אחת

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

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

עם זאת, אתה יכול להשתמש במספר לַחֲזוֹר הצהרות כדי לפשט עוד יותר את הקוד שלך (ולהיפטר מהקינון):

פוּנקצִיָהcanDrinkBetter() {
אם(אדם? גיל == ריק) לַחֲזוֹרלְנַחֵם.עֵץ("אתה לא בן אדם")

אם(אדם.גיל < 18) {
לְנַחֵם.עֵץ("עדיין צעיר מדי")
לַחֲזוֹר
}

אם(אדם.גיל < 21) {
לְנַחֵם.עֵץ("לא בארה"ב")
לַחֲזוֹר
}

לְנַחֵם.עֵץ("מותר לשתות")
}

הקוד הזה עובד כמו שתי הדוגמאות הקודמות, והוא גם קצת יותר נקי.

חלץ פונקציות עבור קוד מנקה

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

במקום להיות ארוך אחרת שרשרת בתוך פונקציה אחת, אתה יכול ליצור פונקציה נפרדת canDrinkResult() שעושה לך את הבדיקה ומחזיר את התוצאה:

פוּנקצִיָהcanDrinkResult(גיל) {
אם(גיל < 18) לַחֲזוֹר"עדיין צעיר מדי"
אם(גיל < 21) לַחֲזוֹר"לא בארה"ב"
לַחֲזוֹר"מותר לשתות"
}

ואז בתוך הפונקציה הראשית, כל מה שאתה צריך לעשות הוא להחיל תחילה את סעיף השמירה לפני שתקרא ל- canDrinkResult() פונקציה (עם הגיל כפרמטר שלה) כדי לקבל את התוצאה:

פוּנקצִיָהcanDrinkBetter() { 
אם(אדם? גיל == ריק) לַחֲזוֹרלְנַחֵם.עֵץ("אתה לא בן אדם")

לתת תוצאה = canDrinkResult (person.age)
לְנַחֵם.log (תוצאה)
}

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

הרחק אחר מהצהרות מותנות

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

נסה לשמור על אַחֵר הצהרה הרחק מהתנאים שלך ככל האפשר על ידי שימוש בשני סעיפי שמירה וטכניקת חילוץ הפונקציות.

אם אתה עדיין חדש בשימוש ב-JavaScript אחרת הצהרה, התחל עם היסודות.