การคำนวณนั้นเป็น พื้นฐานสำคัญของภาษาโปรแกรมมิ่ง ซึ่ง ตัวดำเนินการทางคณิตศาสตร์ก็เป็นพื้นฐานการคำนวณของ โปรแกรม แล้วทำไมเราต้องมาศึกษาของ ภาษา javascript ในเมื่อเราก็เรียน วิธีการทางคณิตศาสตร์ และ เครื่องหมายทางคณิตศาสตร์มาตั้งแต่ ประถมแล้ว แน่นอนว่า ภาษา Javascript นั้นมี ข้อมูลที่เป็น dynamic type คือข้อมูลในภาษา javascript นั้นสามารถเปลี่ยนแปลงชนิดของข้อมูลได้ ก่อนที่จะมาดูการดำเนินการทางคณิตศาสตร์มาดู primitive type แบบคราวๆกันก่อน
ข้อมูลพื้นฐานของภาษา javascript นั้นมีทั้งหมด 5 ประเภทด้วยกัน
1. ตัวเลข (number)
2. ตัวหนังสือ (string)
3. ค่าความจริง (boolean)
4. ค่าว่าง (null)
5. ยังไม่ได้กำหนดค่า (undefined)
ต่อมามาดูกันว่าตัวดำเนินการทางคณิตศาสตร์มีอะไรบ้าง
1. + addition
2. — subtraction
3. * multiplication
4. / Division
5. % modulo
6. (++) increment
7. ( — ) decrement
8. (**) Exponentiation
คราวนี้เรามาดูกันว่าข้อมูลแต่ละประเภทเมื่อใช้ตัวดำเนินการทางคณิตศาสตร์เป็นยังไงกันบ้าง แล้วจุดสังเกตคืออะไร แต่ก่อนอื่นมาดูโค๊ดตัวอย่างกันก่อนนะครับ
จากตัวอย่างรูปภาพด้านบนจะเห็นได้ว่าเมื่อนำข้อมูลประเภทต่างๆมาคำนวณผ่านตัวดำเนินการทางคณิตศาสตร์แล้วนั้นประเภทของข้อมูลส่วนใหญ่มีการเปลี่ยนแปลงไป
เราลองมาวิเคราะห์กันดูนะครับว่า จุดสังเกตที่เราพบมีอะไรกันบ้าง
- ตัวดำเนินการทางคณิตศาสตร์ที่เป็นเครื่องหมาย + เมื่อมีการใช้ร่วมกับข้อมูลประเภท ตัวหนังสือ (String) เมื่อรวมกับข้อมูลประเภทอื่นๆ จะทำให้ ผลลัพธ์ กลายเป็นข้อมูล ตัวหนังสือ ตัวหน้า + มาต่อด้วยตัวหลัง +
- ตัวดำเนินการทางคณิตศาสตร์ที่เป็นเครื่องหมาย -,* , / จะทำให้ข้อมูลทั้งหมดกลายเป็นประเภท ตัวเลข (Number) และ ผลลัพธ์สุดท้ายออกมาเป็น ตัวเลข
- สิ่งที่ต้องรู้คือ ข้อมูลประเภทอื่นๆเมื่อเปลี่ยนเป็นตัวเลขแล้วจะได้ค่าอะไร
โดยการเปลี่ยนข้อมูลนั้นตัวภาษา Javascript จะทำการเปลี่ยนข้อมูลโดยใช้ Number method ในการเปลี่ยนค่า จากรูปที่ 6 เราสามารถเช็คค่าได้ว่าข้อมูลประเภทไหนเปลี่ยนเป็นค่าอะไร
4. ค่าอะไรก็ตามเมื่อมากระทำกับ NaN จะได้ค่าเป็น NaN เสมอ
ข้อควรระวัง!!!!
- หลายคนมักเข้าใจผิดว่า ถ้าเอา String มา * ตัวเลข จะได้ String ที่ซ้ำกันเท่ากันจำนวนตัวเลข
ตัวอย่างเช่น
“Hello” * 3 = “HelloHelloHello” ผิด
ซึ่งเป็นการเข้าใจที่ผิดเพราะว่า บางคนอาจเคยเอา String มาบวกกันแล้ว String มาต่อกันเลยคิดว่า * จะทำได้ จริงๆแล้วไม่ได้ และผลลัพธ์ที่ได้ออกมาดันเป็นข้อมูลตัวเลขอีก
“Hello” * 3 = NaN ถูกต้อง
2. String ตัวเลข + ตัวเลข ได้เป็นตัวเลข
ตัวอย่างเช่น
“1” + 1 = 2 ผิด
ซึ่งเป็นการเข้าใจที่ผิดเพราะว่า บางคนอาจเคยจะลืม “1” เป็นข้อมูล ประเภท String ดังนั้นผลลัพธ์สุดท้ายยังไงต้องได้ String แต่พอลืมว่าคิดว่า “1” เป็นตัวเลข ทำให้ผลการเอาข้อมูลไปใช้ต่อมีความผิดพลาดได้
“1” + 1 = “11” ถูก
สุดท้ายผมมี เทคนิค เจ๋งๆมาฝากกันนะครับไหนๆ เราก็พูดถึงพวกตัวเลขกันแล้ว
เทคนิคที่ว่าก็คือ การเปลี่ยนข้อมูลประเภทอื่นๆเป็นข้อมูลตัวเลขอย่างง่ายๆ หลายคนอาจจะสงสัยว่ามันก็ไม่ได้ยากนิ ก็ใช้ Number method ที่กล่าวไปสิ แต่จริงๆแล้วมันมีวิธีที่ง่ายกว่านั้นครับ ก็คือการใช้พิมพ์เครื่องหมาย + ไปที่หน้าข้อมูลที่เราต้องการเปลี่ยนค่าครับแล้วตัว Javascript จะเปลี่ยนข้อมูลนั้นเหมือนกับการใช้ Number() เลย
บทความหน้าเรามาดูกันต่อว่า ตัวดำเนินการข้อที่ 5–8 ใช้ยังไงและมีจุดสังเกตอะไรบ้าง
ขอขอบคุณข้อมูลจาก:
https://medium.com/@ambitious_puce_spider_908/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%84%E0%B8%B3%E0%B8%99%E0%B8%A7%E0%B8%93%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%94%E0%B8%B3%E0%B9%80%E0%B8%99%E0%B8%B4%E0%B8%99%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%99%E0%B8%84%E0%B8%93%E0%B8%B4%E0%B8%95%E0%B8%A8%E0%B8%B2%E0%B8%AA%E0%B8%95%E0%B8%A3%E0%B9%8C-%E0%B9%83%E0%B8%99-%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2-javascript-part-1-8745f53c8efd