שבט

אופטימיזציה של תנאים ב-JavaScript

קראתי ב-sitepoint מאמר שמדבר על כמה דברים מעניינים על תנאים ב-JavaScript.
למשל: כמו כמה שפות תכנות אחרות, אם תנאי מורכב מכמה חלקים, השפה תבדוק כמה שפחות כדי להגיע למסקנה אם התנאי הוא אמיתי או שקרי. כלומר, אם יש תנאי שקורה שמצב X או במצב Y, ו- מוגדר ראשון בתנאי, אזי אם X הוא שקרי, JS לא ימשיך לבדוק את Y, מפני שהערך שלו כבר לא רלוונטי – JS יודע שהוא לא אמור להכנס לתנאי הזה, גם אם Y יהיה אמיתי. הנפקא מינא של זה היא שאם בחלק השני של התנאי (בחלק ה-Y) ישנה השמה – היא תקרה רק אם X אמיתי. אז צריך לשים לב לזה (מי שנוהג לעשות השמות בתנאים שלו, דבר שהוא לא תמיד מומלץ, בעיקר בגלל מה שאמרנו עכשיו, וגם מפני שזה מבלבל, וגם עלול לגרום לתוצאות שלא התכוונו אליהן…)

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

//remove node from its parentnode
node && node.parent && node.parent.removeChild(node);

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

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

($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]

שילך לקרוא כאן

כתבו תגובה

כתובת הדוא"ל שלכם לא תוצג.