Logical assignment ב-V8
-
@אהרן לצערי עדיין לא הבנתי כוונתך... אולי יש לך דוגמה לתחביר שהיית רוצה? או לדבר שאתה מחפש לחסוך?
אגב, למי שלא היה לו כח לקרוא את הכתבה, יש הבדל קטן בין:
data = data || data
ל-data ||= data
.
בראשון ה-assignment (השמה?) קורה בכל מקרה. בשני זה קורה רק אםdata
הוא לא truthy.
נפק"מ כאשר יש תוצאה צדדית של ה-assignment כמו במקרה שלElement.innerHTML
אז לשם הדיוקdata ||= data1
שווה ל-data || (data = data1)
-
@dovid אמר בLogical assignment ב-V8:
אני חושב שהוא מתכוון ל
var arr = null; arr = arr || []; arr.push(123)
אני חושב שאין סיבה שלא יעבוד ככה:
(arr ||= []).push(123);
אני חושב לאט, אבל בסוף זה מגיע..
התכוונתי ל
newData || arr.push(newData)בעיקר הדברים האלו שימושיים כשמגיע דאטה לא צפוי, כמו מהשרת ולפעמים מה-DB.
וכששמות המשתנים ארוכים, זה ממש מיקל
res.data.longNameVar