יכול להיות שראיתם סימנים שווים כפול ומשולש ב- JavaScript. אבל למה הם מתכוונים?
ובכן בקיצור: ==
מטבעו ממיר סוג ===
ואינו ממיר סוג.
כפול שווה ( ==
) בודק שוויון ערכי בלבד. מטבע הדברים זה עושה כפייה מסוג. פירוש הדבר שלפני בדיקת הערכים הוא ממיר את סוגי המשתנים כך שיתאימו זה לזה.
מצד שני, משולש משולש ( ===
) אינו מבצע כפיית סוג. זה יוודא אם המשתנים המושווים הם בעלי אותו ערך וגם אותו סוג.
בסדר - אז בואו נעזור לכם להבין טוב יותר את ההבדל באמצעות כמה דוגמאות. עבור כל אחד מאלה, שקול מה תהיה תפוקת ההצהרות הללו.
דוגמה 1:
const foo = "test" const bar = "test" console.log(foo == bar) //true console.log(foo === bar) //true
הערך ואת הסוג של שניהם foo
לבין bar
הוא זהה. לכן התוצאה היא true
לשניהם.
דוגמה 2:
const number = 1234 const stringNumber = '1234' console.log(number == stringNumber) //true console.log(number === stringNumber) //false
השווי number
ו stringNumber
נראה דומה כאן. עם זאת, סוג number
הוא Number
וסוג stringNumber
הוא string
. למרות שהערכים זהים, הסוג אינו זהה. ומכאן ==
מחזיר המחאה true
, אך כאשר בדקו עבור הערך ואת סוג, הערך הוא false
.
דוגמה 3:
console.log(0 == false) //true console.log(0 === false) //false
סיבה: אותו ערך, סוג אחר. הקלידו כפייה
זה מקרה מעניין. הערך של 0
כאשר מסמנים false
אותו זהה. זה כל כך בגלל 0
ו false
יש אותו ערך עבור JavaScript, אך כאשר בודקים את סוג ואת הערך, הערך הוא כי שקר 0
הוא number
ו false
הוא boolean
.
דוגמה 4:
const str = "" console.log(str == false) //true console.log(str === false) //false
הערך של מחרוזת ריקה וזהה false
ב- JavaScript. לפיכך, ==
מחזיר נכון. עם זאת, הסוג שונה ומכאן ===
מחזיר שקר.
מתי כדאי להשתמש ==
ומתי כדאי להשתמש ===
?
במקרה של ספק, השתמש ===
. זה יחסוך ממך המון באגים פוטנציאליים.
אם אתה תומך במקרה שימוש בו אתה יכול להקל מעט על סוג הנתונים הנכנסים, השתמש בו ==
. לדוגמא, אם ממשק API מקבל את הלקוח "true"
וגם true
את הלקוח, השתמש בו ==
. בקיצור, אל תשתמש ==
אלא אם כן יש לך מקרה שימוש חזק לכך.
הנה טבלת אמת JavaScript שימושית לעיונך וכדי להראות לך עד כמה השוויון מורכב ב- JavaScript:

אם נהנית ממאמר זה, הקפד לעקוב אחרי בטוויטר לקבלת עדכונים.
ש: כמה מקום ישתחרר עם עזיבת בריטניה את האיחוד האירופי?
.
.
.
ת: 1 GB # DevJoke #NotAJoke
- שרוטי קאפור (@ shrutikapoor08) 4 באוקטובר 2019