เกี่ยวกับ JavaScript แนวคิดแรกที่สำคัญกว่าคือตัวแปรและกลไกการทำงานของตัวแปรเป็นคุณสมบัติพื้นฐานของ JavaScript ในความเป็นจริงตัวแปรเป็นประเภทของตัวระบุ บทความนี้จะแนะนำตัวแปรและตัวระบุในรายละเอียด
คำนิยาม
ตัวระบุเป็นชื่อที่ใช้ในการตั้งชื่อตัวแปรฟังก์ชันคุณสมบัติและพารามิเตอร์หรือใช้เป็นเครื่องหมายสำหรับตำแหน่งกระโดดในคำสั่งลูปบางอย่าง
// ตัวแปร var identifier = 123; // คุณสมบัติ (วัตถุใหม่). identifier = 'test'; // ฟังก์ชั่นและพารามิเตอร์ฟังก์ชัน identifierName (identifier1) {}; // ตัวระบุแท็กกระโดด: สำหรับ (var i = 0; i <5; i ++) {ถ้า (i == 3) -ในชีวิตประจำวันบางสิ่งได้รับการแก้ไขและบางสิ่งเปลี่ยนไป ตัวอย่างเช่นชื่อและวันเกิดของบุคคลได้รับการแก้ไข แต่อารมณ์และอายุของเขาจะเปลี่ยนไปตามกาลเวลา ผู้คนเรียกสิ่งต่าง ๆ ที่เปลี่ยนแปลงตัวแปร
เมื่อโปรแกรมจำเป็นต้องประหยัดค่าสำหรับการใช้งานในอนาคตจะถูกกำหนดให้กับตัวแปร ตัวแปรเป็นตัวยึดสำหรับการออมค่า คุณสามารถได้รับการอ้างอิงถึงค่าผ่านชื่อตัวแปร
กฎการตั้งชื่อ
ในบทความ "โครงสร้างพจนานุกรม" เราแนะนำว่าจาวาสคริปต์เป็นภาษาที่มีความอ่อนไหว เช่นเดียวกับภาษาการเขียนโปรแกรมอื่น ๆ JavaScript ยังคงมีตัวระบุบางตัวสำหรับตัวเองและไม่สามารถใช้คำที่สงวนไว้เป็นตัวระบุธรรมดาได้
[หมายเหตุ] คำที่สงวนไว้รวมถึงคำหลักคำที่สงวนไว้ในอนาคตตัวอักษรว่างเปล่าและตัวอักษรบูลีน
AREDEREDWORD
ชื่อตัวระบุ JavaScript ได้รับอนุญาตให้มีตัวอักษรตัวเลขสัญญาณดอลลาร์และขีดเส้นใต้ (แต่อักขระตัวแรกไม่ได้รับอนุญาตให้เป็นตัวเลข)
// การสาธิตข้อผิดพลาด 6NUM // ไม่สามารถใช้จำนวน% รวมได้ที่จุดเริ่มต้น // สัญลักษณ์พิเศษยกเว้น (_ $) ไม่สามารถใช้ได้ในตอนเริ่มต้นเช่น (% + / /ฯลฯ ) ผลรวม + NUM // สัญลักษณ์พิเศษยกเว้น (_ $) ไม่สามารถใช้ที่จุดเริ่มต้นเช่น (% + / /ฯลฯ )
JavaScript อนุญาตให้ตัวอักษรและตัวเลข (รวมถึงภาษาจีน) ในชุดอักขระ Unicode ทั้งหมดในตัวระบุ ดังนั้นโปรแกรมเมอร์จึงสามารถใช้ภาษาที่ไม่ใช่ภาษาอังกฤษหรือสัญลักษณ์ทางคณิตศาสตร์เพื่อเขียนตัวระบุ
VAR TEST TEXT = 'TEST';
[หมายเหตุ] เพื่อการพกพาและความสะดวกในการเขียนเรามักจะไม่ใช้อักขระ ASCII หรือ Unicode ที่ขยายออกไป
โดยปกติรูปแบบอูฐเป็นรูปแบบที่ต้องการสำหรับการตั้งชื่อตัวระบุตัวอักษรตัวแรกเป็นตัวพิมพ์เล็กและตัวอักษรตัวแรกของแต่ละคำที่เหลือคือตัวพิมพ์ใหญ่
var myMoodToday = 'Happy';
สำหรับประเภทข้อมูลที่แตกต่างกัน JavaScript มีกฎการตั้งชื่อตัวระบุทั่วไป
พิมพ์คำนำหน้าตัวอย่างอาร์เรย์ (อาร์เรย์) บูลีน AITEMS (บูลีน) B BISCOMPLETE หมายเลขจุดลอยตัว (ลอย) ฟังก์ชั่น FPRICE (ฟังก์ชั่น) FN FNHANDLER จำนวนเต็ม (จำนวนเต็ม) IIITEMCOUNT OBJECT
การประกาศตัวแปร
คำแถลง
ใน JavaScript คุณควรประกาศ (ประกาศ) ก่อนใช้ตัวแปร ตัวแปรถูกประกาศโดยใช้คำหลัก var (ตัวย่อของตัวแปร)
var i; var sum;
นอกจากนี้คุณยังสามารถประกาศตัวแปรหลายตัวผ่านคำหลัก VAR
var i, sum;
งานที่มอบหมาย
การทำงานของการจัดเก็บค่าลงในตัวแปรเรียกว่าการกำหนด หลังจากกำหนดตัวแปรแล้วเราบอกว่าตัวแปรมีค่านี้
กระบวนการกำหนดตัวแปรเป็นครั้งแรกเรียกว่าการเริ่มต้น
เราสามารถเขียนการกำหนดตัวแปรเริ่มต้นพร้อมกับการประกาศตัวแปร
var message = 'hello'; var i = 0, j = 0, k = 0;
หากตัวแปรไม่ได้ระบุไว้ในคำสั่งการประกาศ VAR แม้ว่าตัวแปรจะถูกประกาศค่าเริ่มต้นของมันจะไม่ได้กำหนดก่อนที่จะบันทึกค่าลงไป
คำสั่ง VAR ยังสามารถใช้ในลูปและลูปสำหรับสำหรับซึ่งสามารถประกาศตัวแปรลูปที่ใช้ในการวนซ้ำได้อย่างรัดกุมมากขึ้น
สำหรับ (var i = 0; i <10; i ++) console.log (i);
ตัวแปรสามารถกำหนดค่าได้เมื่อประกาศ แต่ไม่สามารถมีการดำเนินการอื่น ๆ เช่น +=, -= ฯลฯ
var a = 2; // ถูกต้อง var a+= 2; // ผิด var a = 2 ++; // ผิด, ++ สามารถใช้สำหรับตัวแปรเท่านั้นไม่ใช่ค่าคงที่
คำสั่งซ้ำ
มันถูกกฎหมายและไม่เป็นอันตรายที่จะประกาศตัวแปรซ้ำ ๆ โดยใช้คำสั่ง VAR หากการประกาศซ้ำกับการดำเนินการที่ได้รับมอบหมายจะเทียบเท่ากับการกำหนดค่าใหม่
คำสั่งที่หายไป
หากคุณพยายามอ่านค่าของตัวแปรที่ไม่ได้ประกาศ JavaScript จะรายงานข้อผิดพลาด
JavaScript อนุญาตให้มีการประกาศที่ถูกละเว้นนั่นคือการกำหนดค่าโดยตรงให้กับตัวแปรโดยไม่ต้องประกาศก่อนหน้านี้และการดำเนินการที่ได้รับมอบหมายจะประกาศตัวแปรโดยอัตโนมัติ
อย่างไรก็ตามใน ECMAScript5 โหมดเข้มงวดการกำหนดค่าให้กับตัวแปรที่ไม่ได้ประกาศจะส่งผลให้เกิดข้อผิดพลาด
<script> 'ใช้อย่างเข้มงวด'; a = 5; console.log (a); </script>
ลักษณะตัวแปร
ตัวแปร JavaScript เป็นประเภทที่อ่อนแอ (เรียกอีกอย่างว่า Loose Types) และประเภทที่เรียกว่า Loose ที่ใช้เพื่อบันทึกข้อมูลทุกประเภท
การจัดประเภทภาษาการเขียนโปรแกรม: ภาษาที่พิมพ์แบบไดนามิกและภาษาที่พิมพ์แบบคงที่ ภาษาที่พิมพ์แบบไดนามิกหมายถึงภาษาที่ตรวจสอบประเภทข้อมูลเฉพาะระหว่างการดำเนินการ กล่าวคือเมื่อการเขียนโปรแกรมในภาษาที่พิมพ์แบบไดนามิกคุณไม่จำเป็นต้องระบุชนิดข้อมูลสำหรับตัวแปรใด ๆ ภาษาจะบันทึกประเภทข้อมูลภายในเมื่อครั้งแรกที่กำหนดค่าให้กับตัวแปร JavaScript เป็นตัวแทนของภาษาที่พิมพ์แบบไดนามิก
ใน JavaScript คุณสามารถแก้ไขประเภทของค่าในขณะที่แก้ไขค่า
var message = 'hi'; message = 100; // ถูกต้อง แต่ไม่แนะนำ
มีสองจุดที่จะสรุปลักษณะของตัวแปรชนิดหลวม: หนึ่งคือคุณไม่จำเป็นต้องระบุชนิดข้อมูลสำหรับตัวแปรเมื่อประกาศ; อีกอย่างคือคุณสามารถแก้ไขประเภทข้อมูลเมื่อกำหนดค่า
ขอบเขตตัวแปร
ขอบเขตของตัวแปรหรือที่เรียกว่าบริบทการดำเนินการเป็นพื้นที่ที่กำหนดตัวแปรนี้ในซอร์สโค้ดโปรแกรม
ขอบเขตแบ่งออกเป็นขอบเขตและขอบเขตการทำงานทั่วโลก (เรียกอีกอย่างว่าขอบเขตท้องถิ่น)
ขอบเขตทั่วโลกเป็นสภาพแวดล้อมการดำเนินการต่อพ่วงมากที่สุด ในเว็บเบราว์เซอร์สภาพแวดล้อมการดำเนินการทั่วโลกถือเป็นวัตถุหน้าต่าง ตัวแปรและฟังก์ชั่นทั่วโลกทั้งหมดถูกสร้างขึ้นเป็นคุณสมบัติและวิธีการของวัตถุหน้าต่าง ตัวแปรทั่วโลกมีขอบเขตทั่วโลกและถูกกำหนดไว้ที่ใดก็ได้ในรหัส JavaScript ขอบเขตทั่วโลกจะไม่ถูกทำลายจนกว่าแอปพลิเคชันจะออกเช่นปิดเว็บเพจหรือเบราว์เซอร์
ตัวแปรที่ประกาศภายในฟังก์ชั่นจะถูกกำหนดไว้ในตัวฟังก์ชั่นเท่านั้น พวกเขาเป็นตัวแปรท้องถิ่นและขอบเขตของพวกเขาคือท้องถิ่น พารามิเตอร์ฟังก์ชั่นเป็นตัวแปรท้องถิ่นและจะถูกกำหนดไว้ในตัวฟังก์ชั่นเท่านั้น หลังจากที่รหัสทั้งหมดในขอบเขตฟังก์ชั่นถูกดำเนินการขอบเขตจะถูกทำลายและตัวแปรทั้งหมดและคำจำกัดความของฟังก์ชั่นที่เก็บไว้ในนั้นก็ถูกทำลายเช่นกัน
ฟังก์ชั่นทดสอบ () {var message = 'hi';} test (); แจ้งเตือน (ข้อความ); // ข้อผิดพลาดหากตัวดำเนินการ VAR ถูกละเว้นตัวแปรส่วนกลางจะถูกสร้างขึ้น
ฟังก์ชั่นทดสอบ () {message = 'hi';} test (); แจ้งเตือน (ข้อความ); // 'hi'แม้ว่าการละเว้นตัวดำเนินการ VAR สามารถกำหนดตัวแปรทั่วโลก แต่ก็ไม่แนะนำ ตัวแปรทั่วโลกที่กำหนดไว้ในขอบเขตท้องถิ่นนั้นยากที่จะรักษาและหากผู้ประกอบการ VAR ถูกละเว้นโดยเจตนาก็จะทำให้เกิดความสับสนที่ไม่จำเป็นเนื่องจากตัวแปรที่เกี่ยวข้องจะไม่ถูกกำหนดทันที การกำหนดค่าให้กับตัวแปรที่ไม่ได้ประกาศในโหมดที่เข้มงวดจะทำให้เกิดข้อผิดพลาด ReferenceRror
ในร่างกายฟังก์ชั่นลำดับความสำคัญของตัวแปรท้องถิ่นสูงกว่าตัวแปรทั่วโลกที่มีชื่อเดียวกัน หากตัวแปรท้องถิ่นที่ประกาศในฟังก์ชั่นหรือตัวแปรและตัวแปรส่วนกลางในพารามิเตอร์ฟังก์ชันจะทำซ้ำตัวแปรส่วนกลางจะถูกครอบคลุมโดยตัวแปรท้องถิ่น
var scope = 'global'; ฟังก์ชั่น checkscope () {var scope = 'local'; Return Scope;}; checkscope (); // 'local'โปรโมชั่นคำสั่ง (Hoisting)
ขอบเขตระดับบล็อก
ขอบเขตระดับบล็อกหมายความว่ารหัสแต่ละชิ้นในวงเล็บปีกกามีขอบเขตของตัวเองในขณะที่ JavaScript ไม่มีขอบเขตระดับบล็อก JavaScript มีขอบเขตฟังก์ชันเท่านั้น: ตัวแปรถูกกำหนดไว้ในร่างกายฟังก์ชั่นที่ประกาศและฟังก์ชั่นใด ๆ ที่ซ้อนกันในร่างกายฟังก์ชั่นนี้
ซึ่งหมายความว่าตัวแปรมีให้ก่อนที่จะมีการประกาศ คุณสมบัติของ JavaScript นี้เรียกว่า Hoisting อย่างไม่เป็นทางการ ตัวแปรทั้งหมดที่ประกาศในฟังก์ชั่น JavaScript (ไม่มีการมอบหมายที่เกี่ยวข้อง) จะถูกขั้นสูงไปยังด้านบนของร่างกายฟังก์ชั่น
[หมายเหตุ] อันที่จริงนอกเหนือจากการส่งเสริมการขายตัวแปรแล้วฟังก์ชั่นยังได้รับการส่งเสริมและจะมีการแนะนำรายละเอียดในส่วนฟังก์ชัน
var scope = 'global'; ฟังก์ชั่น f () {console.log (ขอบเขต); // ขอบเขต var ที่ไม่ได้กำหนด = 'local'; console.log (ขอบเขต); // 'local'} // หลังจากการประกาศตัวแปรได้รับการส่งเสริมมันจะเทียบเท่ากับรหัส var scope = 'global'; ฟังก์ชั่น f () {ขอบเขต var; console.log (ขอบเขต); // ขอบเขตที่ไม่ได้กำหนด = 'local'; console.log (ขอบเขต); // 'local'}ไม่มีขอบเขตระดับบล็อกใน JavaScript ดังนั้นโปรแกรมเมอร์บางคนจงใจวางประกาศตัวแปรที่ด้านบนของร่างกายฟังก์ชั่น ซอร์สโค้ดนี้สะท้อนขอบเขตตัวแปรจริงอย่างชัดเจน
ตัวแปรแอตทริบิวต์
เมื่อประกาศตัวแปร Global JavaScript จริง ๆ แล้วจะกำหนดคุณสมบัติของหน้าต่างวัตถุทั่วโลก
เมื่อมีการประกาศตัวแปรโดยใช้ VAR ตัวแปรที่สร้างขึ้นจะไม่สามารถกำหนดค่าได้ซึ่งหมายความว่าตัวแปรไม่สามารถลบได้ผ่านตัวดำเนินการลบ
var truevar = 1; console.log (TrueVar, window.truevar); // 1 1delete TrueVar; // falseconsole.log (TrueVar, window.truevar); // 1 1 1 1 1 1 1 1 1 1 1 1 1 1
หากคุณไม่ได้ใช้โหมดที่เข้มงวดและกำหนดค่าให้กับตัวแปรที่ไม่ได้ประกาศ JavaScript จะสร้างตัวแปรส่วนกลางโดยอัตโนมัติ ตัวแปรที่สร้างขึ้นด้วยวิธีนี้เป็นคุณสมบัติที่กำหนดค่าได้ตามปกติของวัตถุทั่วโลกและสามารถลบได้
window.fakevar1 = 10; console.log (fakevar1, window.fakevar1); // 10 10 this.fakevar2 = 20; console.log (fakevar2, window.fakevar2); // 20 20fakevar = 30; console.log (fakevar, window.fakevar); // 30 30delete Window.fakevar1; // truedelete this.fakevar2; // truedelete fakevar; // trueconsole.log (fakevar1, window.fakevar1); // รายงานข้อผิดพลาด console.log (fakevar2, window.fakevar2); // รายงานข้อผิดพลาด console.log (fakevar, window.fakevar); // รายงานข้อผิดพลาด
ตัวแปร Global JavaScript เป็นคุณสมบัติของวัตถุทั่วโลกซึ่งเป็นข้อบังคับใน eCmascript ตัวแปรท้องถิ่นถือเป็นคุณลักษณะของวัตถุที่เกี่ยวข้องกับการเรียกใช้ฟังก์ชัน Ecmascript3 เรียกว่าวัตถุการโทรและ Ecmascript5 เรียกว่าบันทึกสภาพแวดล้อมที่เปิดเผย JavaScript อนุญาตให้ใช้คำหลักนี้เพื่ออ้างถึงวัตถุส่วนกลาง แต่ไม่มีวิธีที่จะอ้างถึงวัตถุที่เก็บไว้ในตัวแปรท้องถิ่น คุณสมบัติที่ไม่ซ้ำกันของการจัดเก็บวัตถุตัวแปรในพื้นที่คือการใช้งานภายในที่เรามองไม่เห็น
ไวยากรณ์พื้นฐานด้านบนของ JavaScript - ความเข้าใจที่ครอบคลุมของตัวแปรและตัวระบุคือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น