เมื่อไม่นานมานี้ฉันตอบความแตกต่างระหว่างการใช้คำหลัก VAR เมื่อกำหนดตัวแปร มาตรวจสอบกันเถอะ
1. ตัวแปรที่กำหนดโดยการเพิ่ม VAR ในขอบเขตของฟังก์ชันคือตัวแปรท้องถิ่นและที่กำหนดไว้โดยไม่มี VAR กลายเป็นตัวแปรส่วนกลาง
ใช้ VAR เพื่อกำหนด:
var a = 'hello world'; ฟังก์ชั่น bb () {var a = 'Hello Bill'; console.log (a); } bb () // 'Hello Bill'Console.log (A); // 'Hello World'ไม่ใช้คำจำกัดความ VAR:
var a = 'hello world'; ฟังก์ชั่น bb () {a = 'สวัสดีบิล'; console.log (a); } bb () // 'Hello Bill'Console.log (A); // 'สวัสดีบิล'2. ภายใต้ขอบเขตส่วนกลางตัวแปรที่กำหนดด้วย VAR ไม่สามารถลบได้ตัวแปรที่กำหนดไว้โดยไม่ต้องลบ VAR ซึ่งหมายความว่าตัวแปรทั่วโลกโดยนัยไม่ใช่ตัวแปรจริงอย่างเคร่งครัด แต่คุณลักษณะของวัตถุทั่วโลกเนื่องจากแอตทริบิวต์สามารถลบได้ผ่านการลบและตัวแปรไม่สามารถเป็นได้
3. การกำหนดตัวแปรโดยใช้ VAR จะปรับปรุงการประกาศตัวแปรเช่น
ใช้ VAR เพื่อกำหนด:
ฟังก์ชั่น hh () {console.log (a); var a = 'hello world';} hh () // undefinedไม่ใช้คำจำกัดความ VAR:
ฟังก์ชั่น hh () {console.log (a); A = 'Hello World';} hh () // 'A ไม่ได้กำหนด'นี่คือการประกาศตัวแปรที่กำหนดโดยใช้ VAR ล่วงหน้า
4. ในโหมด 'ใช้อย่างเข้มงวด' ของ ES5 หากตัวแปรไม่ได้ถูกกำหนดโดยใช้ VAR จะมีการรายงานข้อผิดพลาด