บทนี้สรุปสั้น ๆ เกี่ยวกับคุณสมบัติของ JavaScript ที่เราได้เรียนรู้ไปแล้ว โดยให้ความสนใจเป็นพิเศษกับช่วงเวลาที่ละเอียดอ่อน
คำสั่งคั่นด้วยเครื่องหมายอัฒภาค:
alert('สวัสดี'); alert('โลก');โดยปกติแล้ว ตัวแบ่งบรรทัดจะถือเป็นตัวคั่นด้วย ดังนั้นจึงใช้ได้เช่นกัน:
alert('สวัสดี')
alert('โลก')นั่นเรียกว่า "การแทรกอัฒภาคอัตโนมัติ" บางครั้งมันก็ไม่ได้ผล เช่น
alert("จะมีข้อผิดพลาดเกิดขึ้นหลังจากข้อความนี้")
[1, 2].forEach(แจ้งเตือน)แนวทางการเขียนโค้ดส่วนใหญ่ยอมรับว่าเราควรใส่เครื่องหมายอัฒภาคหลังแต่ละคำสั่ง
ไม่จำเป็นต้องใช้เครื่องหมายอัฒภาคหลังจากโค้ดบล็อก {...} และโครงสร้างไวยากรณ์มีเครื่องหมายอัฒภาคเหมือนลูป:
ฟังก์ชัน ฉ() {
// ไม่ต้องใช้เครื่องหมายอัฒภาคหลังจากการประกาศฟังก์ชัน
-
สำหรับ(;;) {
// ไม่ต้องใช้เครื่องหมายอัฒภาคหลังการวนซ้ำ
-…แต่แม้ว่าเราจะใส่เครื่องหมายอัฒภาค “พิเศษ” ที่ไหนสักแห่งได้ นั่นก็ไม่ใช่ข้อผิดพลาด มันจะถูกละเลย
เพิ่มเติมใน: โครงสร้างโค้ด
หากต้องการเปิดใช้งานคุณลักษณะทั้งหมดของ JavaScript สมัยใหม่อย่างสมบูรณ์ เราควรเริ่มสคริปต์ด้วย "use strict"
'ใช้อย่างเข้มงวด'; -
คำสั่งจะต้องอยู่ที่ด้านบนของสคริปต์หรือที่จุดเริ่มต้นของเนื้อหาของฟังก์ชัน
หากไม่มี "use strict" ทุกอย่างยังคงใช้งานได้ แต่ฟีเจอร์บางอย่างทำงานในลักษณะ "เข้ากันได้" ที่ล้าสมัย โดยทั่วไปแล้วเราชอบพฤติกรรมสมัยใหม่มากกว่า
คุณสมบัติสมัยใหม่บางอย่างของภาษา (เช่น ชั้นเรียนที่เราจะศึกษาในอนาคต) เปิดใช้งานโหมดเข้มงวดโดยปริยาย
เพิ่มเติมใน: โหมดสมัยใหม่ "ใช้อย่างเข้มงวด"
สามารถประกาศได้โดยใช้:
let
const (คงที่, ไม่สามารถเปลี่ยนแปลงได้)
var (แบบเก่าจะดูทีหลัง)
ชื่อตัวแปรอาจรวมถึง:
ตัวอักษรและตัวเลข แต่อักขระตัวแรกต้องไม่ใช่ตัวเลข
อักขระ $ และ _ เป็นเรื่องปกติ เทียบเท่ากับตัวอักษร
อนุญาตให้ใช้ตัวอักษรและอักษรอียิปต์โบราณที่ไม่ใช่ภาษาละตินได้ แต่โดยทั่วไปจะไม่ใช้
ตัวแปรถูกพิมพ์แบบไดนามิก พวกเขาสามารถเก็บค่าใดๆ:
ให้ x = 5; x = "จอห์น";
มี 8 ประเภทข้อมูล:
number ทั้งจำนวนจุดลอยตัวและจำนวนเต็ม
bigint สำหรับจำนวนเต็มความยาวใดก็ได้
string สำหรับสตริง,
boolean สำหรับค่าตรรกะ: true/false ,
null – ประเภทที่มีค่าเดียว null หมายถึง “ว่างเปล่า” หรือ “ไม่มีอยู่”
undefined – ประเภทที่มีค่าเดียว undefined หมายถึง “ไม่ได้กำหนด”
object และ symbol – สำหรับโครงสร้างข้อมูลที่ซับซ้อนและตัวระบุที่ไม่ซ้ำกัน เรายังได้เรียนรู้สิ่งเหล่านี้
ตัวดำเนินการ typeof ส่งคืนประเภทของค่า โดยมีข้อยกเว้นสองประการ:
typeof null == "object" // ข้อผิดพลาดในภาษา
typeof function(){} == "function" // ฟังก์ชั่นได้รับการปฏิบัติเป็นพิเศษเพิ่มเติมใน: ตัวแปรและชนิดข้อมูล
เรากำลังใช้เบราว์เซอร์เป็นสภาพแวดล้อมการทำงาน ดังนั้นฟังก์ชัน UI พื้นฐานจะเป็น:
prompt(question, [default])
ถาม question และส่งคืนสิ่งที่ผู้เยี่ยมชมป้อนหรือ null หากพวกเขาคลิก "ยกเลิก"
confirm(question)
ถาม question และแนะนำให้เลือกระหว่างตกลงและยกเลิก ตัวเลือกจะถูกส่งกลับเป็น true/false
alert(message)
ส่ง message ออกมา
ฟังก์ชั่นทั้งหมดเหล่านี้เป็น โมดอล ซึ่งจะหยุดการเรียกใช้โค้ดชั่วคราวและป้องกันไม่ให้ผู้เยี่ยมชมโต้ตอบกับเพจจนกว่าพวกเขาจะตอบ
ตัวอย่างเช่น:
ให้ชื่อผู้ใช้ = prompt("ชื่อของคุณ?", "อลิซ");
ให้ isTeaWanted = ยืนยัน ("คุณต้องการชาบ้างไหม?");
alert( "ผู้เยี่ยมชม: " + ชื่อผู้ใช้ ); //อลิซ
alert( "ต้องการชา: " + isTeaWanted ); // จริงเพิ่มเติมใน: การโต้ตอบ: แจ้งเตือน แจ้ง ยืนยัน
JavaScript รองรับโอเปอเรเตอร์ต่อไปนี้:
เลขคณิต
ปกติ: * + - / , % สำหรับส่วนที่เหลือและ ** สำหรับยกกำลังของตัวเลขด้วย
ไบนารีบวก + เชื่อมต่อสตริง และถ้าตัวถูกดำเนินการตัวใดตัวหนึ่งเป็นสตริง อีกตัวหนึ่งจะถูกแปลงเป็นสตริงด้วย:
การแจ้งเตือน( '1' + 2 ); // '12', สตริง การแจ้งเตือน( 1 + '2' ); // '12', สตริง
การมอบหมายงาน
มีการมอบหมายง่ายๆ: a = b และการรวมเช่น a *= 2
ระดับบิต
ตัวดำเนินการ Bitwise ทำงานกับจำนวนเต็ม 32 บิตที่ระดับบิตต่ำสุด: ดูเอกสารเมื่อจำเป็น
มีเงื่อนไข
ตัวดำเนินการเดียวที่มีสามพารามิเตอร์: cond ? resultA : resultB หาก cond เป็นความจริง จะส่งกลับ resultA มิฉะนั้น resultB
ตัวดำเนินการเชิงตรรกะ
ตรรกะ AND && และ หรือ || ทำการประเมินการลัดวงจรแล้วส่งคืนค่าที่หยุด (ไม่จำเป็น true / false ) ตรรกะไม่ ! แปลงตัวถูกดำเนินการเป็นประเภทบูลีนและส่งกลับค่าผกผัน
ตัวดำเนินการรวมตัวแบบ Nullish
?? โอเปอเรเตอร์มีวิธีการเลือกค่าที่กำหนดจากรายการตัวแปร ผลลัพธ์ของ a ?? b คือ a เว้นแต่มันจะเป็น null/undefined แล้ว b
การเปรียบเทียบ
การตรวจสอบความเท่าเทียมกัน == สำหรับค่าประเภทต่าง ๆ จะแปลงเป็นตัวเลข (ยกเว้น null และ undefined ซึ่งเท่ากันและไม่มีอะไรอื่นใด) ดังนั้นค่าเหล่านี้จึงเท่ากัน:
การแจ้งเตือน ( 0 == เท็จ ); // จริง การแจ้งเตือน ( 0 == '' ); // จริง
การเปรียบเทียบอื่นๆ จะแปลงเป็นตัวเลขเช่นกัน
ตัวดำเนินการความเสมอภาคแบบเข้มงวด === จะไม่ทำการแปลง เนื่องจากประเภทที่ต่างกันหมายถึงค่าที่ต่างกันเสมอ
ค่า null และ undefined เป็นค่าพิเศษ: มีค่าเท่ากัน == ซึ่งกันและกันและไม่เท่ากับค่าอื่นใด
การเปรียบเทียบมาก/น้อยจะเปรียบเทียบสตริงทีละอักขระ ส่วนประเภทอื่นๆ จะถูกแปลงเป็นตัวเลข
ผู้ประกอบการรายอื่น
มีอีกสองสามอย่าง เช่น ตัวดำเนินการลูกน้ำ
เพิ่มเติมใน: ตัวดำเนินการพื้นฐาน คณิตศาสตร์ การเปรียบเทียบ ตัวดำเนินการเชิงตรรกะ ตัวดำเนินการรวมศูนย์ '??'
เราครอบคลุมลูป 3 ประเภท:
// 1
ในขณะที่ (เงื่อนไข) {
-
-
// 2
ทำ {
-
} ในขณะที่ (เงื่อนไข);
// 3
สำหรับ (ให้ i = 0; i < 10; i ++) {
-
- ตัวแปรที่ประกาศในลูป for(let...) จะมองเห็นได้เฉพาะภายในลูปเท่านั้น แต่เรายังสามารถ let และนำตัวแปรที่มีอยู่กลับมาใช้ใหม่ได้
คำสั่ง break/continue อนุญาตให้ออกจากการวนซ้ำทั้งหมด/ปัจจุบัน ใช้ป้ายกำกับเพื่อแยกลูปที่ซ้อนกัน
รายละเอียดใน: ลูป: while และ for.
ต่อไปเราจะศึกษาลูปประเภทต่างๆ มากขึ้นเพื่อจัดการกับวัตถุ
โครงสร้าง "สวิตช์" สามารถแทนที่ได้หลายรายการ if ตรวจสอบ ใช้ === (ความเสมอภาคที่เข้มงวด) ในการเปรียบเทียบ
ตัวอย่างเช่น:
ให้อายุ = prompt ('อายุของคุณ?', 18);
สวิตช์ (อายุ) {
กรณีที่ 18:
alert("ใช้งานไม่ได้"); // ผลลัพธ์ของ prompt เป็นสตริง ไม่ใช่ตัวเลข
หยุดพัก;
กรณี "18":
alert("ใช้งานได้!");
หยุดพัก;
ค่าเริ่มต้น:
alert("ค่าใดๆ ที่ไม่เท่ากับค่าข้างบน");
-รายละเอียดใน: คำสั่ง "เปลี่ยน"
เราได้กล่าวถึงสามวิธีในการสร้างฟังก์ชันใน JavaScript:
การประกาศฟังก์ชัน: ฟังก์ชันในโฟลว์โค้ดหลัก
ผลรวมฟังก์ชัน (a, b) {
ให้ผลลัพธ์ = a + b;
ส่งคืนผลลัพธ์;
-Function Expression: ฟังก์ชันในบริบทของนิพจน์
ให้ผลรวม = ฟังก์ชั่น (a, b) {
ให้ผลลัพธ์ = a + b;
ส่งคืนผลลัพธ์;
-ฟังก์ชั่นลูกศร:
// นิพจน์ทางด้านขวา
ให้ผลรวม = (a, b) => a + b;
// หรือไวยากรณ์หลายบรรทัดด้วย { ... } ต้องส่งคืนที่นี่:
ให้ผลรวม = (a, b) => {
-
กลับ + b;
-
//ไม่มีข้อโต้แย้ง
ให้ sayHi = () => alert("Hello");
// ด้วยอาร์กิวเมนต์เดียว
ให้ double = n => n * 2;ฟังก์ชั่นอาจมีตัวแปรท้องถิ่น: ตัวแปรที่ประกาศภายในเนื้อหาหรือรายการพารามิเตอร์ ตัวแปรดังกล่าวจะมองเห็นได้เฉพาะภายในฟังก์ชันเท่านั้น
พารามิเตอร์สามารถมีค่าเริ่มต้นได้: function sum(a = 1, b = 2) {...}
ฟังก์ชั่นส่งคืนบางสิ่งเสมอ หากไม่มีคำสั่ง return ผลลัพธ์จะเป็น undefined
รายละเอียด: ดูฟังก์ชัน ฟังก์ชันลูกศร พื้นฐาน
นั่นเป็นรายการสั้นๆ ของฟีเจอร์ JavaScript ตอนนี้เราเรียนแต่พื้นฐานเท่านั้น นอกจากนี้ในบทช่วยสอน คุณจะพบกับความพิเศษและคุณสมบัติขั้นสูงเพิ่มเติมของ JavaScript