הבנה בJS
-
האופרטורים || וגם ה&& לא מחזירים ערך בולאיני (כן/לא) כמו בשפות תוכנה אחרות אלא הם מחזירים את הערך עצמו.
ההגדרה של || היא: החזר את הערך הראשון אם הוא "נכון" ואם לא את השני.
ההגדרה של && היא: אם הערך הראשון "נכון", החזר את השני. אחרת החזר את הראשון.כששמים ערך שאיננו true/false לאופרוטורים הלוגיים מתבצעת בדיקה על המרה שלהם לכן/לא כאשר כל הערכים הם חיוביים (מספר טקסט וכו') למעט הערכים הללו (0, -0, null, undefined, false, מחזרות טסט ריקה).
נ.ב. אני זוכר שהיה לי מאוד קשה להבין מה הקשר בין האופטור הלוגי "או" ו"גם" לבין ההתנהגות הזו.
אני זוכר גם שתקפתי את השפה בגלל זה, שהיא טריקית באופן מובנה. כמובן שכיום אני חושב הרבה פחות ככה...