no1. ไวยากรณ์และพิมพ์
1. นิยามประกาศ
ประเภทตัวแปร: var, กำหนดตัวแปร; ให้กำหนดตัวแปรท้องถิ่นในโดเมนบล็อก (ขอบเขต); const, กำหนดค่าคงที่แบบอ่านอย่างเดียว
รูปแบบตัวแปร: เริ่มต้นด้วยตัวอักษรเน้น "_" หรือ $ Symbol, case sensitive
การกำหนดตัวแปร: ค่าของตัวแปรที่ประกาศ แต่ไม่ได้กำหนดจะไม่ได้กำหนดเมื่อใช้ การใช้ตัวแปรที่ไม่ได้ประกาศโดยตรงจะโยนข้อยกเว้น
ตัวแปรที่ไม่ได้กำหนดถูกคำนวณ: ผลลัพธ์คือ NAN ตัวอย่างเช่น:
var x, y = 1;
console.log (x + y); // ผลลัพธ์คือ NAN เพราะ X ไม่มีการมอบหมาย
2. ขอบเขต
ขอบเขตตัวแปร: ไม่มีฟิลด์ประกาศบล็อกก่อน ES6 และตัวแปรทำหน้าที่ในบล็อกฟังก์ชั่นหรือทั่วโลก ตัวอย่างเช่นรหัสต่อไปนี้จะป้อน x เป็น 5
ถ้า (จริง) {var x = 5;} console.log (x); // 5ขอบเขตตัวแปร ES6: ES6 รองรับขอบเขตบล็อก แต่ต้องการการใช้งานเพื่อประกาศตัวแปร รหัสต่อไปนี้ส่งออกข้อยกเว้น
ถ้า (จริง) {ให้ y = 5;} console.log (y); // ReferenceRoror: Y ไม่ได้กำหนด 1234ตัวแปรลอย: ในวิธีการหรือรหัสทั่วโลกเมื่อเราใช้ตัวแปรก่อนตัวแปรชีวิตเราไม่ได้โยนข้อยกเว้น แต่กลับมาที่ไม่ได้กำหนด นี่เป็นเพราะ JavaScript ลอยการประกาศตัวแปรไปที่ด้านหน้าของฟังก์ชั่นหรือทั่วโลกโดยอัตโนมัติ ดังที่แสดงในรหัสต่อไปนี้:
/*** ตัวแปรทั่วโลกลอย*/console.log (x === ไม่ได้กำหนด); // logs "true" var x = 3;/*** เมธอดตัวแปรลอย*/var myvar = "ค่าของฉัน"; // ผลการพิมพ์ตัวแปร myVar คือ: undefined (ฟังก์ชัน () {console.log (myvar); // undefinedvar myvar = "ค่าท้องถิ่น";}) (); รหัสข้างต้นเทียบเท่ากับรหัสต่อไปนี้: /*** ตัวแปร Global Float* /var x; console.log (x === ไม่ได้กำหนด); // บันทึก "true" x = 3;/*** เมธอดตัวแปรลอย*/var myvar = "ค่าของฉัน"; (ฟังก์ชัน () {var myvar; console.log (myvar); // undefinedMyVar = "ค่าท้องถิ่น";}) ();ตัวแปรทั่วโลก: ในหน้าวัตถุส่วนกลางคือหน้าต่างดังนั้นเราสามารถเข้าถึงตัวแปรทั่วโลกผ่าน window.variable ตัวอย่างเช่น:
เวอร์ชัน = "1.0.0"; console.log (window.version); // เอาท์พุท 1.0.0
NO2. โครงสร้างข้อมูลและประเภท
1. ประเภทข้อมูล
6 ประเภทพื้นฐาน: บูลีน (จริงหรือเท็จ), NULL (JS Case Sensitive, แตกต่างจาก NULL และ NULL), ไม่ได้กำหนด, หมายเลข, สตริง, สัญลักษณ์ (ทำเครื่องหมายที่ไม่ซ้ำกันและไม่เปลี่ยนรูป))
ประเภทวัตถุ: วัตถุ
วัตถุและฟังก์ชั่น: วัตถุเป็นคอนเทนเนอร์ของค่าและฟังก์ชันเป็นกระบวนการแอปพลิเคชัน
2. การแปลงข้อมูล
ฟังก์ชั่น: วิธีการ parseint และ parsefloat สามารถใช้ในการแปลงสตริงเป็นตัวเลข
PARSEINT: ลายเซ็นฟังก์ชั่นคือ ParseInt (String, Radix), Radix เป็นจำนวน 2-36 ที่แสดงถึงฐานตัวเลขเช่นทศนิยมหรือเลขฐานสิบหก ผลการส่งคืนเป็นจำนวนเต็มหรือ NAN ตัวอย่างเช่นผลลัพธ์ผลลัพธ์ต่อไปนี้คือทั้งหมด 15
parseint ("0xf", 16); parseint ("f", 16); parseint ("17", 8); parseint (021, 8); parseint ("015", 10); Parseint (15.99, 10); arseint ("15,123", 10); 2); parseint ("15*3", 10); parseint ("15e2", 10); parseint ("15px", 10); parseint ("15px", 10); parseint ("15px", 10); Parseint ("15px", 10); 10); parseint ("15px", 10); parseint ("15px", 10); parseint ("15px", 10); parseint ("15px", 10);Parsefloat: ลายเซ็นฟังก์ชั่นคือ parsefloat (สตริง) และผลลัพธ์คือตัวเลขหรือน่าน ตัวอย่างเช่น:
Parsefloat ("3.14"); // ส่งคืนหมายเลข parsefloat ("314E-2"); // ส่งคืนหมายเลข parsefloat ("อักขระที่ไม่ใช่ตัวเลขมากขึ้น"); // ส่งคืนหมายเลข NAN3. การทำให้เป็นข้อความชนิดข้อมูล
ประเภทพื้นผิว: อาร์เรย์, บูลีน, จุดลอยตัว, จำนวนเต็ม, วัตถุ, regexp, สตริง
กรณีเครื่องหมายจุลภาคเพิ่มเติมในอาร์เรย์: ["Lion" ,, "Angel"], ความยาว 3, ค่าของ [1] เป็นสิ่งที่ไม่ได้ป้องกัน ['home' ,, 'โรงเรียน',], เครื่องหมายจุลภาคสุดท้ายถูกละเว้นดังนั้นความยาวคือ 3 [, 'home', 'โรงเรียน'], ความยาว 4. ['บ้าน', 'โรงเรียน' ,,], ความยาว 4
จำนวนเต็มจำนวนเต็ม: จำนวนเต็มสามารถแสดงออกได้ว่าเป็นทศนิยม, octal, hexadecimal และ binary ตัวอย่างเช่น:
0, 117 และ -345 // ทศนิยม 015, 0001 และ -0O77 // Octal 0x1123, 0x00111 และ -0xf1a7 // hex 0b11, 0b0011 และ -0b11 1234 // หมายเลขลอยไบนารี: [(+| -) ตัวอย่างเช่น: 3.1415926, -.123456789, -3.1e+12 (3100000000000), .1E -23 (1E -24)
วัตถุ: ค่าการได้มาซึ่งคุณสมบัติของวัตถุสามารถรับได้ผ่าน ". แอตทริบิวต์" หรือ "[ชื่อแอตทริบิวต์]" ตัวอย่างเช่น:
var car = {manycars: {a: "saab", "b": "jeep"}, 7: "mazda"}; console.log (car.manycars.b); // jeepconsole.log (Car [7]); // มาสด้าแอตทริบิวต์วัตถุ: ชื่อแอตทริบิวต์สามารถเป็นสตริงใด ๆ หรือสตริงที่ว่างเปล่าและชื่อที่ไม่ถูกต้องสามารถรวมอยู่ในเครื่องหมายคำพูด ไม่สามารถรับชื่อที่ซับซ้อนได้ แต่สามารถรับได้ผ่าน [] ตัวอย่างเช่น:
var unusualProperTyNames = {"": "สตริงว่าง", "!": "bang!"} console.log (unusualPropertyNames. ""); // syntaxError: StringConsole.log ที่ไม่คาดคิด (unusualPropertyNames [""]); // stringconsole.log (unusualPropertyNames.!); // syntaxerror: โทเค็นที่ไม่คาดคิด! console.log (unusualpropertynames ["!"]); // ปัง!อักขระการแปลง: ผลลัพธ์เอาต์พุตสตริงต่อไปนี้มีคำพูดสองเท่าเนื่องจากใช้สัญลักษณ์การแปลง "/" "
var quote = "เขาอ่าน/" การเผาศพของ Sam McGee/"โดยบริการ RW"; console.log (อ้าง); // เอาท์พุท: เขาอ่าน "การเผาศพของ Sam McGee" โดยบริการ RW 1
วิธีการทำลายสายสตริง: เพิ่ม "/" โดยตรงที่ส่วนท้ายของสตริงดังที่แสดงในรหัสต่อไปนี้:
var str = "สตริง /นี้แตก /ข้ามหลายบรรทัด /บรรทัด" console.log (str); // สตริงนี้ถูกทำลายข้ามตัวทวีคูณ
no3. การควบคุมการไหลและการจัดการข้อผิดพลาด
1. การแสดงออกของบล็อก
ฟังก์ชั่น: การแสดงออกของบล็อกโดยทั่วไปจะใช้เพื่อควบคุมการไหลเช่นถ้า, สำหรับและในขณะที่ ในรหัสต่อไปนี้ {x ++;} คือการประกาศบล็อก
ในขณะที่ (x <10) {x ++;}ไม่มีขอบเขตโดเมนบล็อกก่อน ES6: ก่อน ES6 ตัวแปรที่กำหนดไว้ในบล็อกนั้นรวมอยู่ในวิธีการหรือทั่วโลกและอิทธิพลของตัวแปรเกินขอบเขตของขอบเขตบล็อก ตัวอย่างเช่นผลการดำเนินการขั้นสุดท้ายของรหัสต่อไปนี้คือ 2 เนื่องจากตัวแปรที่ประกาศในบล็อกจะทำตามวิธีการ
var x = 1; {var x = 2;} console.log (x); // เอาต์พุต 2หลังจาก ES6 มีช่วงโดเมนบล็อก: ใน ES6 เราสามารถเปลี่ยนการประกาศโดเมนบล็อก VAR ให้ปล่อยให้ตัวแปรเฉพาะช่วงบล็อกเท่านั้น
2. การตัดสินเชิงตรรกะ
ค่าพิเศษที่ถูกตัดสินว่าเป็นเท็จ: เท็จ, ไม่ได้กำหนด, null, 0, nan, ""
บูลีนแบบง่ายและประเภทบูลีนวัตถุ: มีความแตกต่างระหว่างเท็จและความจริงของประเภทบูลีนง่าย ๆ และประเภทบูลีนของวัตถุที่เป็นเท็จและจริงและทั้งสองไม่เท่ากัน ดังในตัวอย่างต่อไปนี้:
var b = บูลีนใหม่ (เท็จ); ถ้า (b) // ส่งคืน trueif (b == true) // return false
no4. การจัดการข้อยกเว้น
1. ประเภทการรับรู้
ไวยากรณ์การโยนข้อยกเว้น: การโยนข้อยกเว้นอาจเป็นประเภทใดก็ได้ ดังที่แสดงด้านล่าง
โยน "ข้อผิดพลาด 2"; // ประเภทสตริงโยน 42; // หมายเลขประเภทโยนจริง; // boolean type throw {toString: function () {return "ฉันเป็นวัตถุ!"; - // ประเภทวัตถุข้อยกเว้นที่กำหนดเอง:
// สร้างประเภทวัตถุ userExceptionFunction userException (ข้อความ) {this.message = message; this.name = "userException";} // เขียนวิธี toString เพื่อรับข้อมูลที่เป็นประโยชน์โดยตรง โยนมันโยน userexception ใหม่ ("ค่าสูงเกินไป");2. ไวยากรณ์
คำสำคัญ: ใช้ลอง {} catch (e) {} ในที่สุด {} ไวยากรณ์คล้ายกับ C# syntax
ในที่สุดค่าส่งคืน: หากในที่สุดก็เพิ่มคำสั่ง Return ไม่ว่าจะลองส่งคืนค่าใดก็ตาม ดังที่แสดงด้านล่าง:
ฟังก์ชั่น f () {ลอง {console.log (0); โยน "ปลอม"; } catch (e) {console.log (1); กลับมาจริง; // คำสั่งคืนจะหยุดลงจนกว่าการดำเนินการในที่สุดจะเสร็จสิ้น console.log (2); // รหัสที่จะไม่ถูกเรียกใช้} ในที่สุด {console.log (3); กลับเท็จ; // เขียนทับคอนโซล return.log (4); // รหัสที่จะไม่ถูกเรียกใช้งาน} // "return false" จะถูกเรียกใช้งานตอนนี้ console.log (5); // ไม่สามารถเข้าถึงได้} f (); // เอาต์พุต 0, 1, 3; กลับเท็จในที่สุดก็มีข้อยกเว้นการกลืน: หากในที่สุดก็มีการกลับมาและมีข้อยกเว้นการโยนในการจับ ข้อยกเว้นการโยนจะไม่ถูกจับเพราะมันถูกปกคลุมด้วยการกลับมาในที่สุด รหัสต่อไปนี้ดูเหมือนว่า:
ฟังก์ชั่น f () {ลอง {โยน "bogus"; } catch (e) {console.log ('ติดอยู่ใน "bogus"'); โยน e; // คำสั่งการโยนจะหยุดลงจนกว่าการดำเนินการในที่สุดจะเสร็จสิ้น} ในที่สุด {return false; // เขียนทับคำสั่งการโยนใน try.catch} // "return false"} ลอง {f ();} catch (e) {// มันจะไม่ถูกประหารที่นี่เพราะการโยนในการจับถูกเขียนทับโดยคำสั่งคืนในที่สุด "วัตถุข้อผิดพลาดของระบบ: เราสามารถใช้ข้อผิดพลาดได้โดยตรง {ชื่อ, ข้อความ} วัตถุตัวอย่างเช่นการโยน (ข้อผิดพลาดใหม่ ('ข้อความ'));
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น