แนวคิดพื้นฐาน
javascript是一门解释型的语言,浏览器充当解释器。js执行引擎并不是一行一行的执行,而是一段一段的分析执行。สคริปต์ล่าช้า
แอตทริบิวต์การเลื่อนเวลาถูกกำหนดไว้ใน HTML4.0.1 ซึ่งใช้เพื่อระบุว่าสคริปต์จะไม่ส่งผลกระทบต่อการสร้างหน้าเว็บเมื่อดำเนินการ กล่าวอีกนัยหนึ่งสคริปต์จะล่าช้าจนกว่าหน้าทั้งหมดจะถูกแยกวิเคราะห์ก่อนการดำเนินการ ดังนั้นการตั้งค่าแอตทริบิวต์การเลื่อนเวลาในองค์ประกอบ <script> เทียบเท่ากับการบอกให้เบราว์เซอร์ดาวน์โหลดทันที แต่ล่าช้าการดำเนินการ ในเอกสาร XHTML ตั้งค่าแอตทริบิวต์การเลื่อนเวลาเป็น defer=“defer"
สคริปต์แบบอะซิงโครนัส
html5 กำหนดแอตทริบิวต์ ASYNC สำหรับ <Script> คุณสมบัติทั้งหมดคล้ายกับคุณสมบัติการเลื่อนเวลาและใช้เพื่อเปลี่ยนพฤติกรรมของสคริปต์การประมวลผล ในทำนองเดียวกันคล้ายกับการเลื่อนเวลา Async ทำงานกับไฟล์สคริปต์ภายนอกเท่านั้นและบอกให้เบราว์เซอร์ดาวน์โหลดไฟล์ทันที แต่แตกต่างจากการเลื่อนเวลาสคริปต์ที่ทำเครื่องหมายว่า Async ไม่รับประกันการดำเนินการตามลำดับที่ระบุไว้
วัตถุประสงค์ของการระบุ async คือการป้องกันไม่ให้หน้ารอไฟล์สคริปต์ที่จะดาวน์โหลดและดำเนินการซึ่งจะโหลดเนื้อหาอื่น ๆ ของหน้าแบบอะซิงโครนัส ดังนั้นขอแนะนำให้สคริปต์แบบอะซิงโครนัสไม่ทำงาน DOM ในระหว่างการโหลด
ตัวพิมพ์เล็ก
ทุกอย่างใน eCmascript (รวมถึงตัวแปรชื่อฟังก์ชั่นและตัวดำเนินการ) เป็นตัวพิมพ์ใหญ่
1. ตัวแปร JScript
ตัวแปรถูกตั้งค่าในหน่วยความจำเมื่อใช้ครั้งแรกดังนั้นจึงมีการอ้างอิงในภายหลังในสคริปต์ ประกาศก่อนใช้ตัวแปร การประกาศตัวแปรสามารถใช้งานได้โดยใช้คำหลัก VAR
var count, amount, level; // 用单个var 关键字声明的多个声明。
การตั้งชื่อตัวแปร
ชื่อตัวแปรรวมถึงตัวแปรส่วนกลางตัวแปรท้องถิ่นตัวแปรคลาสพารามิเตอร์ฟังก์ชัน ฯลฯ พวกเขาทั้งหมดอยู่ในหมวดหมู่นี้
การตั้งชื่อตัวแปรประกอบด้วยคำนำหน้าประเภท + คำที่มีความหมายและความสามารถในการอ่านของตัวแปรและฟังก์ชั่นจะเพิ่มขึ้นโดยการตั้งชื่ออูฐ ตัวอย่างเช่น: susername, ncount
ข้อกำหนดคำนำหน้า:
ตัวแปรท้องถิ่นแต่ละตัวต้องมีคำนำหน้าประเภทซึ่งสามารถแบ่งออกเป็น:
S: แสดงถึงสตริง ตัวอย่างเช่น: sname, shtml; N: หมายถึงตัวเลข ตัวอย่างเช่น: npage, ntotal; B: แสดงถึงตรรกะ ตัวอย่างเช่น: bchecked, bhaslogin; ตอบ: หมายถึงอาร์เรย์ ตัวอย่างเช่น: Alist, Agroup; R: แสดงถึงนิพจน์ทั่วไป ตัวอย่างเช่น: rdomain, remail; F: หมายถึงฟังก์ชั่น ตัวอย่างเช่น: fgethtml, finit; O: แสดงถึงวัตถุอื่น ๆ ที่ไม่ได้กล่าวถึงข้างต้นเช่น: Obutton, Odate; G: แสดงถึงตัวแปรระดับโลกเช่น: gusername, Glogintime;
JScript เป็นภาษาที่ไวต่อตัวพิมพ์ใหญ่ การสร้างชื่อตัวแปรที่ถูกกฎหมายควรเป็นไปตามกฎต่อไปนี้:
โปรดทราบว่าอักขระตัวแรกไม่สามารถเป็นตัวเลขได้
คุณสามารถติดตามตัวอักษรหรือหมายเลขและขีดเส้นใต้ได้ แต่ไม่ใช่ช่องว่าง
ชื่อตัวแปรจะต้องไม่เป็นคำที่สงวนไว้
javascript เป็นภาษาที่พิมพ์อย่างอ่อนแอและ JavaScript จะไม่สนใจช่องว่างที่ไม่จำเป็น คุณสามารถเพิ่มช่องว่างลงในสคริปต์เพื่อปรับปรุงความสามารถในการอ่าน
var เป็นคำที่สงวนไว้สำหรับ javascript ซึ่งระบุว่าต่อไปนี้เป็นคำอธิบายตัวแปรชื่อตัวแปรเป็นตัวระบุที่ผู้ใช้กำหนดและตัวแปรจะถูกคั่นด้วยเครื่องหมายจุลภาค
หากมีการประกาศตัวแปร แต่ไม่มีการกำหนดค่าตัวแปรจะมีอยู่และค่าของมันคือค่า JScript ที่ไม่ได้กำหนด
การแปลงประเภทแรง
ใน JScript การดำเนินการสามารถดำเนินการกับค่าประเภทต่าง ๆ โดยไม่ต้องกังวลเกี่ยวกับข้อยกเว้นจาก JScript Interpreter แต่ Interpreter JScript จะเปลี่ยน (CASTS) โดยอัตโนมัติประเภทหนึ่งของข้อมูลไปยังประเภทข้อมูลอื่นจากนั้นดำเนินการ ตัวอย่างเช่น:
ค่าผลลัพธ์การคำนวณจะถูกเพิ่มลงในสตริงและค่าหล่อลงในสตริง การเพิ่มค่าบูลีนลงในสตริงจะหล่อค่าบูลีนไปยังสตริง การเพิ่มค่าตัวเลขลงในค่าบูลีนจะทำให้ค่าบูลีนเป็นค่าตัวเลข
หากต้องการแปลงสตริงเป็นจำนวนเต็มอย่างชัดเจนให้ใช้วิธี parseInt หากต้องการแปลงสตริงเป็นตัวเลขอย่างชัดเจนให้ใช้วิธี parseFloat
อายุการใช้งานของตัวแปร JavaScript : เมื่อคุณประกาศตัวแปรภายในฟังก์ชั่นคุณสามารถเข้าถึงตัวแปรในฟังก์ชันนั้นเท่านั้น เมื่อออกจากฟังก์ชั่นตัวแปรนี้จะถูกเพิกถอน ตัวแปรนี้เรียกว่าตัวแปรท้องถิ่น คุณสามารถใช้ตัวแปรท้องถิ่นที่มีชื่อเดียวกันในฟังก์ชั่นที่แตกต่างกันเนื่องจากฟังก์ชั่นที่ประกาศตัวแปรเท่านั้นที่สามารถรับรู้ตัวแปรแต่ละตัว
หากคุณประกาศตัวแปรนอกฟังก์ชั่นฟังก์ชั่นทั้งหมดในหน้าสามารถเข้าถึงตัวแปรได้ อายุการใช้งานของตัวแปรเหล่านี้เริ่มต้นหลังจากที่มีการประกาศและสิ้นสุดเมื่อปิดหน้า
JS ตัวแปร MAP MAP
2. JS ประเภทข้อมูล
JScript มีสามประเภท -> ประเภทข้อมูลหลักสองประเภท -> ประเภทข้อมูลคอมโพสิตและสอง -> ประเภทข้อมูลพิเศษ
ชนิดข้อมูลหลัก (พื้นฐาน)
字符串数值布尔ชนิดข้อมูลคอมโพสิต (อ้างอิง)
对象数组ชนิดข้อมูลพิเศษ
Null`Undefined`ประเภทข้อมูลสตริง: ประเภทข้อมูลสตริงใช้เพื่อแสดงข้อความใน JScript ใน JS ในขณะที่ทั้งสองคำพูด ("") และคำพูดเดี่ยว ('') สามารถเป็นตัวแทนของสตริงได้พวกเขาแทบจะไม่มีความแตกต่าง แต่การใช้คำพูดสองเท่า ("") เพื่อระบุสตริงถือเป็นสิ่งที่ดีที่สุด
ค่าสตริงคือสตริงของศูนย์หรืออักขระ Unicode มากกว่า (ตัวอักษรตัวเลขและเครื่องหมายวรรคตอน) จัดเรียงร่วมกัน
Unicode คืออะไร?
Unicode ให้ค่าที่ไม่ซ้ำกันสำหรับตัวละครแต่ละตัวโดยไม่คำนึงถึงแพลตฟอร์มโปรแกรมหรือภาษา Unicode ได้รับการพัฒนาเพื่อให้การเข้ารหัสแบบครบวงจรสำหรับการประมวลผลตัวละครทั้งหมดที่มีอยู่ในโลก
ชนิดข้อมูลตัวเลข
เราจำเป็นต้องเข้าใจว่า JScript ภายในแสดงถึงค่าทั้งหมดเป็นค่าจุดลอยตัวดังนั้นจึงไม่มีความแตกต่างระหว่างจำนวนเต็มและค่าจุดลอยตัวใน JScript
ชนิดข้อมูลบูลีน
บูลีน (ตรรกะ) สามารถมีเพียงสองค่า: จริงหรือเท็จ
อาร์เรย์และวัตถุ JS
สำหรับรายละเอียดโปรดดูบทความของฉัน -> สรุปการเรียนรู้ JavaScript - อาร์เรย์และส่วนวัตถุ
ประเภทข้อมูล null: คุณสามารถล้างเนื้อหาของตัวแปรโดยการกำหนดค่า null ให้กับตัวแปร
ตัวดำเนิน typeof ใน JScript จะรายงานค่า null เป็นประเภท Object ไม่ใช่พิมพ์ null
<html xmlns = "http://www.w3.org/1999/xhtml" xml: lang = "en"> <head> <meta http-equiv = "content-type" type = "html; charset = utf-8"/> โมฆะ); </script> </head> <body> </body> </html>
null ใช้เพื่อเป็นตัวแทนของวัตถุที่ยังไม่ได้มีอยู่และมักจะใช้เพื่อเป็นตัวแทนของฟังก์ชั่นที่พยายามส่งคืนวัตถุที่ไม่มีอยู่
ประเภทข้อมูล Undefined :
ค่าที่ไม่ได้กำหนดจะถูกส่งคืนในสถานการณ์ต่อไปนี้:
对象属性不存在,声明了变量但从未赋值。ความแตกต่างระหว่าง null และ undefined
การแจ้งเตือน (typeof undefined); // output "undefined" การแจ้งเตือน (typeof null); // output "Object" Alert (null == undefined); // เอาต์พุต "จริง"
Ecmascript เชื่อว่า Undefined นั้นมาจาก Null ดังนั้นพวกเขาจึงถูกกำหนดให้เท่ากัน
การแจ้งเตือน (null === ไม่ได้กำหนด); // เอาต์พุต "เท็จ" การแจ้งเตือน (typeof null == typeof undefined); // เอาต์พุต "เท็จ"
null และ undefined นั้นแตกต่างกันในประเภทดังนั้นเอาต์พุต "เท็จ" และ === หมายถึงความเท่าเทียมกันสัมบูรณ์ที่นี่ null === เอาต์พุตที่ไม่ได้กำหนด
นอกจากนี้นี่คือประเภทข้อมูลที่สำคัญกว่า - ชนิดข้อมูลอ้างอิง
ประเภทข้อมูลอ้างอิง
ชนิดข้อมูลอ้างอิง JavaScript เป็นวัตถุที่เก็บไว้ในหน่วยความจำฮีป JavaScript ไม่อนุญาตให้เข้าถึงตำแหน่งและการทำงานของพื้นที่หน่วยความจำฮีปโดยตรง สามารถใช้งานที่อยู่อ้างอิงของวัตถุในหน่วยความจำสแต็กเท่านั้น ดังนั้นข้อมูลประเภทการอ้างอิงจะถูกเก็บไว้ในหน่วยความจำสแต็กเป็นที่อยู่อ้างอิงของวัตถุในหน่วยความจำฮีป ที่อยู่อ้างอิงนี้ช่วยให้คุณค้นหาวัตถุที่เก็บไว้ในหน่วยความจำฮีปได้อย่างรวดเร็ว
มาสาธิตกระบวนการกำหนดประเภทข้อมูลอ้างอิง
แน่นอนการเพิ่มแอตทริบิวต์ชื่อลงใน OBJ2 นั้นเป็นการเพิ่มแอตทริบิวต์ชื่อให้กับวัตถุในหน่วยความจำฮีป OBJ2 และ OBJ1 บันทึกเฉพาะที่อยู่อ้างอิงของวัตถุหน่วยความจำฮีปในหน่วยความจำสแต็ก แม้ว่าพวกเขาจะถูกคัดลอกไป แต่วัตถุที่ชี้ไปก็เหมือนกัน ดังนั้นการเปลี่ยน OBJ2 ทำให้เกิดการเปลี่ยนแปลงของ OBJ1
ค่าประเภทพื้นฐานอ้างถึงส่วนข้อมูลอย่างง่ายที่เก็บไว้ในหน่วยความจำสแต็กเช่นตำแหน่งที่เก็บค่าดังกล่าวไว้ในหน่วยความจำอย่างสมบูรณ์
ค่าประเภทการอ้างอิงหมายถึงวัตถุเหล่านั้นที่เก็บไว้ในหน่วยความจำฮีปนั่นคือตัวแปรนั้นเป็นเพียงตัวชี้ซึ่งชี้ไปที่ตำแหน่งอื่นในหน่วยความจำที่บันทึกวัตถุ
ในระยะสั้นหน่วยความจำฮีปจะเก็บค่าอ้างอิงและหน่วยความจำสแต็กจะเก็บค่าประเภทคงที่
ใน ECMAScript ตัวแปรสามารถมีค่าสองประเภท ได้แก่ ค่าดั้งเดิมและค่าอ้างอิง
ส่วนที่ง่ายของข้อมูลที่เก็บค่าดั้งเดิมไว้ใน stack นั่นคือค่าของพวกเขาจะถูกเก็บไว้โดยตรงที่ตำแหน่งที่มีการเข้าถึงตัวแปร วัตถุอ้างอิงที่เก็บไว้ในฮีป ( heap ) นั่นคือค่าที่เก็บไว้ที่ตัวแปรคือตัวชี้ ( point ) ที่ชี้ไปที่หน่วยความจำที่เก็บวัตถุไว้
<script type = "text/javascript"> var box = new Object (); // สร้างกล่องประเภทอ้างอิง var = "lee"; // ค่าประเภทพื้นฐานคือกล่องสตริง = 23; // มันแปลกที่จะเพิ่มแอตทริบิวต์ให้กับค่าประเภทพื้นฐานเนื่องจากวัตถุเท่านั้นสามารถเพิ่มแอตทริบิวต์ การแจ้งเตือน (box.age); // ไม่ใช่ประเภทอ้างอิงและไม่สามารถส่งออกได้ </script>
3. JScript ตัวดำเนินการ
ลำดับความสำคัญ: หมายถึงลำดับการดำเนินงานของผู้ประกอบการ ในแง่ของคนธรรมดามันคือการคำนวณส่วนใดของการดำเนินการก่อน
การรวมกัน: ลำดับการคำนวณของตัวดำเนินการลำดับความสำคัญเดียวกันในแง่ของคนธรรมดาคือมันเป็นไปตามทิศทางที่จะคำนวณไม่ว่าจะจากซ้ายไปขวาหรือขวาไปซ้าย
การแปลงชนิดข้อมูล
สตริง () ไปยังประเภทสตริง
number () แปลงเป็นประเภทตัวเลข
บูลีน () ไปยังประเภทบูลีน
parseInt : แปลงสตริงเป็นจำนวนเต็ม เริ่มแยกวิเคราะห์จากจุดเริ่มต้นของสตริงหยุดการแยกวิเคราะห์ที่ตำแหน่งที่ไม่ใช่จำนวนเต็มแรกและส่งคืนจำนวนเต็มทั้งหมดที่อ่านมาก่อน หากสตริงไม่เริ่มต้นด้วยจำนวนเต็ม NAN จะถูกส่งคืน ตัวอย่างเช่น: ค่าที่ส่งคืนโดย ParseInt ("150 HI") คือ: 150 และค่าที่ส่งคืนโดย ParseInt ("HI") คือ: NAN
parseFloat : แปลงสตริงเป็นหมายเลขจุดลอยตัว เริ่มแยกวิเคราะห์จากจุดเริ่มต้นของสตริงหยุดการแยกวิเคราะห์ที่ตำแหน่งที่ไม่ใช่จำนวนเต็มแรกและส่งคืนจำนวนเต็มทั้งหมดที่อ่านมาก่อน หากสตริงไม่เริ่มต้นด้วยจำนวนเต็ม NAN จะถูกส่งคืน ตัวอย่างเช่น: parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。
eval:将字符串作为javascript表达式进行计算,并返回执行结果,如果没有结果则返回undefined。4.JS การควบคุมกระบวนการ
สำหรับคำสั่งควบคุมกระบวนการ JS นี่เป็นเรื่องยากที่จะเข้าใจ ฉันจะไม่เข้าไปดูรายละเอียดเกี่ยวกับคนอื่น แผนที่ความคิดติดอยู่ด้านล่าง
1. สำหรับ ... ในคำสั่งดำเนินการหนึ่งข้อความขึ้นไปที่สอดคล้องกับแต่ละวัตถุหรือแต่ละองค์ประกอบของอาร์เรย์
สำหรับ (ตัวแปรในคำสั่ง [Object | Array])
พารามิเตอร์:
variable : ตัวเลือกที่ต้องการ ตัวแปรที่สามารถเป็นแอตทริบิวต์ของวัตถุหรือองค์ประกอบใด ๆ ของอาร์เรย์
object array : ไม่บังคับ วัตถุหรืออาร์เรย์เพื่อสำรวจมัน
statement : ไม่บังคับ คำสั่งหนึ่งคำหรือมากกว่าที่จะดำเนินการเมื่อเทียบกับแต่ละคุณสมบัติของวัตถุหรือแต่ละองค์ประกอบของอาร์เรย์ มันอาจเป็นคำสั่งผสม
แม้ว่าคำสั่งควบคุมแบบมีเงื่อนไข (เช่นคำสั่ง) จำเป็นต้องใช้บล็อกรหัสเฉพาะเมื่อมีการดำเนินการหลายคำสั่ง (เริ่มต้นที่รั้งซ้าย "{" และสิ้นสุดที่รั้งด้านขวา "}") แนวทางปฏิบัติที่ดีที่สุดคือการใช้บล็อกโค้ดเสมอ
ถ้า (args) แจ้งเตือน (args); // ง่ายต่อข้อผิดพลาดถ้า (args) {alert (args); // แนะนำให้ใช้}แผนที่ควบคุมกระบวนการ JS
5.JS ฟังก์ชั่น
ฟังก์ชั่นเป็นบล็อกของรหัสที่ใช้ซ้ำได้ซึ่งขับเคลื่อนโดยเหตุการณ์หรือดำเนินการเมื่อมีการเรียก
Jscript รองรับสองฟังก์ชั่น: หนึ่งคือฟังก์ชั่นภายในภาษาและอื่น ๆ ถูกสร้างขึ้นด้วยตัวเอง
ฟังก์ชั่น JavaScript อนุญาตให้ไม่มีพารามิเตอร์ (แต่ไม่สามารถละเว้นพารามิเตอร์ที่มีพารามิเตอร์) และพารามิเตอร์สามารถส่งผ่านไปยังฟังก์ชั่นสำหรับการใช้งานโดยฟังก์ชั่น
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชั่นกรุณาเยี่ยมชมบทความอื่นของบทความของฉัน: บทสรุปของฟังก์ชันฟังก์ชันการเรียนรู้ JavaScript (IV)
องค์ประกอบของวัตถุ
วิธี - ฟังก์ชั่น: ขั้นตอน, คุณสมบัติแบบไดนามิก - ตัวแปร: สถานะ, คงที่
ในที่สุดแผนที่จิตใจสรุปโดยผู้อาวุโส: