รู้จักกับชนิดข้อมูล (Data Types)
ตอนนี้เราได้ลองใช้งานข้อมูล 2 ชนิดแล้วในภาษา JavaScript ก็คือตัวเลข (Number) กับข้อความ (String)
และเดี๋ยวเราจะได้เจอกับชนิดอื่นๆ ในบทต่อๆ ไป
typeof
เราสามารถตรวจสอบชนิดข้อมูล โดยการใช้โอเปอเรเตอร์
typeof
ได้typeof 123
"number"
typeof "Hello, world!"
"string"
การแปลงชนิดข้อมูล (Type Coercion)
จำได้ใช่ไหมครับว่าในตอนก่อนหน้า เครื่องหมาย
+
สามารถใช้ได้ทั้งสำหรับการบวกเลข และต่อ string เข้าด้วยกัน?แต่จะเกิดอะไรขึ้น ถ้าเอาข้อมูลชนิด number กับ string มา
+
กัน?ในเอกสารอ้างอิงของเครื่องหมายบวกได้ระบุไว้ว่า ในการเอาค่าสองค่ามาบวกกัน หากมีฝั่งใดฝั่งหนึ่งเป็นข้อมูลชนิด string อีกฝั่งจะถูกแปลงเป็น string แล้วจึงนำมาต่อกัน
123 + "456"
"123456"
หรือถ้าเอา string สองอันมา
*
กันล่ะ?ในเอกสารอ้างอิงของเครื่องหมายดอกจันได้ระบุไว้ว่า ทั้งสองฝั่ง จะถูกแปลงเป็นตัวเลขก่อน แล้วจึงนำมาคูณกัน ผลลัพธ์ที่ได้จะเป็นข้อมูลที่มีชนิดเป็นตัวเลข
"123" * "456"
56088
Exercise
ในตอนก่อนหน้า (“ลำดับการทำงานของตัวดำเนินการ”) เราได้เรียนรู้กันไปว่า
10 + 10 * 0 + 10
ในภาษา JavaScript คำตอบคือ 2010 + 10 * 0 + 10
20
แต่ถ้าเราลองเปลี่ยนตัวเลขทั้งหมดในโจทย์ ให้เป็น string แทนล่ะ JavaScript จะตอบเท่าไหร่?
"10" + "10" * "0" + "10"
ลองหาคำตอบโดยไม่ใช้ Console ดูครับ ลองเช็คคำตอบข้างล่างได้เลย
"10" + "10" * "0" + "10"
ตอบ: