`אמתי` ו-`שקרי` ב-JavaScript

`אמתי` ו-`שקרי` ב-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.

  • falsefalse בסוג בוליאני
  • 0 — המספר אפס (עשרוני 0.0 הוא גם Falsy)
  • -0 — אפס שלילי (שונה מבחינה טכנית מ-0, אך עדיין Falsy)
  • 0n — אפס מסוג BigInt
  • "" — מחרוזת ריקה באורך 0
  • null — אין ערך קיים
  • 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.

  • truetrue בסוג בוליאני
  • מספרים (שונים מ-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 בערוץ היוטיוב שלנו. נא לבדוק גם את ערוץ היוטיוב.

YouTube Video