ตัวแปร ECMAScript

โปรดใช้ตัวบวก var ในการประกาศตัวแปร

ชื่อตัวแปรต้องทำตามกฎที่เรียบง่ายๆ

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

ในบทกล่าวก่อนหน้านี้เราได้เรียกและอธิบายว่าตัวแปรใน ECMAScript มีการกำหนดด้วยตัวบวก var (short for variable) และชื่อตัวแปร ตัวอย่างเช่น:

var test = "hi";

ในตัวอย่างนี้ ได้ประกาศตัวแปร test และกำหนดค่าในตอนแรกว่า "hi" (ข้อความ) เนื่องจาก ECMAScript คือแบบไม่มีชนิดดังนั้น โปรแกรมแปลงภาษาจะสร้างค่าของตัวแปร test โดยอัตโนมัติไม่จำเป็นต้องมีการประกาศชนิด

สามารถกำหนดตัวแปรสองหรือมากกว่าด้วยคำสั่ง var หนึ่งคำ

var test1 = "hi", test2 = "hello";

โค้ดที่ก่อนหน้านี้กำหนดตัวแปร test1 มีค่าตั้งแรกว่า "hi" และกำหนดตัวแปร test2 มีค่าตั้งแรกว่า "hello"

แต่ตัวแปรที่มีการกำหนดด้วยคำสั่ง var แบบเดียวกันไม่จำเป็นต้องมีชนิดเดียวกันเช่นดังนี้

var test = "hi", age = 25;

ตัวอย่างนี้นอกจากการกำหนด test อีกครั้ง (อีกครั้ง) ยังกำหนด age และกำหนดค่าในตอนแรกว่า 25 ถึงแม้ test และ age จะเป็นชนิดข้อมูลที่แยกกันใน ECMAScript ก็ตาม

ต่างจาก Java ตัวแปรใน ECMAScript ไม่ไม่จำเป็นต้องมีการกำหนดในตอนแรก(เป็นตัวแปรที่มีการกำหนดขึ้นมาแล้ว จะเรียกมาอธิบายในตอนต่อไป)ดังนั้น บรรทัดเดียวนี้เช่นกันเป็นตัวแปรที่ถูกต้อง

var test;

นอกจากนี้ ตัวแปรใน ECMAScript มีอีกประการสามารถเก็บค่าของชนิดต่างๆนี่คือข้อย่อยของตัวแปรที่ไม่มีชนิด

var test = "hi";
alert(test);
test = 55;
alert(test);

โค้ดนี้จะปล่อยออกมาตัวแปรของแบบข้อความและตัวเลขได้โดยไม่มีปัญหา แต่เช่นเดียวกับที่เคยกล่าวไปแล้ว ข้อเขียนระบบที่ดีเลยคือต้องเก็บค่าที่เหมือนกันของชนิดเดียวทั้งหมดเมื่อใช้ตัวแปร

การตั้งชื่อตัวแปร

ชื่อตัวแปรต้องทำตามกฎที่เรียบง่ายๆสองข้อ

  • ตัวอักษรแรกต้องเป็นตัวอักษร ข้อเขียนใต้สาย (_), หรือสัญลักษณ์เงิน ($)
  • ตัวอักษรที่เหลืออยู่สามารถเป็นข้อเขียนใต้สาย (_), สัญลักษณ์เงิน ($) หรือตัวอักษรหรือตัวเลขใดๆ

ตัวแปรดังนี้ทั้งหมดเป็นตัวแปรที่ถูกต้อง

var test;
var $test;
var $1;
var _$te$t2;

กฎการตั้งชื่อตัวแปรที่เป็นที่รู้จัก

เพราะมีการถูกต้องในการใช้วลีประกาศตัวแปร ไม่ได้หมายความว่าควรใช้มันอย่างไร ตัวแปรยังคงต้องทำตามกฎการตั้งชื่อตัวแปรที่เป็นที่รู้จักดังต่อไปนี้:

ระบบการติดตามประเภทตัวแปร Camel

ตัวอักษรแรกในชื่อตัวแปรเป็นตัวเล็ก ตัวอักษรต่อมาทุกตัวตั้งแต่ตัวอักษรใหญ่ ตัวอย่างเช่น

var myTestValue = 0, mySecondValue = "hi";

ระบบการติดตามประเภทตัวแปร Pascal

ตัวอักษรแรกในชื่อตัวแปรเป็นตัวหนาวงคต ตัวอักษรต่อมาทุกตัวตั้งแต่ตัวอักษรใหญ่ ตัวอย่างเช่น

var MyTestValue = 0, MySecondValue = "hi";

ระบบการติดตามประเภทตัวแปรฮังการี

ใส่ตัวอักษรเล็ก (หรือตัวอักษรเล็กต่อเนื่อง) ก่อนตัวแปรที่มีการตั้งชื่อด้วยติดตาม Pascal ตามที่กำหนด ตัวอย่างเช่น อิทธิ์ แสดงว่าตัวแปรเป็นตัวเลข ส แสดงว่าตัวแปรเป็นข้อความ ตามนี้

var iMyTestValue = 0, sMySecondValue = "hi";

ตัวอย่างนี้ใช้รายละเอียดการกำหนดชื่อดังนี้ เพื่อที่จะทำให้รหัสตัวอย่างง่ายต่อการอ่าน

ประเภท รายละเอียดของการกำหนดชื่อ ตัวอย่าง
ตัวแปร (array) a aValues
ประเภทประกาศ (boolean) b bFound
ประเภทตัวเลขจำนวนเต็ม (เลข) f fValue
ฟังก์ชัน (function) fn fnMethod
ประเภทตัวเลข (เลข) i iValue
ตัวแปร (object) o oType
ตัวแปรปริมาณ (re) re rePattern
ข้อความ s sValue
ประเภท (สามารถเป็นประเภทใดก็ได้) v vValue

การประกาศตัวแปรไม่จำเป็น

เรื่องที่น่าสนใจของ ECMAScript อีกด้านหนึ่ง (และเป็นความแตกต่างหลักกับภาษาอื่นๆ ในการออกแบบโปรแกรม) คือ ไม่จำเป็นต้องประกาศตัวแปรก่อนการใช้

var sTest = "hello ";
sTest2 = sTest + "world";
alert(sTest2);

ในรหัสที่แสดงด้านบน สุดท้ายสุดแรก ตัวแปร sTest ถูกประกาศเป็นค่าของตัวแปรของประเภทสตริง "hello" ในบรรทัดต่อไป ตัวแปร sTest2 ได้ทำการผสมทั้งหมดกับสตริง "world" ตัวแปร sTest2 ไม่ได้ถูกกำหนดด้วยประมาณการ var ในที่นี้ และแทนที่ด้วยการแสดงความเห็นเหมือนกับที่มีการประกาศมันแล้ว

เมื่อโปรแกรมบรรจุความหมาย ECMAScript ได้บนชื่อตัวแปรที่ยังไม่ถูกประกาศ จะทำให้สร้างตัวแปรทั่วไปด้วยชื่อตัวแปรนั้น และตั้งค่าตัวแปรดังที่กำหนด

นี่เป็นประโยชน์ของภาษานี้ แต่ถ้าไม่สามารถตามติดตามตัวแปรได้เสมอ การกระทำนี้ก็เป็นสิ่งที่อันตราย พฤติกรรมที่ดีที่สุดคือ มีความสมบูรณ์ในการประกาศตัวแปรเหมือนกับภาษาอื่นๆ ที่ใช้ในการออกแบบโปรแกรม