1. ตัวแปร
ตัวแปร Ecmascript เป็นตัวแปรหลวม ตัวแปรหลวมที่เรียกว่าหมายความว่าชื่อตัวแปรสามารถเก็บข้อมูลทุกประเภทได้ ตัวแปรแต่ละตัวเป็นเพียงตัวยึดตำแหน่งสำหรับการประหยัดมูลค่า
คำจำกัดความ: var firstdemo;
2. ขอบเขตของตัวแปร
2.1 แนวคิดพื้นฐาน
ใช้ VAR เพื่อกำหนดตัวแปร: กำหนดตัวแปรท้องถิ่นที่กำหนดขอบเขตของตัวแปร วิธีการกำหนดตัวแปรนี้ยังเป็นการประกาศที่ชัดเจน
หากคุณไม่เข้าใจสิ่งนี้คุณสามารถดูตัวอย่างที่เรียบง่ายและหยาบต่อไปนี้:
การคัดลอกรหัสมีดังนี้:
ทดสอบ();
ฟังก์ชั่นทดสอบ () {
var firstDemo = "hello"; // กำหนดตัวแปรท้องถิ่น
การแจ้งเตือน (FirstDemo); // สวัสดี
-
ทดสอบ();
ฟังก์ชั่นทดสอบ () {
var firstDemo = "hello"; // กำหนดตัวแปรท้องถิ่น FirstDemo
-
การแจ้งเตือน (FirstDemo); // รายงานข้อผิดพลาด FirstDemo ไม่ได้กำหนดไว้
จากสองตัวอย่างข้างต้นหากตัวแปรถูกกำหนดโดยใช้ VAR ในฟังก์ชันตัวแปรจะถูกทำลายหลังจากออกจากฟังก์ชัน
ละเว้น VAR เพื่อกำหนดตัวแปร: ตราบใดที่ฟังก์ชั่นที่กำหนดตัวแปรเรียกว่าหนึ่งครั้งตัวแปรสามารถเข้าถึงได้ทั่วโลก วิธีการกำหนดตัวแปรนี้ยังเป็นการประกาศโดยนัย
การคัดลอกรหัสมีดังนี้:
<script type = "text/javascript">
ทดสอบ();
การแจ้งเตือน (FirstDemo); //สวัสดี
ฟังก์ชั่นทดสอบ () {
FirstDemo = "Hello";
-
</script>
เคล็ดลับ: ตัวแปรที่ประกาศอย่างชัดเจนได้รวบรวมไว้แล้วลงในวัตถุการโทรที่การตรวจสอบล่วงหน้า (ตัวอย่างเช่น var t = 1; var t = 1 เมื่อ precompiled; t = 1 เมื่อตีความ;) ซึ่งแตกต่างจากตัวแปรที่ประกาศโดยปริยายที่กำหนดเป็นตัวแปรทั่วโลกเท่านั้นเมื่อตีความ
การหาขอบเขตของตัวแปรสามารถช่วยให้เราคิดเกี่ยวกับวิธีการประกาศตัวแปรอย่างสมเหตุสมผลซึ่งไม่เพียง แต่ลดค่าใช้จ่ายหน่วยความจำที่ไม่จำเป็น แต่ยังหลีกเลี่ยงปัญหาที่เกิดจากคำจำกัดความซ้ำ ๆ ของตัวแปรและการเขียนทับตัวแปรที่กำหนดไว้ก่อนหน้านี้
2.2 การวิเคราะห์ขอบเขต
การคัดลอกรหัสมีดังนี้:
<script type = "text/javascript">
ฟังก์ชั่น demofunction (s) {
document.writeln (s)
-
var i = 0; // กำหนดตัวแปรส่วนกลาง
ฟังก์ชั่นทดสอบ () {
demofunction (i);
ฟังก์ชั่น innerfunction () {
var i = 1; // กำหนดตัวแปรท้องถิ่น
demofunction (i);
-
innerfunction ();
demofunction (i);
-
ทดสอบ();
</script>
ผลลัพธ์ผลลัพธ์: 0 1 0
การคัดลอกรหัสมีดังนี้:
<script type = "text/javascript">
ฟังก์ชั่น demofunction (s) {
document.writeln (s)
-
var i = 0;
ฟังก์ชั่นทดสอบ () {
demofunction (i);
ฟังก์ชั่น innerfunction () {
demofunction (i);
var i = 1;
demofunction (i);
-
innerfunction ();
demofunction (i);
-
ทดสอบ();
</script>
ผลลัพธ์ผลลัพธ์:
a, 0 0 1 0
b, 0 ไม่ได้กำหนด 1 0
C, 0 ข้อผิดพลาดฉันไม่ได้กำหนดไว้
คุณสามารถเดาได้ว่าผลลัพธ์ใดเป็นผลลัพธ์และเหตุผลจะอธิบายอย่างละเอียดในข้อความ
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ พูดง่ายๆคือขอบเขตของตัวแปรในภาษาการเขียนโปรแกรมใด ๆ เป็นรายละเอียดที่สำคัญมาก ขอบเขตของตัวแปรใน JS นั้นค่อนข้างอิสระกว่าภาษาเช่น Java และ C. คุณสมบัติที่ยิ่งใหญ่คือตัวแปร JS ไม่มีขอบเขตระดับบล็อกและตัวแปรในฟังก์ชั่นนั้นถูกต้องในฟังก์ชั่นทั้งหมด