0 ตัดสินว่าตัวแปรและพารามิเตอร์เริ่มต้นหรือไม่
ถ้า (x) {} // ตัวแปรเริ่มต้นหรือตัวแปรไม่ว่างเปล่าหรือตัวแปรไม่ได้เป็นศูนย์ฟังก์ชั่น 1-Declaration ไม่จำเป็นต้องมีการประกาศค่าส่งคืนหรือประเภทพารามิเตอร์และการสิ้นสุดของประโยคไม่จำเป็นต้องใช้ ';'
ฟังก์ชั่นผลรวม (i1, i2) {return i1+i2}2-Directly ประกาศฟังก์ชั่นที่ไม่ระบุชื่อให้ใช้ทันที
var f = ฟังก์ชั่น (i1, i2) {return i1+i2;}; การแจ้งเตือน (F (1,2)); // การแจ้งเตือนฟังก์ชันที่ไม่ระบุชื่อสามัญ (ฟังก์ชั่น (i1, i2) {return i1+i2;} (3,4)); // ประกาศโดยตรงใช้ทันที3-JS ไม่มีแนวคิดของชั้นเรียนดังนั้นบางวิธีจึงดูเหมือนคลาส
ฟังก์ชั่นบุคคล (ชื่ออายุ) {this.name = name; // เพิ่มแอตทริบิวต์แบบไดนามิกคล้ายกับ Dynamic A ใน C# a = new ExpendOObject (); this.age = อายุ; this.sayhello = function () {Alert ('Hello, My Name คือ'+Name+'I Am'+Age+'อายุ')};} var p1 = บุคคลใหม่ ('รถบรรทุก', 21); p1.sayhello (); // โทร p1.gender = 'ชาย' เหมือนคลาส; // เพิ่มการแจ้งเตือนแอตทริบิวต์ 'เพศ' แบบไดนามิก (p1.gender);วัตถุ 4-array เป็นอาร์เรย์และคุณไม่จำเป็นต้องมีคุณสมบัติล่วงหน้าความยาวของอาร์เรย์ล่วงหน้า
var arr = array ใหม่ (); arr [0] = 0; arr [1] = 1; arr [2] = 2; สำหรับ (var i = 0; i <= arr.length-1; i ++) {แจ้งเตือน (arr [i]);}5-Array เป็นอาเรย์และพจนานุกรมและสแต็ก
var dict = new Array (); // เป็นพจนานุกรมใช้ dict ['i'] = 'wo'; dict ['love'] = 'ai'; dict ['you'] = 'ni'; แจ้งเตือน (dict ['i']); // โทรแจ้งเตือน (dict.love); // การโทรเหมือนแอตทริบิวต์การโทร (ลักษณะของภาษาแบบไดนามิก) สำหรับ (var k ใน dict) {// การแจ้งเตือนการเดินทาง (k); // 'i', 'love', 'you'-> พิมพ์คีย์} สำหรับ (var k ของ dict) {// การแจ้งเตือนการเดินทาง (k); // 'wo', 'ai', 'ni'-> พิมพ์ค่า} var arr = [1,2,3,4,5]; // วิธีการสร้างแบบง่าย ๆ ของอาร์เรย์ var arr = {"รถบรรทุก": 21, "คลาวด์": 20}; // วิธีการสร้างสไตล์พจนานุกรม6-transfer องค์ประกอบทั้งหมดที่สามารถเรียกได้ในหน้าปัจจุบัน
var s = null; สำหรับ (var k ในเอกสาร) {// คุณสมบัติของวัตถุคือ s+= k+";";} การแจ้งเตือน (s);การดำเนินการห้อย 7-use คล้ายกับอาร์เรย์เพื่อรับอักขระที่ตำแหน่งที่ระบุของสตริง
var s = 'สวัสดีโลก!'; s [0]; // 'H's [6]; // '' s [12]; // '!' s [13]; // ดัชนีที่ไม่ได้กำหนดนอกช่วงจะไม่รายงานข้อผิดพลาด แต่พวกเขาจะส่งคืนที่ไม่ได้กำหนดไว้เสมอ ควรสังเกตว่าสตริงไม่เปลี่ยนรูป หากคุณกำหนดค่าให้กับดัชนีบางอย่างของสตริงจะไม่มีข้อผิดพลาด แต่ไม่มีผลกระทบ: var s = 'ทดสอบ'; s [0] = 'x'; แจ้งเตือน; // s ยังคงเป็น 'ทดสอบ'
ตัวพิมพ์เล็ก 8-Capsule
var s = 'hello'; s.touppercase (); // ส่งคืน 'hello' var s = 'hello'; s.toLowercase (); // กลับ 'สวัสดี'
9-search สำหรับตำแหน่งที่สตริงที่ระบุจะปรากฏขึ้น
var s = 'สวัสดีโลก'; s.indexof ('โลก'); // ส่งคืน 7SINDEXOF ('โลก'); // ไม่พบสตริงย่อยที่ระบุ, return -110-get substrings ของสตริงที่ระบุช่วงเวลาดัชนี
var s = 'สวัสดี, World's.substring (0, 5); // เริ่มจากดัชนี 0 ถึง 5 (ไม่รวม 5), กลับ 'hello's.substring (7); // เริ่มจากดัชนี 7 ถึงจุดสิ้นสุดกลับ 'โลก'
11-Javascript Object เป็นประเภทข้อมูลการรวบรวมที่ไม่ได้เรียงลำดับซึ่งประกอบด้วยคู่คีย์-ค่าหลายคู่
var xiaoming = {ชื่อ: 'Xiaoming', เกิด: 1990, โรงเรียน: 'No.1 Middle School', ความสูง: 1.70, น้ำหนัก: 65, คะแนน: null // คู่คีย์-ค่าสุดท้ายไม่จำเป็นต้องเพิ่ม ','}; xiaoming.name; // 'Xiaoming'xiaoming.birth; // 1990 การเข้าถึงแอตทริบิวต์จะทำผ่าน ตัวดำเนินการ แต่สิ่งนี้ต้องการให้ชื่อแอตทริบิวต์ต้องเป็นชื่อตัวแปรที่ถูกต้อง หากชื่อแอตทริบิวต์มีอักขระพิเศษจะต้องปิดล้อมด้วย []: var xiaohong = {ชื่อ: 'Xiaohong', 'โรงเรียนมัธยม': 'No.1 Middle School'}; Xiaohong ['Middle-School']; // 'No.1 Middle School'xiaohong [' Name ']; // 'Xiaohong'xiaohong.name; // 'Xiaohong'xiaohong.age; // ไม่ได้กำหนด12 เพื่อตรวจจับว่า Xiaoming มีแอตทริบิวต์บางอย่างใช้ตัวดำเนินการใน:
'ชื่อ' ใน Xiaoming; // true'grade 'ใน Xiaoming; // false *** ถ้าในการกำหนดว่ามีคุณสมบัติอยู่คุณสมบัตินี้อาจไม่ได้เป็น Xiaoming มันอาจได้รับการสืบทอดโดย Xiaoming:' ToString 'ใน Xiaoming; // true *** เพื่อตรวจสอบว่าทรัพย์สินเป็นของ Xiaoming เองไม่ได้รับมรดกคุณสามารถใช้วิธีการ HasownProperty (): Xiaoming.hasownproperty ('ชื่อ'); // truexiaoming.hasownproperty ('ToString'); // เท็จ13-map
var m = แผนที่ใหม่ ([['Michael', 95], ['Bob', 75], ['Tracy', 85]]); // 2d Array Initialization วิธี M.Get ('Michael'); // 95 var m = แผนที่ใหม่ (); // เริ่มต้น mapm.set ว่างเปล่าโดยตรง ('Adam', 67); // เพิ่ม key-valuem.set ใหม่ ('Bob', 59); M.Has ('Adam'); // ไม่ว่าจะเป็นคีย์ 'อดัม': truem.get ('อดัม'); // 67M.Delete ('Adam'); // ลบคีย์ 'Adam'm.get (' Adam '); // undefined var m = แผนที่ใหม่ ([[1, 'x'], [2, 'y'], [3, 'z']]); สำหรับ (var n ของ m) {// traverse map Alert (n [1] + '=' + n [0]);วิธีการ foreach ในตัว 14 ข้อซึ่งได้รับฟังก์ชั่นและโทรกลับแต่ละครั้งโดยอัตโนมัติ
var a = ['a', 'b', 'c']; a.foreach (ฟังก์ชัน (องค์ประกอบ, ดัชนี, อาร์เรย์) {// องค์ประกอบ: ชี้ไปที่ค่าขององค์ประกอบปัจจุบัน // ดัชนี: ชี้ไปที่ดัชนีปัจจุบัน // อาร์เรย์: ชี้ไปที่วัตถุอาร์เรย์เองแจ้งเตือน (องค์ประกอบ);}); ชุดคล้ายกับอาร์เรย์ แต่ชุดไม่มีดัชนีดังนั้นฟังก์ชันการโทรกลับมีค่าสูงสุดของพารามิเตอร์สองตัว: var s = ชุดใหม่ (['a', 'b', 'c']); s.foreach (ฟังก์ชั่น (องค์ประกอบ, ชุด) {แจ้งเตือน (องค์ประกอบ);}); พารามิเตอร์ฟังก์ชันการโทรกลับของแผนที่คือค่าคีย์และแผนที่ตัวเอง: var m = แผนที่ใหม่ ([[1, 'x'], [2, 'y'], [3, 'z']]); m.foreach (ฟังก์ชัน (ค่า, คีย์, แผนที่) {การแจ้งเตือน (ค่า);}); var a = ['a', 'b', 'c']; a.foreach (ฟังก์ชัน (องค์ประกอบ) {การแจ้งเตือน (องค์ประกอบ);});วิธีแผนที่ของอาร์เรย์ 15 ใช้งานผ่านฟังก์ชั่นของเราเองและคุณจะได้รับอาร์เรย์ใหม่เป็นผล:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map (ฟังก์ชั่น (x) {return x*x;}). foreach (ฟังก์ชั่น (องค์ประกอบ) {แจ้งเตือน (องค์ประกอบ); // [1, 4, 9, 16, 25, 36, 49, 64, 81]});แผนที่ 16-use () เพื่อแปลงตัวเลขทั้งหมดในอาร์เรย์เป็นสตริง:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map (สตริง); // ['1', '2', '3', '4', '5', '6', '7', '8', '9'
การลดลงของอาร์เรย์ 17 แบบใช้ () เพื่อทำการคำนวณแบบสะสม
var arr = []; สำหรับ (var x = 1; x <= 100; x ++) {arr.push (x); // ใส่ 1 ~ 100 ลงในการแจ้งเตือนอาร์เรย์} (arr.reduce (ฟังก์ชั่น (x, y) {return x+y; // ผลรวมสะสมของวัตถุทั้งหมดของ arr, ส่งคืนผลลัพธ์ผลรวม}));ลดการใช้งาน 18 ครั้ง () เพื่อทำการแปลงที่ยอดเยี่ยม: แปลง [1, 2, 5, 8, 0] เป็นจำนวนเต็ม 12580
var arr = [1, 2, 5, 8, 0]; การแจ้งเตือน (arr.reduce (ฟังก์ชั่น (x, y) {return x*10+y;}));ตัวกรอง 19-use () เพื่อกรององค์ประกอบบางอย่างของอาร์เรย์
var arr = [0,1,2,3,4,5,6,6,7,8,9]; แจ้งเตือน (arr.filter (ฟังก์ชั่น (x) {return x%2 === 0;})); // 0,2,4,6,8 // กลับไปจริง ']; Alert (arr.filter (ฟังก์ชั่น (s) {return s && s.trim (); // note: ไม่มีวิธีการตัดแต่ง () ในเวอร์ชันด้านล่าง IE9})); // ['A', 'B', 'C']วิธีการเรียงลำดับของ 20-Array () แปลงองค์ประกอบทั้งหมดเป็นสตริงก่อนแล้วเรียงลำดับดังนั้น ...
[10, 20, 1, 2] .sort (); // [1, 10, 2, 20] ดังนั้นหากคุณต้องการเรียงลำดับตามขนาดตัวเลขคุณสามารถเขียนสิ่งนี้: var arr = []; สำหรับ (var x = 1; x <= 10; x ++) {arr.push (x);} document.write (arr+"<br/>"); หากต้องการเพิกเฉยต่ออิทธิพลของตัวอักษรคุณต้องแปลงเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก var arr = ['google', 'apple', 'microsoft']; แจ้งเตือน (arr.sort (ฟังก์ชั่น (s1, s2) {var x1 = s1.touppercase (); var x2 = s2.touppercase () // ['Apple', 'Google', 'Microsoft']โครงสร้างโปรแกรม 21 แบบปิด
①กำหนดฟังก์ชันเป็นค่าส่งคืนไปยังพารามิเตอร์ให้เรียกพารามิเตอร์เพื่อรับผลการคำนวณ var arr = []; สำหรับ (var n = 1; n <101; n ++) {arr.push (n);} ฟังก์ชัน lazy_sum (arr) {var sum = function () {return arr.reduce } return sum;} var f = lazy_sum (arr); แจ้งเตือน (f ()); ②ฟังก์ชั่นที่ส่งคืนจะไม่ถูกดำเนินการทันที แต่ไม่ได้ดำเนินการจนกว่า f () จะเรียกว่าจำนวนฟังก์ชัน () {var arr = []; สำหรับ (var i = 1; i <= 3; i ++) {arr.push (ฟังก์ชัน () {return i * i;}); } return arr;} var results = count (); // มี 3 functionsvar f1 = ผลลัพธ์ [0]; var f2 = ผลลัพธ์ [1]; var f3 = ผลลัพธ์ [2]; F1 (); // 16 ฟังก์ชั่นที่ส่งคืนหมายถึงตัวแปร I แต่ไม่ได้ดำเนินการทันที f2 (); // 16 เมื่อทั้งสามฟังก์ชั่นกลับมาตัวแปรที่ฉันอ้างอิงได้กลายเป็น 4, f3 (); // 16 ดังนั้นผลลัพธ์สุดท้ายคือ 16 *** เมื่อส่งคืนการปิดโปรดจำไว้ว่า: อย่าอ้างถึงตัวแปรลูปใด ๆ หรือตัวแปรที่จะเปลี่ยนแปลงในอนาคต! ③ถ้าคุณต้องอ้างถึงตัวแปรลูป? วิธีการคือการสร้างฟังก์ชั่นอื่นและใช้พารามิเตอร์ของฟังก์ชันเพื่อผูกค่าปัจจุบันของตัวแปรลูป ไม่ว่าตัวแปรลูปจะเปลี่ยนแปลงอย่างไรในเวลาต่อมาค่าที่ถูกผูกไว้กับพารามิเตอร์ฟังก์ชันยังคงไม่เปลี่ยนแปลง: การนับฟังก์ชัน () {var arr = []; สำหรับ (var i = 1; i <= 3; i ++) {arr.push (ฟังก์ชัน (n) {return function () {return n*n;}} (i)); } return arr;} var results = count (); var f1 = ผลลัพธ์ [0]; var f2 = ผลลัพธ์ [1]; var f3 = ผลลัพธ์ [2]; การแจ้งเตือน (f1 ()); // 1Alert (f2 ()); // 4Alert (f3 ()); // 9 ④ในภาษาที่ไม่มีกลไกคลาสและฟังก์ชั่นเท่านั้นด้วยความช่วยเหลือของการปิดตัวแปรส่วนตัวสามารถเป็นฟังก์ชันที่ห่อหุ้ม creat_counter (init) {var n = init || 0; return {add: function () {n+= 1; กลับ n; }}} var c = creat_counter (); แจ้งเตือน (c.add ()); // 1Alert (c.add ()); // 2Alert (c.add ()); // 3 *** ในวัตถุที่ส่งคืนจะถูกนำไปใช้ กล่าวอีกนัยหนึ่งการปิดเป็นฟังก์ชั่นที่มีสถานะและสถานะของมันสามารถซ่อนได้อย่างสมบูรณ์จากภายนอก ⑤ใช้ math.pow (x, y) เพื่อคำนวณ x^2 หรือ x^3 //math.pow(x, y)-> x^yfunction make_pow (y) {ฟังก์ชั่น return (x) {return math.pow (x, y); }} var pow2 = make_pow (2) var pow3 = make_pow (3) การแจ้งเตือน (POW2 (3)) // 9Alert (POW3 (3)) // 27ฟังก์ชั่น 22-arrow (ปัจจุบันรองรับโดย Firefox) // พารามิเตอร์ => ฟังก์ชันร่างกาย
var f = x => x*xxxalert (f (3)) // 27
23-Generator เพื่อสร้างลำดับ Fibonacci
ฟังก์ชั่น* fib (สูงสุด) {var t, a = 0, b = 1, n = 1; ในขณะที่ (n <= สูงสุด) {ให้ A; t = a+b; a = b; b = t; n ++; } return a;} สำหรับ (var x ของ fib (10)) {// iterate document object ของเครื่องกำเนิดไฟฟ้าเขียน (x+''); // เอาท์พุท 0, 1, 1, 2, 3} ใช้เครื่องกำเนิดไฟฟ้าเพื่อสร้าง ID ที่เกิดขึ้นเอง (ไม่จำเป็นต้องมีตัวแปรทั่วโลก) ฟังก์ชั่น* next_id () {สำหรับ (var x = 1; x <100; ผลผลิต x ++);} var g = next_id (); แจ้งเตือน (g.next (). ค่า); // 1Alert (g.next (). ค่า); // 2Alert (g.next (). ค่า); // 3ข้างต้นเป็นเนื้อหาเต็มรูปแบบของบันทึกย่อการศึกษาด้วยตนเองของ JavaScript (บทความต้องอ่าน) ที่นำเสนอโดยบรรณาธิการ ฉันหวังว่าทุกคนจะสนับสนุน wulin.com เพิ่มเติม ~