วันพฤหัสบดีที่ 17 กรกฎาคม พ.ศ. 2557

ภาษา JavaScript ฉบับผู้เริ่มต้น part 6-1

: ชนิดของไทป์ (type)

>> ชนิดของตัวแปร หรือ ชนิดของไทป์ หรือไทป์ หรือ type ได้ยินคำไหนใน part นี้ก็ความหมายเดียวกันหมดนะ เอาล่ะ จาวาสคริปต์แบ่งชนิดของไทป์ออกเป็นสองกลุ่ม ได้แก่
- Primitive Type
- Reference Type

>> Primitive Type คืออะไร?
ตอบ กลุ่มไทป์ที่เก็บค่าไว้ในพื้นที่ที่จองไว้ในหน่วยความจำโดยตรง (ในรูปของเลขฐานสอง) ประกอบด้วย Number, String และ Boolean

>> Reference Type คืออะไร?
ตอบ กลุ่มไทป์ที่เก็บค่าอ้างอิงไปยังพื้นที่อื่นซึ่งจะเรียกว่ากลุ่มของออบเจ็กต์ก็ได้ ประกอบด้วย Object, Array และ Function ครับ

>> เราทราบว่าจาวาสคริปต์เป็นภาษาประเภท Dynamic Typing กล่าวคือตัวแปรสามารถเปลี่ยนไทป์ไปมาได้ตามค่าที่ถูกกำหนดให้ใหม่ เราสามารถตรวจสอบว่าตัวแปรที่ประกาศขึ้นมานั้นมีไทป์เป็นชนิดอะไรด้วยคำสั่ง typeof ซึ่งดูได้จากตัวอย่างต่อไปนี้
1) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
2) http://www.w3resource.com/javascript/operators/typeof.php

เมื่อศึกษาแล้วจึงพบว่า
- ตัวแปรที่กำหนดค่าให้เป็นดังเช่น 37 หรือ 3.14 มีไทป์เป็น number
- หากกำหนดเป็น "" หรือ "love you" จะมีไทป์เป็น string
- หากกำหนดเป็น true หรือ false จะมีไทป์เป็น boolean
- หากกำหนดเป็น new Date() หรือ JSON จะมีไทป์เป็น object
- หากกำหนดเป็น function(){} หรือ Math.sin จะมีไทป์เป็น function
- ส่วนไทป์ที่เป็น Array ขออธิบายอย่างละเอียดในโอกาสต่อๆไป

>> รู้จักชนิดของไทป์แล้วมีประโยชน์อย่างไร?
ตอบ การที่เราทราบชนิดของไทป์ เราย่อมทราบพฤติกรรมของมัน พฤติกรรมที่ว่านี้ก็คือการเข้าถึงค่า (ที่ถูกกำหนดให้) ของตัวแปร อีกทั้งยังเป็นการบริหารหน่วยความจำของบราวเซอร์ให้มีประสิทธิภาพอีกด้วย (พวกนี้เทพเกินไป) ตัวอย่างเช่น เขียนเกมหมากฮอส ถ้าหมากของเราสามารถเดินไปจนถึงตารางแถวสุดท้ายของอีกฝ่ายได้ หมากตัวนั้นจะเลเวลอัพเพิ่มความสามารถในการเดิน (แนวทแยงมุม) ได้สุดกู่ ลักษณะอย่างนี้เมื่อเรากำหนดชนิดของตัวแปรด้วยไทป์ที่เป็น Number ก็จะสิ้นเปลืองหน่วยความจำอย่างมากหากนำมาเทียบกับไทป์ที่มีชนิดเป็น Boolean ทว่าในขั้นเริ่มต้นเรียนรู้ร่วมกันนี้ก็ไม่จำเป็นต้องทราบละเอียดขนาดนั้น ปล่อยวางไปบ้างก็หาเป็นไรไม่

>> ขอให้ติดตามต่อใน part 6-2 ผมจะแสดงให้เห็นถึงความแตกต่างของ Primitive Type กับ Reference Type สำหรับ part นี้ไว้เท่านี้ก่อน ยาวไปเดี๋ยวหลับ สวัสดีจ้า

ไม่มีความคิดเห็น:

แสดงความคิดเห็น