​การสร้าง variables หรือ ตัวแปร ประกอบด้วย 3 อย่าง

  • identifiers
  • assignment operator
  • data type

Identifiers

  • ตัวแปรต้องมีชื่อเฉพาะ ชื่อเฉพาะของตัวแปรจะเรียกว่า identifier
  • ชื่อเฉพาะนิยมเขียนในลักษณะ Camel case
  • ตัวแปรใน ​​JavaScript เป็น case sensitive หมายความว่า ตัวแปรที่สะกดเหมือนกัน แต่ใช้ตัวพิมพ์ใหญ่พิมพ์เล็กต่างกัน จะถือว่า เป็นตัวแปรคนละตัวกัน เช่น myName กับ myname เป็นตัวแปรคนละตัวกัน
  • ไม่สามารถใช้ Keyword เป็นตัวแปรได้ ดูรายการ Keyword

Assignment operator

  • เครื่องหมาย assignment คือ เครื่องหมายที่กำหนดค่าของตัวแปร แทนด้วย =
  • เครื่องหมาย = ไม่มีความหมายว่า “เท่ากับ” แต่เป็น “กำหนดให้เป็น”
  • เครื่องหมายเท่ากับหรือ equal to operator ใน JavaScript แทนด้วย ===

Primitive Data Types

Primitive data types คือชนิดของข้อมูลที่ไม่มีความซับซ้อน มีค่าเดียว ไม่มี properties และ/หรือ methods ชนิดของข้อมูลนี้ได้แก่

  • String
  • Number
  • Boolean
  • Undefined

String

  • ข้อมูลที่เป็นข้อความ หรือ string
  • ข้อความต้องอยู่ในเครื่องหมายคำพูด
  • สามารถใช้ได้ทั้ง 3 แบบ double quotes ” “, single quotes ‘ ‘ และ backticks ` ` (อยู่ก่อนหน้าเลข 1 บนคีย์บอร์ด)
  • double quotes และ single quotes เป็น simple quotes
  • backticks เป็น extended functionality มีประโยชน์ในการ interpolate ตัวแปร โดยใช้ template literals

Number

  • เป็นข้อมูลชนิดตัวเลข สามารถ reassign หรือ กำหนดค่าของตัวแปรใหม่ได้
  • มี operator ที่สามารถใช้กับข้อมูลชนิดนี้ได้หลายตัว เช่น บวก ลบ คูณ หาร เป็นต้น
  • ใช้ได้ทั้งกับจำนวนเต็มและทศนิยม

ข้อมูลชนิดตัวเลขสามารถเก็บค่าตัวเลขตั้งแต่ -9007199254740991 ไปจนถึง 9007199254740991

Special Numeric Values

เป็นค่าที่จัดอยู่ในข้อมูลชนิดตัวเลข มีทั้งหมด 3 ค่า

  • Infinity
  • Negative Infinity
  • NaN

Infinity

  • จำนวนเต็มบวกใดๆที่หารด้วย 0 จะได้ผลลัพท์เป็น Infinity
  • สามารถกำหนดค่าตัวแปรเป็น Infinity ได้ โดยการ assign ตัวแปรเป็น Infinity
  • ดูลักษณะอื่นๆของจำนวน Infinity

Negative Infinity

NaN

  • NaN หรือ Not a Number หมายถึง ข้อผิดพลาดในการคำนวณ
  • หากการคำนวณใดแสดงผล NaN การคำนวณอื่นที่เกี่ยวข้องจะกลายเป็น NaN ทั้งหมด

BigInt

  • อยู่ในกลุ่ม Number
  • เป็นข้อมูลตัวเลขที่มีความกว้างมากกว่าตัวเลขทั่วไปในกลุ่ม Number
  • สร้างขึ้นโดยการเติม n ที่ด้านหลังของจำนวน
  • เป็นชนิดข้อมูลที่ไม่ค่อยได้ใช้ ตัวอย่างการใช้ BigInt เช่น การเข้ารหัส, การประทับตราเวลาเป็นหนึ่งในล้านวินาที
  • BigInt รองรับใน FireFox และ ​Chrome แต่ไม่รองรับใน Safari/IE/Edge
  • template literals คือ การแทนข้อความจากตัวแปรลงใน placeholder
  • ใช้ backticks quotes
  • ใช้ dollar sign และวงเล็บปีกกา
  • ข้างในวงเล็บปีกกา ใส่ตัวแปรที่ต้องการนำข้อความของตัวแปรนั้นมาแทนค่าใน placeholder

Booleans

  • มีสองค่าเท่านั้น คือ true (เป็นจริง) และ false (เป็นเท็จ)
  • สามารถใช้ในการเปรียบเทียบเพื่อแสดงความเป็นจริงหรือเป็นเท็จได้

undefined

ค่า undefined หมายถึง มีการประกาศตัวแปร แต่ไม่ได้กำหนดค่าตัวแปร

การประกาศตัวแปร

ก่อนการสร้างตัวแปร ต้องมีการประกาศตัวแปร หรือที่เรียกว่า declaration

ใน JavaScript สามารถประกาศตัวแปรได้ 3 วิธี คือ การประกาศโดยใช้ var, let และ const

var

สามารถ reassign และ update ค่าของตัวแปรได้

หากประกาศและสร้างตัวแปร แต่ไม่ได้กำหนดค่าของตัวแปร ตัวแปรจะมีค่าเป็น undefined

ตัวแปร var เป็น function scope นั่นหมายความว่าตัวแปรนี้เมื่อถูกสร้างขึ้นใน function จะอ้างถึงได้ในเมื่ออ้างถึงใน function เท่านั้น

หากอ้างถึงตัวแปร var ที่ถูกสร้างใน function ข้างนอก function โปรแกรมจะแสดง ReferenceError

หากตัวแปรไม่ได้ถูกสร้างใน function ตัวแปรนั้นนับเป็น global scope สามารถอ้างถึงได้ทั้งโปรแกรม

let

สามารถ reassign และ update ค่าของตัวแปรได้

หากประกาศและสร้างตัวแปร แต่ไม่ได้กำหนดค่าของตัวแปร ตัวแปรจะมีค่าเป็น undefined

ตัวแปร let เป็นตัวแปรที่ใช้ใน block scope หมายความว่า ตัวแปรนี้สามารถถูกอ้างถึงได้ใน code block ที่สร้างตัวแปรเท่านั้น หากอ้างถึงตัวแปร let ที่อยู่ใน block scope นอก block scope โปรแกรมจะแสดง ReferenceError

const

ตัวแปรที่ประกาศด้วยคีย์เวิร์ด const จะไม่สามารถ reassign ค่าของตัวแปรได้

ไม่สามารถประกาศและสร้างตัวแปร แต่ไม่กำหนดค่าตัวแปรได้ โปรแกรมจะแสดง SyntaxError

ตัวแปร const เป็นตัวแปรที่ใช้ใน block scope หากอ้างถึงตัวแปร const ที่อยู่ใน block scope นอก block scope โปรแกรมจะแสดง ReferenceError