`אמתי` ו-`שקרי` ב-JavaScript
מאמר זה מסביר את המושגים truthy ו-falsy ב-JavaScript.
YouTube Video
אמתי ו-שקרי ב-JavaScript
המושגים אמתי ו-שקרי ב-JavaScript ממלאים תפקיד חשוב ביותר, במיוחד בהערכת משפטי תנאי. אמתי ו-שקרי קובעים אם ערך מוערך כ-true (נכון) או false (שגוי), אך ערכים אלו אינם בהכרח ה-Bool true או false עצמם.
ערכים שקריים
ערכים שקריים מתייחסים לערכים המוערכים כ-false בתוך תנאים של JavaScript. להלן רשימת ערכים שקריים ב-JavaScript.
1const values = [
2 false,
3 0,
4 -0,
5 0.0,
6 -0.0,
7 0n,
8 -0n,
9 "",
10 null,
11 undefined,
12 NaN
13];
14
15for (let value of values) {
16 if (value) {
17 console.log(`${value} is truthy`);
18 } else {
19 console.log(`${value} is falsy`);
20 }
21}בדוגמה זו, כל הערכים השקריים יפלטו כ-"שקרי". להלן רשימת ערכים שקריים ב-JavaScript.
false—falseבסוג בוליאני0— המספר אפס (עשרוני0.0הוא גםFalsy)-0— אפס שלילי (שונה מבחינה טכנית מ-0, אך עדייןFalsy)0n— אפס מסוג BigInt""— מחרוזת ריקה באורך 0null— אין ערך קייםundefined— ערך לא מוגדרNaN— לא מספר
ערכים אלה מטופלים כ-false בפעולות לוגיות ובמשפטי תנאי (כמו משפטי if).
ערכים אמיתיים
כל הערכים שאינם שקריים הם אמתיים. זה מתייחס לערכים המוערכים כ-Bool true. ב-JavaScript, ערכים רבים מטופלים כ-אמתיים.
1const values = [
2 true,
3 1,
4 -1,
5 "Hello",
6 " ",
7 [],
8 {},
9 function() {},
10 Symbol(),
11 Infinity
12];
13
14for (let value of values) {
15 if (value) {
16 console.log(value, ' is truthy');
17 } else {
18 console.log(value, ' is falsy');
19 }
20}בקוד זה, ערכים שהם truthy יופקו כ-"truthy". לדוגמה, הערכים הבאים הם truthy.
true—trueבסוג בוליאני- מספרים (שונים מ-0) — לדוגמה,
1ו--1הם גםtruthy. - מחרוזות (שאינן ריקות) — למשל,
"Hello"או" "(גם מחרוזות המכילות רק רווחים נחשבותtruthy) - אובייקטים — אפילו אובייקטים ריקים (
{}) ומערכים ([]) הםtruthy. - פונקציות — פונקציות עצמן גם הן
truthy. Symbol— ערכים מסוגSymbolגם כן נחשביםtruthy.Infinity— אינסוף חיובי וגם שלילי הםtruthy.
שימושים ל-truthy ו-falsy
המושגים truthy ו-falsy משמשים לעיתים קרובות בתנאים ובפעולות לוגיות. לדוגמה, בעת הגדרת ערך ברירת מחדל באמצעות האופרטור || (OR לוגי), הערך הראשון שהוא truthy יוחזר כתוצאה.
איך לבדוק ערכים שהם falsy
כדי לבדוק ערכים שהם falsy, נוח להשתמש בפונקציה Boolean. הפונקציה Boolean ממירה באופן ישיר ערך נתון לסוג בוליאני.
דוגמאות לשימוש בפונקציה Boolean
1const values = [
2 false,
3 0,
4 "",
5 null,
6 undefined,
7 NaN
8];
9
10for (let value of values) {
11 console.log(`${value} is ${Boolean(value) ? 'truthy' : 'falsy'}`);
12}סיום
truthy ו-falsy ב-JavaScript הם מושגים חשובים להבנת אופן הערכת ערכים שאינם בוליאנים בתוך ביטויים תנאיים. ערכים שהם falsy כוללים: false, 0, מחרוזת ריקה, null, undefined ו-NaN, בעוד כל ערך אחר יוערך כ-truthy. הבנת המושגים הללו מאפשרת לך לכתוב קוד גמיש ויעיל יותר.
תוכלו לעקוב אחר המאמר שלמעלה באמצעות Visual Studio Code בערוץ היוטיוב שלנו. נא לבדוק גם את ערוץ היוטיוב.