ตัวแปรและการประกาศตัวแปรเป็นแนวคิดพื้นฐานที่สุดของภาษา และผู้เริ่มต้นจะเชี่ยวชาญได้อย่างรวดเร็ว เช่นเดียวกับการประกาศตัวแปรใน JavaScript มันง่ายมาก var (คำหลัก) + ชื่อตัวแปร (ตัวระบุ)
วิธีที่ 1
การทดสอบ var;
var test = 5; ควรสังเกตว่าประโยคนี้ไม่สามารถรวมไว้ในฟังก์ชันได้ ไม่เช่นนั้นจะเป็นตัวแปรท้องถิ่น นี่เป็นวิธีแรกในการประกาศตัวแปรโกลบอล
วิธีที่ 2
ทดสอบ = 5;
โดยไม่ต้องใช้ var ให้กำหนดค่าโดยตรงให้กับการทดสอบตัวระบุ ซึ่งจะประกาศการทดสอบตัวแปรโกลบอลโดยปริยาย แม้ว่าคำสั่งจะอยู่ภายในฟังก์ชัน การทดสอบจะกลายเป็นตัวแปรร่วมเมื่อฟังก์ชันถูกดำเนินการ
วิธีที่ 3
หน้าต่าง.ทดสอบ;
window.test = 5; วิธีการนี้มักใช้เพื่อแสดงฟังก์ชันบางอย่างให้โลกได้รับรู้หลังจากดำเนินการฟังก์ชันที่ไม่ระบุชื่อแล้ว เช่นประโยคสุดท้ายใน JQuery1.5
window.jQuery = หน้าต่าง.$ = jQuery;
หากคุณเพียงแค่ใช้การทดสอบตัวแปร จะไม่มีความแตกต่างระหว่างทั้งสามวิธี ตัวอย่างเช่น: alert(test) จะแสดง 5 อย่างไรก็ตาม ในบางกรณีทั้งสามวิธีมีความแตกต่างกัน ประกาศตัวแปรสามตัว a1, a2, a3 ด้วยสามวิธีข้างต้นตามลำดับ
ก1 = 11;
วาร์ a2 = 22;
หน้าต่าง.a3 = 33;
1.สำหรับในหน้าต่าง
สำหรับ (ในหน้าต่าง) {
ถ้า(a=='a1'||a=='a2'||a=='a3'){
การแจ้งเตือน (ก)
-
-
IE6/7/8/9: มีเพียง a3 เท่านั้นที่ปรากฏขึ้น ซึ่งบ่งชี้ว่าตัวแปรโกลบอลที่ประกาศผ่านวิธีแรกและวิธีที่สองไม่สามารถรับผ่าน for ในหน้าต่างได้
Firefox/Chrome/Safari/Opera: a1, a2 และ a3 ทั้งหมดปรากฏขึ้น แสดงว่าตัวแปรโกลบอลที่ประกาศด้วยสามวิธีสามารถรับได้ผ่านทาง for ในหน้าต่าง
2.ลบ
พยายาม {
การแจ้งเตือน (ลบ a1);
} catch(e){alert('ไม่สามารถลบ a1')}
พยายาม{
การแจ้งเตือน (ลบ a2);
} catch(e){alert('ไม่สามารถลบ a2')}
พยายาม{
การแจ้งเตือน (ลบ a3);
} catch(e){alert('ไม่สามารถลบ a3')}
ผลลัพธ์มีดังนี้
อย่างที่คุณเห็น
1. ลบ a2 เป็นเท็จในทุกเบราว์เซอร์ นั่นคือตัวแปรที่ประกาศผ่าน var ไม่สามารถลบได้ และเบราว์เซอร์ทั้งหมดจะทำงานเหมือนกัน สิ่งนี้ถูกกล่าวถึงในหนังสือแรดด้วย
2. ตัวแปรโกลบอลที่ประกาศผ่าน window.a3 ไม่สามารถลบได้ใน IE6/7/8 แต่สามารถลบได้ใน IE9/Firefox/Chrome/Safari/Opera
แม้ว่าจะมีความแตกต่างในสองประเด็นข้างต้น แต่เมื่อใช้ในการดำเนินการ ทั้งสองจะคืนค่าเป็นจริง
alert('a1' ในหน้าต่าง);//true
alert('a2' ในหน้าต่าง);//true
alert('a3' ในหน้าต่าง);//true
เมื่อใช้ with เพื่อเปิดการปิดหน้าต่างวัตถุ เบราว์เซอร์ทั้งหมดจะทำงานเหมือนกันดังนี้
ด้วย (หน้าต่าง) {
ถ้า(a1){
การแจ้งเตือน (a1); //11
-
ถ้า(a2){
การแจ้งเตือน (a2); //22
-
ถ้า(a3){
การแจ้งเตือน (a3); //33
-
-