ฉันได้สัมผัสกับภาษาจาวาสคริปต์มาเป็นเวลานาน แต่ฉันไม่เคยเข้าใจภาษาดังกล่าวอย่างเป็นระบบ ฉันเพิ่งจบการศึกษาและไม่มีความตั้งใจที่จะทำงานด้วยเหตุผลบางอย่างที่จะเข้าใจภาษานี้อย่างเป็นระบบและฉันก็ต้องการพัฒนานิสัยในการเขียนบล็อกผ่านภาษานี้เพราะฉันคิดว่านี่เป็นสิ่งศักดิ์สิทธิ์และรุ่งโรจน์สำหรับโปรแกรมเมอร์
1.1 พื้นหลัง
ฉันเชื่อว่าสิ่งที่ผู้เริ่มต้นหลายคนลืมหรือสับสนคือชื่ออย่างเป็นทางการของ JavaScript: Ecmascript เมื่อวันที่ 17 มิถุนายน 2558 ECMASCRIPT 6 ได้รับการปล่อยตัวคือ ECMASCRIPT 2015
1.2 ไวยากรณ์
การละเว้นไวยากรณ์ทั่วไป
ไฮไลท์:
1. ค่าดั้งเดิมและวัตถุ: ค่าดั้งเดิมรวมถึงค่าบูลีนตัวเลขสตริง null และ undefined ค่าอื่น ๆ คือวัตถุ ความแตกต่างที่สำคัญระหว่างทั้งสองคือวิธีการเปรียบเทียบ: แต่ละวัตถุมีตัวระบุที่ไม่ซ้ำกันและมีค่าเท่ากับตัวเองเท่านั้น
var obj1 = {}; var obj2 = {}; แจ้งเตือน (obj1 === obj2); // falsealert (obj1 === obj1); // Truevar prim1 = 123; var prim2 = 123;2. ใช้ typeof และอินสแตนซ์ของการจำแนกค่า
ประเภทของ
| ตัวดำเนินการ | ผลลัพธ์ |
| ไม่ได้กำหนด | 'ไม่ได้กำหนด' |
| โมฆะ | วัตถุ |
| ค่าบูลีน | บูลีน |
| ตัวเลข | ตัวเลข |
| สาย | สาย |
| การทำงาน | การทำงาน |
| ค่าปกติอื่น ๆ ทั้งหมด | วัตถุ |
| ค่าที่สร้างโดยเครื่องยนต์ | เครื่องยนต์ JS สามารถได้รับอนุญาตให้สร้างค่าบางอย่างและผลลัพธ์ของ typeof สามารถส่งคืนสตริงใดก็ได้ |
3. ค่าบูลีน:
ค่าเท็จ: undefined, null, false, -0, nan, ''
ตัวดำเนินการแบบไบนารีตรรกะ: ตัวดำเนินการไบนารีตรรกะในจาวาสคริปต์นั้นลัดวงจร หากการดำเนินการครั้งแรกเพียงพอที่จะกำหนดผลลัพธ์การดำเนินการที่สองจะไม่ได้รับการประเมิน &&): หากการดำเนินการครั้งแรกเป็นค่าเท็จให้ส่งคืน หรือ (||): หากการดำเนินการครั้งแรกเป็นค่าที่แท้จริงให้ส่งคืน
4.iife:
แนะนำขอบเขตใหม่ ฟังก์ชั่น: ลบการแชร์โดยไม่ได้ตั้งใจที่เกิดจากการปิด (ฟังก์ชั่นและตัวแปรในขอบเขตโดยรอบที่เชื่อมต่อ)
ตัวอย่าง:
var result = []; สำหรับ (var i = 0; i <5; i ++) {result.push (ฟังก์ชัน () {return i;}); // (1)} console.log (ผลลัพธ์ [1] ()); // 5 (ไม่ใช่ 1) console.log (ผลลัพธ์ [3] ()); // 5 (ไม่ใช่ 3)ค่าส่งคืนของบรรทัดนี้ที่ทำเครื่องหมายไว้ (1) เป็นค่าปัจจุบันของ I เสมอไม่ใช่ค่า ณ เวลาที่ฟังก์ชันถูกสร้างขึ้น หลังจากลูปสิ้นสุดลงค่าของฉันคือ 5 ดังนั้นฟังก์ชั่นทั้งหมดในอาร์เรย์ส่งคืนค่านี้ หากคุณต้องการให้ฟังก์ชั่นติดแท็ก (1) รับสแน็ปช็อตของค่า I ปัจจุบันคุณสามารถใช้ IIFE ได้
สำหรับ (var i = 0; i <5; i ++) {(ฟังก์ชัน () {var i2 = i; result.push (ฟังก์ชัน () {return i2});} ()); -นี่เป็นส่วนหนึ่งของความรู้ที่ไม่ได้ให้ความสนใจหรือเรียนรู้มาก่อนในระหว่างกระบวนการเปรียบเทียบ มันถูกเขียนขึ้นที่นี่เป็นส่วนเสริมของจุดความรู้
จุดคีย์ JavaScript พื้นฐานด้านบน (ต้องอ่าน) เป็นเนื้อหาทั้งหมดที่ใช้ร่วมกันโดยตัวแก้ไข ฉันหวังว่ามันจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น