Sutthirak

Feb 14, 2014

ผมได้มีโอกาสอ่านบทความที่เกี่ยวข้องกับการเขียน javascript ว่าทำไมเวลาที่จะทำการเปรียบเทียบตัวแปร เราจึงควรใช้ === เพื่อใช้ในการเปรียบเทียบแทนที่จะใช้ ==

ในภาษา Javascript นั้น === หมายถึงการเปรียบเทียบตัวแปรที่จะให้ค่า true เมื่อตัวแปรทั้งสองตัวมีทั้งค่าและชนิดของตัวแปรเหมือนกัน ส่วนการเปรียบเทียบด้วย == จะตรวจสอบเฉพาะค่าของตัวแปรเท่านั้นโดยไม่สนใจชนิดของตัวแปร

// result will be true.
console.log(5==5);

// result will also be true.
console.log(5=='5');

// result will be true.
console.log(5===5);

// result will be false. because type is difference.
console.log(5==='5');

ปัญหาที่พบอีกอย่างในการใช้ == ในการเปรียบเทียบ ผลของการเปรียบเทียบจะให้ผลลัพธ์ที่ผิดพลาดไปจากความเป็นจริง ยกตัวอย่างเช่น

0 == ''
'\n' == 0
null == undefined
false == '0'
'0' == 0

ผลลัพธ์ทั้งหมดจากการเปรียบเทียบให้ค่าเป็นจริง ซึ่งผิดจากความเป็นจริง ซึ่งผลลัพธ์ดังกล่าวอาจจะทำให้เกิดปัญหากับ Application จากการคำนวณผลลัพธ์ที่ผิดพลาดได้

กันไว้ดีกว่าแก้ การใช้ === ก็อาจจะช่วยให้ Application ของเรามีข้อผิดพลาดได้น้อยลงได้ครับ :)


ที่มา : http://fifod.com/why-you-should-always-use-and-other-bad-practices/