การอ่านบทความนี้ต้องใช้ประสบการณ์การเขียนโปรแกรมในภาษาอื่น ๆ
ก่อนเริ่มเรียน
ภาษาการเขียนโปรแกรมส่วนใหญ่มีส่วนที่ดีและชิ้นส่วนที่ไม่ดี บทความนี้พูดถึงส่วนที่ดีของ JavaScript เท่านั้นเพราะ:
1. เพียงแค่เรียนรู้ส่วนที่ดีที่สุดสามารถทำให้เวลาการเรียนรู้สั้นลง
2. รหัสที่เขียนมีความแข็งแกร่งมากขึ้น
3. การเขียนโค้ดนั้นง่ายต่อการอ่าน
4. รหัสที่เขียนนั้นง่ายต่อการบำรุงรักษา
อ่อนแอและแข็งแกร่ง
โดยทั่วไปการพูดก่อนหน้านี้คุณแก้ไขข้อผิดพลาดราคาที่คุณจ่ายน้อยลง คอมไพเลอร์ของภาษาที่พิมพ์อย่างยิ่งสามารถตรวจสอบข้อผิดพลาดบางอย่างในเวลาคอมไพล์ JavaScript เป็นภาษาที่อ่อนแอและล่ามไม่สามารถตรวจสอบข้อผิดพลาดประเภทได้ แต่การปฏิบัติแสดงให้เห็นว่า:
1. ข้อผิดพลาดที่พิมพ์อย่างรุนแรงสามารถหลีกเลี่ยงได้ไม่ใช่ข้อผิดพลาดที่สำคัญเหล่านั้น
2. ประเภทที่อ่อนแอสามารถนำความยืดหยุ่นได้โดยไม่ต้องแบกรับภาระของประเภทที่แข็งแกร่ง
มาตรฐานที่เกี่ยวข้องกับจาวาสคริปต์
มาตรฐาน ECMA-262 กำหนด ECMASCRIPT ภาษา JavaScript และ Actionscript ตามที่เราคุ้นเคยนั้นขึ้นอยู่กับ ECMASCRIPT ปัจจุบันกระแสหลักใช้ ECMA-262 เวอร์ชัน 5 และเอ็นจิ้น V8 ของ Google คือการใช้งานนี้
สวัสดี JavaScript
JavaScript เป็นภาษาสคริปต์ที่ต้องใช้ล่ามเพื่อตีความและดำเนินการ คุณสามารถอธิบาย JavaScript ในเบราว์เซอร์หรือใช้ Node.js โดยตรงซึ่งรวมเอ็นจิ้น V8 JavaScript ของ Google เข้าด้วยกัน เนื่องจาก node.js ใช้งานสะดวกมากฉันใช้ node.js ที่นี่เพื่ออธิบายการดำเนินการของ JavaScript ตอนนี้ดูที่โปรแกรม JavaScript แรก:
การคัดลอกรหัสมีดังนี้:
// test.js
console.log ("สวัสดี JavaScript");
ดำเนินการโปรแกรมนี้:
การคัดลอกรหัสมีดังนี้:
Node Test.js
ไวยากรณ์
ความเห็น
JavaScript ใช้วิธีการอธิบายประกอบแบบเดียวกันกับ C ++, // สำหรับคำอธิบายประกอบบรรทัดเดียว / * / สำหรับคำอธิบายประกอบแบบหลายบรรทัด
ประเภทหมายเลข
JavaScript มีประเภทตัวเลขเพียงประเภทเดียวซึ่งเป็นหมายเลขจุดลอยตัว 64 บิต ประเภทตัวเลขมีค่าพิเศษสองค่าคือน่านและอินฟินิตี้ ความหมายของน่านไม่ใช่ตัวเลข (ไม่ใช่ตัวเลข) ใช้ฟังก์ชั่น ISNAN เพื่อตรวจสอบว่าเป็น NAN หรือไม่ ค่าอินฟินิตี้หมายถึงอินฟินิตี้ ในวัตถุคณิตศาสตร์มีชุดของวิธีการจัดการตัวเลขตัวอย่างเช่น: วิธีคณิตศาสตร์ floor ใช้ในการปัดเศษลง
สาย
ตัวอักษรสตริงสามารถห่อด้วยเครื่องหมายคำพูดเดี่ยวหรือคู่และใช้ตัวละครที่หลบหนี (ไม่แตกต่างจากภาษาอื่น ๆ อีกมากมาย) ตัวละครแต่ละตัวใน JavaScript คือสองไบต์ซึ่งใช้ชุดอักขระ Unicode สตริงมีแอตทริบิวต์ความยาว:
การคัดลอกรหัสมีดังนี้:
"สวัสดี" .length // ค่าคือ 5 โปรดทราบว่าไม่ใช่ "สวัสดี" .length ()
สตริงไม่สามารถเปลี่ยนแปลงได้ (เช่น Lua) นอกเหนือจากแอตทริบิวต์ความยาวที่กล่าวถึงที่นี่มีบางวิธีเช่น:
การคัดลอกรหัสมีดังนี้:
'cat'.touppercase () ===' cat '
คำแถลง
คำสั่ง VAR ใช้เพื่อประกาศตัวแปรท้องถิ่นมิฉะนั้นตัวแปรเป็นตัวแปรส่วนกลางและค่าของตัวแปรที่ไม่ได้กำหนดค่าไม่ได้กำหนดไว้:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น f () {
var localvar = 123;
GlobalVar = 456;
var i; // ค่าของฉันไม่ได้กำหนด
-
f ();
console.log (GlobalVar); // ตกลง
console.log (localvar); // ข้อผิดพลาดไม่มีการกำหนด localVar
ชุดคำสั่งที่ห่อหุ้มด้วย {} เรียกว่าบล็อกคำสั่ง ฟังก์ชั่นอื่น ๆ ใน JavaScript จะไม่สร้างขอบเขตใหม่เช่น:
การคัดลอกรหัสมีดังนี้:
-
var v = 123;
-
console.log (v); // ตกลง
ถ้าแถลงการณ์
การคัดลอกรหัสมีดังนี้:
ถ้า (นิพจน์)
คำแถลง
หรือ
การคัดลอกรหัสมีดังนี้:
ถ้า (นิพจน์)
คำสั่ง 1
อื่น
คำแถลง 2
หรือ
การคัดลอกรหัสมีดังนี้:
ถ้า (Expression1)
คำสั่ง 1
อื่นถ้า (Expression2)
คำแถลง 2
อื่นถ้า (Expression3)
คำแถลง 3
อื่น
คำแถลง 4
คำสั่ง IF ตัดสินใจที่จะดำเนินการหรือข้ามข้อความบางอย่างโดยการตัดสินว่าค่าของนิพจน์เป็นจริงหรือเท็จ ใน JavaScript ค่าต่อไปนี้เป็นเท็จ (ค่าอื่นเป็นจริง):
1. แฟลช
2. ไม่มี
3. ไม่ได้รับการกำหนด
4. สตริงเปล่า
5.0
6. ไม่มี
คำสั่งใน IF สามารถเป็นคำสั่งหรือบล็อกคำสั่ง
คำสั่งเปลี่ยน
การคัดลอกรหัสมีดังนี้:
สวิตช์ (n) {
กรณีที่ 1: // ถ้า n เท่ากับ 1
// ดำเนินการบล็อกรหัส
หยุดพัก;
กรณีที่ 2: // ถ้า n เท่ากับ 2
// ดำเนินการบล็อกรหัส
หยุดพัก;
ค่าเริ่มต้น: // ถ้า n ไม่ใช่ 1 หรือ 2
// ดำเนินการบล็อกรหัส
หยุดพัก;
-
ที่นี่ Break ใช้เพื่อออกจากคำสั่งลูปหรือคำสั่งสวิตช์ ใน JavaScript มีตัวดำเนินการสองตัวที่เปรียบเทียบว่าค่าสองค่าเท่ากัน:
1. == (สอดคล้องกับ! = ตัวดำเนินการ), เท่ากันและตัวถูกดำเนินการทั้งสองประเภทแตกต่างกัน ผู้ประกอบการนี้พยายามแปลงประเภทตัวถูกดำเนินการก่อนเปรียบเทียบตัวอย่างเช่น:
การคัดลอกรหัสมีดังนี้:
var x = 1;
x == 1; // จริง
x == "1"; // จริง
2. === (สอดคล้องกับ! == ตัวดำเนินการ) ซึ่งเท่ากันอย่างสมบูรณ์เปรียบเทียบตัวถูกดำเนินการสองตัวและไม่ได้ทำการแปลงประเภทตัวถูกดำเนินการเช่น:
การคัดลอกรหัสมีดังนี้:
var x = 1;
x === 1; // จริง
x === "1"; // เท็จ
ควรสังเกตว่าน่านและค่าใด ๆ ไม่เท่ากัน ถ้า x เป็น NAN ดังนั้น x! == x (ถือไว้สำหรับ NAN เท่านั้น) เราสามารถใช้ฟังก์ชัน ISNAN เช่นนี้:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น iSnan (n) {
กลับ n! == n;
-
คำสั่งสวิตช์ด้านบนจะถูกแปลงเป็น IF IF คำสั่งเป็น:
การคัดลอกรหัสมีดังนี้:
ถ้า (n === 1)
-
อื่นถ้า (n === 2)
-
อื่น
-
ในขณะที่และทำในขณะที่งบ
การคัดลอกรหัสมีดังนี้:
ในขณะที่ (นิพจน์)
คำแถลง
หากนิพจน์เป็นจริงคำสั่งทำซ้ำจนกว่านิพจน์จะเป็นเท็จ
การคัดลอกรหัสมีดังนี้:
ทำ
คำแถลง
ในขณะที่ (แสดงออก);
คล้ายกับลูปในขณะที่มันเพียงแค่ดำเนินการคำสั่งก่อนแล้วตรวจสอบนิพจน์ที่มีเงื่อนไข
สำหรับคำสั่ง
การคัดลอกรหัสมีดังนี้:
สำหรับ (เริ่มต้น; ทดสอบ; เพิ่มขึ้น)
คำแถลง
ขั้นแรกการเริ่มต้นจะถูกดำเนินการหนึ่งครั้ง (มักจะใช้เพื่อเริ่มต้นตัวแปรลูป) จากนั้นทดสอบเงื่อนไขการทดสอบ (มักใช้เพื่อทดสอบตัวแปรลูป) หากเงื่อนไขการทดสอบเป็นเท็จการวนซ้ำจะหยุดมิฉะนั้นคำสั่งจะถูกดำเนินการแล้วเพิ่มขึ้น (มักจะอัปเดตตัวแปรลูป) ตัวอย่างการใช้งาน:
การคัดลอกรหัสมีดังนี้:
สำหรับ (var i = 0; i <5; ++ i) {
console.log (i);
-
อีกรูปแบบหนึ่งของการใช้เพื่อระบุชื่อแอตทริบิวต์ทั้งหมดของวัตถุ:
การคัดลอกรหัสมีดังนี้:
สำหรับ (ตัวแปรในวัตถุ)
คำแถลง
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var obj = {
A: 1,
B: 2,
C: 3
-
สำหรับ (ชื่อ var ใน OBJ)
console.log (ชื่อ);
ควรสังเกตว่าเราใช้วิธี HasownProperty เพื่อตรวจสอบว่าชื่อคุณสมบัติเป็นของวัตถุหรือพบในห่วงโซ่ต้นแบบ (ห่วงโซ่ต้นแบบต้นแบบจะถูกนำมาใช้ในบทความถัดไป):
การคัดลอกรหัสมีดังนี้:
สำหรับ (var ใน obj) {
if (obj.hasownproperty (var)) {
-
-
-
คำสั่งคืน
คำสั่ง Return ใช้เพื่อให้ฟังก์ชันส่งคืนค่า หากฟังก์ชั่นไม่ได้ใช้ return อย่างชัดเจนมันจะกลับมาที่ไม่ได้กำหนด:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น f () {}
var v = f (); // v === ไม่ได้กำหนด
ได้
?: มีตัวดำเนินการแบบมีเงื่อนไขในภาษาการเขียนโปรแกรมหลายภาษา เมื่อตัวถูกดำเนินการแรกเป็นจริงผู้ประกอบการจะส่งคืนค่าของตัวถูกดำเนินการที่สองมิฉะนั้นค่าของตัวถูกดำเนินการที่สามจะถูกส่งคืน ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชัน abs () {
กลับ x> 0? x: -x;
-
ผู้ประกอบการประเภท
ตัวดำเนินการ typeof ใช้เพื่อรับประเภทของตัวแปรและค่าคืนรวมถึง:
1.'Number '
2.'String '
3.'Boolean '
4.'undefined '
5.'function '
6.'Object '
ผลลัพธ์ที่ส่งคืนโดยประเภทพิเศษของ null คือ 'วัตถุ' ตัวอย่างเกี่ยวกับ typeof:
การคัดลอกรหัสมีดังนี้:
var a = typeof 'hello'; // a === 'สตริง'
var b = typeof null; // b === 'วัตถุ'
+ โอเปอเรเตอร์
ตัวดำเนินการ + สามารถใช้ใน JavaScript สำหรับการดำเนินการเพิ่มเติมหรือการต่อสตริง:
การคัดลอกรหัสมีดังนี้:
message var = 'hello' + 'world'; // message === 'helloWorld'
&& และ || ผู้ประกอบการ
ตัวดำเนินการ && ผู้ประกอบการส่งคืนค่าของตัวถูกดำเนินการแรกเมื่อตัวถูกดำเนินการแรกเป็นเท็จมิฉะนั้นจะส่งคืนค่าของตัวถูกดำเนินการที่สอง
- ผู้ประกอบการส่งคืนค่าของตัวถูกดำเนินการแรกเมื่อตัวถูกดำเนินการแรกเป็นจริงมิฉะนั้นจะส่งคืนค่าของตัวถูกดำเนินการที่สอง
การคัดลอกรหัสมีดังนี้:
var a = 1 && true; // a === จริง
var b = 1 || เท็จ; // b === 1
- สำนวน:
การคัดลอกรหัสมีดังนี้:
ชื่อ = ชื่อ || 'ไม่ทราบ'; // ตั้งค่าเริ่มต้น 'ไม่ทราบ' สำหรับชื่อ