Logical Assignment Operator

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

אורח חדש ושימושי בתקן ES2021 – אני אפילו לא יודע איך לתרגם את זה – אופרטורים של השמה? בכל מקרה, זה קצת לא אינטואטיבי בהתחלה וחלק מכם יגידו "למה צריך את זה בכלל" – אבל בת'כלס זה שימושי וניסיתי להסביר למה. ומהרגע שזה נכנס ל-ES2021 נראה את זה יותר ויותר.

אז בואו ונתחיל. אנחנו מכירים את האופרטורים האלו, נכון?

&& – גם. למשל a && b זה גם a וגם b.
|| – או. למשל a || b זה או a או b.
?? – הכוכב החדש בשכונה (כן, שני סימני שאלה) עם השם Nullish Coalescing operator – שזה כמו || אבל גם לערכי false או null. הוא נכנס ב-ES2020.

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

let y = 5;
let x = 10;

if(x) {
  x = y
}

console.log(x); // 5

הוא די פשוט. אבל אני יכול לכתוב אותו באופן שונה. עם אופרטור לוגי:

let y = 5;
let x = 10;

x && (x = y);

console.log(x); // 5

מה זה אומר? קוד קצת לא אינטואטיבי. אני בעצם אומר יש x? אז יש גם x = y ומבצע את ההשמה. עכשיו בתקן החדש אני יכול לכתוב ככה:

let y = 5;
let x = 10;

x &&= y;

console.log(x); // 5

וזה האופרטור. אם יש x, אז תכניס לתוכו את הערך של y. הכי פשוט שיש. אם אין x? ההשמה לא תתבצע ו-x יישאר undefined.

האופרטור =&& שימושי מאוד אם אנו רוצים לדרוס משהו קיים.

אנו יכולים להשתמש באופרטור ||, וזה קצת יותר שימושי

let y = 5;
let x = false; // or undefined, or null

x ||= y;

console.log(x); // 5

במקרה הזה, אם x הוא undefined או false או null או אפס – תתבצע השמה.

כלומר האופרטור =|| שימושי אם אנו רוצים לבצע השמה רק אם משתנה מסוים הוא false – שימושי מאוד להגדרות.

אבל הכי שימושי הוא ידידנו ?? – כיוון שהוא מופעל אך ורק במקרה של undefined או null:

let y = 5;
let x; // undefined and null ONLY

x ??= y;

console.log(x); // 5

כלומר האופרטור =?? שימושי אם אנו רוצים לבצע השמה רק אם משתנה מסוים הוא undefined – שימושי ביותר להגדרות ברירת מחדל.

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

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

רספברי פיי

מה זה AIoT? ואיך אפשר להתחיל?

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

פתרונות ומאמרים על פיתוח אינטרנט

נגישות טכנית – פודקאסט ומבוא

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

גלילה לראש העמוד