เขียนด้านหน้า
ในบทนี้เราจะพูดคุยเกี่ยวกับข้อความสำคัญหลายประการเช่นสวิตช์, for, in-in, ฯลฯ ใน ecmascript เพื่อให้ความเข้าใจและความเข้าใจของเราลึกซึ้งยิ่งขึ้น เริ่มต้นด้วยสิ่งที่พบบ่อยที่สุด
ในขณะและสำหรับ
ในขณะที่และสำหรับเป็นคำสั่งทั่วไปไม่ว่าจะเป็นใน JavaScript, C หรือภาษาการเขียนโปรแกรมอื่น ๆ ยิ่งไปกว่านั้นในการเขียนโปรแกรมเราใช้สำหรับทั่วไปซึ่งมีความยืดหยุ่นและใช้งานง่ายกว่าดังนั้นบางคนอาจมีความเข้าใจผิดเช่นนี้:
เพราะมีพลังมากกว่าในขณะที่สามารถทำบางสิ่งในขณะที่ไม่ได้
ในความเป็นจริงถ้าเราคิดถึงแอปพลิเคชันไวยากรณ์ในขณะที่และสำหรับคำสั่งเราจะพบ:
สำหรับลูปที่ไม่สามารถทำได้ในขณะที่ลูปไม่สามารถทำได้เช่นกัน
นี่เป็นเพราะ For Loop เพียงรวบรวมรหัสที่เกี่ยวข้องกับการวนซ้ำในขณะที่ ในความเป็นจริงบางครั้งมันง่ายกว่าที่จะใช้ในขณะที่วนรอบกว่าใช้สำหรับลูป นี่เป็นเพราะแต่ละคนปฏิบัติหน้าที่ของตัวเองและมีข้อดีและข้อเสีย
อีกจุดหนึ่งเกี่ยวกับลูปก่อนอื่นมาดูรหัสชิ้นหนึ่ง:
สำหรับ (i = 0; i <5; i ++) {console.log (i);} console.log (i);พิมพ์ฉันอยู่นอกลูปพิมพ์คือ 5
อย่างที่คุณเห็นตัวแปรที่กำหนดไว้ในลูปสามารถเข้าถึงได้จากภายนอก ในบางภาษาเช่น C การจัดฟันกำหนดขอบเขตระดับบล็อก แต่ไม่มีแนวคิดของขอบเขตระดับบล็อกใน ECMASCript ดังนั้นตัวแปรที่กำหนดไว้ในลูปสามารถเข้าถึงได้จากภายนอก
คำสั่งเปลี่ยน
ในภาษาการเขียนโปรแกรมอื่น ๆ เช่น C, คำสั่งสวิตช์สามารถใช้ตัวเลขได้เท่านั้นในขณะที่อยู่ใน ECMASCRIPT คำสั่งสวิตช์สามารถใช้ประเภทข้อมูลใด ๆ เช่นสตริงและวัตถุ
นี่คือจุดที่ต้องอธิบาย: ผู้ประกอบการที่สอดคล้องกันที่ใช้เมื่อเปรียบเทียบคำสั่งสวิตช์นั่นคือ === ดังนั้น '10' และ 10 ไม่เท่ากันเพราะการแปลงประเภทไม่ได้เกิดขึ้นเมื่อเปรียบเทียบการเปรียบเทียบที่สอดคล้องกัน
คำสั่งสำหรับ
คำแถลงสำหรับอิน-อินเป็นคำสั่งวนซ้ำที่ถูกต้องซึ่งสามารถใช้ซ้ำผ่านคุณสมบัติของวัตถุและแน่นอนว่ามันยังสามารถวนซ้ำคุณสมบัติของอาร์เรย์ได้ ต่อไปนี้เป็นตัวอย่าง:
สำหรับวัตถุข้าม
•หน้าต่าง
ก่อนทำซ้ำผ่านหน้าต่างวัตถุพิเศษ:
สำหรับ (var i ในหน้าต่าง) {console.log (i);}รายการแอตทริบิวต์ที่ยาวมากจะถูกพิมพ์และคุณสามารถตรวจสอบได้ด้วยตัวเอง ฉันจะไม่แสดงรายการพวกเขาทีละคนที่นี่
•วัตถุที่กำหนดเอง
วนซ้ำผ่านวัตถุที่กำหนดเอง
var o = {prop1: 'value1', prop2: 'value2', prop3: 'value3'}; สำหรับ (var i ใน o) {console.log (i);}พิมพ์ prop1 prop2 prop3
•อาร์เรย์
วนซ้ำผ่านอาร์เรย์
var array1 = [1,2,3,4]; สำหรับ (var i ในอาร์เรย์) {console.log (i);}พิมพ์ 1 2 3 4
ด้วยคำสั่ง
คำสั่งด้วยสามารถใช้เพื่อ จำกัด ขอบเขตนั่นคือขอบเขตของรหัสสามารถตั้งค่าเป็นวัตถุเฉพาะ ดังนี้:
var hostname = location.hostname; var url = location.href;
สองประโยคนี้ได้รับชื่อโฮสต์และ URL ตามลำดับ เนื่องจากพวกเขาแบ่งปันตำแหน่ง (คุณสมบัติภายใต้วัตถุเดียวกัน) เราจึงสามารถ จำกัด ขอบเขตไปยังตำแหน่งได้นั่นคือใช้คำสั่งด้วยเพื่อเชื่อมโยงวัตถุตำแหน่ง ดังนี้:
ด้วย (ตำแหน่ง) {var hostname = hostname; var url = href;}ควรสังเกตว่าการใช้คำสั่งในโหมดที่เข้มงวดจะทำให้เกิดข้อผิดพลาดทางไวยากรณ์ ในเวลาเดียวกันการใช้คำสั่งในปริมาณมากจะนำไปสู่การลดลงของประสิทธิภาพและจะนำปัญหาบางอย่างมาแก้ไขการดีบัก ดังนั้นเมื่อพัฒนาแอปพลิเคชันโดยเฉพาะอย่างยิ่งเมื่อพัฒนาแอปพลิเคชันขนาดใหญ่จึงไม่แนะนำให้ใช้กับคำสั่ง
คำสั่งติดฉลาก
คำสั่งฉลากใช้ในการติดฉลากรหัสเพื่อให้สามารถใช้งานได้ในภายหลัง โดยทั่วไปแล้วข้อความที่ติดฉลากควรใช้ร่วมกับคำสั่งลูปเช่นสำหรับลูป
ไวยากรณ์คือ:
ฉลาก: คำสั่ง
ต่อไปนี้เป็นรหัสโดยละเอียดเพื่อดูว่ามีการใช้ป้ายกำกับอย่างไร
1. ก่อนอื่นให้รหัสพื้นฐาน:
var num = 0; สำหรับ (var i = 0; i <10; i ++) {สำหรับ (var j = 0; j <10; j ++) {ถ้า (i == 5 && j == 5) {break; } num ++; }} console.log (num);คำอธิบาย: Break Jumps ออกมาจากการวนรอบด้านใน J และ Loops 5 ที่เหลือจะไม่ถูกดำเนินการอีกต่อไปดังนั้นผลการพิมพ์คือ 95
2. ต่อไปเราเปลี่ยนการหยุดพักเพื่อดำเนินการต่อ:
var num = 0; สำหรับ (var i = 0; i <10; i ++) {สำหรับ (var j = 0; j <10; j ++) {ถ้า (i == 5 && j == 5) {break; } num ++; }} console.log (num);หมายเหตุ: กระโดดออกจากวงนี้ต่อไปซึ่งหมายความว่ากระโดดออกมาจากวงนี้ซึ่งภายในสำหรับการวนรอบจะกระโดดออกมาดังนั้นผลการพิมพ์คือ 99
3. ถัดไปเราเพิ่มฉลากชื่อ Outer และดูผลการพิมพ์:
var num = 0; ด้านนอก: สำหรับ (var i = 0; i <10; i ++) {สำหรับ (var j = 0; j <10; j ++) {ถ้า (i == 5 && j == 5) {break outer; } num ++; }} console.log (num);หมายเหตุ: หลังจากเพิ่มแท็กให้ใช้ Break เพื่อข้ามไปที่แท็กด้านนอกซึ่งหมายความว่าโปรแกรมจะกระโดดออกจากวงรอบนอกนั่นคือโปรแกรมจะหยุดการดำเนินการเมื่อโปรแกรมดำเนินการ i = 5 และ j = 5 ดังนั้นผลการพิมพ์คือ 55
4. เปลี่ยนไปดู:
var num = 0; outer: สำหรับ (var i = 0; i <10; i ++) {สำหรับ (var j = 0; j <10; j ++) {ถ้า (i == 5 && j == 5) {ดำเนินการด้านนอก; } num ++; }} console.log (num);หมายเหตุ: เวลานี้ฉันใช้ดำเนินการต่อดังนั้นเมื่อโปรแกรมดำเนินการกับ i = 5 และ j = 5 มันจะไม่กระโดดออกจากวงรอบนอก แต่จะกระโดดออกจากวงภายในเท่านั้นนั่นคือส่วนที่เหลืออีก 5 ครั้งจะไม่ถูกดำเนินการดังนั้นผลการพิมพ์คือ 95
การรวมสิ่งเหล่านี้เข้าด้วยกันดูเหมือนจะสับสนเล็กน้อยและมันจะดีกว่าที่จะเข้าใจมากขึ้น
สรุป
เราเรียนรู้บางสิ่งบางอย่างที่ไม่ใช่เพื่อการเรียนรู้ แต่เพื่อจุดประสงค์ในการใช้งาน เพื่อให้มันตรงไปตรงมาเราเรียนรู้เพื่อประโยชน์ในการทำงาน ดังนั้นเพียงแค่ทำความเข้าใจกับข้างต้นไม่ใช่สิ่งที่สำคัญที่สุดไม่ใช่เพื่อการจดจำ แต่เพื่อประโยชน์ในการใช้งาน ความสามารถในการใช้งานได้อย่างเชี่ยวชาญในทางปฏิบัติคือสิ่งที่เราหวัง ในเวลาเดียวกันการจดบันทึกเป็นนิสัยที่ดี ความทรงจำที่ดีไม่ดีเท่าปากกาที่ไม่ดี ถ้าคุณกำลังทำอยู่ฉันหวังว่าคุณจะติดมันได้
ประโยคสำคัญข้างต้นสำหรับความเข้าใจในเชิงลึกของ ECMASCript เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น