วิธีเริ่มต้นใช้งาน VUE3.0 อย่างรวดเร็ว: ป้อนและเรียนรู้
คำแนะนำที่เกี่ยวข้อง: บทช่วยสอน JavaScript
ที่ทำงานในเบราว์เซอร์ไคลเอ็นต์ เบราว์เซอร์ทุกตัวมีภาษาสคริปต์กลไกการแยกวิเคราะห์ JavaScript: ไม่จำเป็นต้องคอมไพล์ แต่เบราว์เซอร์สามารถแยกวิเคราะห์และดำเนินการได้โดยตรง โดยสามารถปรับปรุงกระบวนการโต้ตอบระหว่างผู้ใช้และหน้า HTML ควบคุมองค์ประกอบ HTML และทำให้หน้าเป็นแบบไดนามิก . ผลกระทบและปรับปรุงประสบการณ์ผู้ใช้
ในปี 1992 Nombase ได้พัฒนาภาษาสคริปต์ฝั่งไคลเอ็นต์ตัวแรกที่ใช้สำหรับการตรวจสอบแบบฟอร์มโดยเฉพาะ ชื่อ: C-- เปลี่ยนชื่อในภายหลัง: ScriptEase
ในปี 1995 Netscape ได้พัฒนาภาษาสคริปต์ฝั่งไคลเอ็นต์: LiveScript ต่อมาผู้เชี่ยวชาญจาก SUN ได้รับเชิญให้แก้ไข LiveScript และตั้งชื่อเป็น JavaScript
ในปี 1996 Microsoft คัดลอก JavaScript และพัฒนาภาษา JScript
ในปี 1997 ECMA (สมาคมผู้ผลิตคอมพิวเตอร์แห่งยุโรป) ได้สร้างมาตรฐานสำหรับภาษาสคริปต์ฝั่งไคลเอ็นต์: ECMAScript ซึ่งรวมวิธีการเข้ารหัสของภาษาสคริปต์ฝั่งไคลเอ็นต์ทั้งหมด
JavaScript = ECMAScript + สิ่งพิเศษของ JavaScript (BOM+DOM)
JavaScript
ข. ตามวัตถุ
ค. ขับเคลื่อนด้วยเหตุการณ์
ง. ประเภทอ่อนแอ
จ. มีความปลอดภัยสูง
ฉ. การอ้างอิงข้ามแพลตฟอร์ม
หากคุณต้องการแทรก JavaScript ลงในหน้า HTML โปรดใช้แท็ก <script>
<script> 和</script>
บอก JavaScript ว่าจะเริ่มต้นและสิ้นสุดที่ไหน
บรรทัดของโค้ดระหว่าง <script> 和</script>
มี JavaScript
<script type="text/javascript" src="${request.contextPath}/static/js/homepage.js"></script>
window.alert()document.write()innerHTML console.log()
จากการใช้งานส่วนตัว console.log()
จะสะดวกกว่าในการเขียนโปรแกรม คุณสามารถดูเนื้อหาเอาต์พุตได้โดยตรงผ่านคอนโซล
// นี่คือรหัส: ความคิดเห็นประโยคเดียว โดยปกติจะเป็นปุ่ม Ctrl + L ในตัวแก้ไข
/* นี่คือโค้ด*/: ความคิดเห็นแบบหลายบรรทัด โดยปกติแล้วจะใช้ปุ่ม Ctrl + Shift + L ในตัวแก้ไข
// ประกาศตัวแปรชื่อการทดสอบ var test;
var age, name, sex;//ประกาศตัวแปรอายุ ชื่อ และเพศ 3 ตัว
//ประกาศตัวแปรพร้อมกันและกำหนดค่า var age = 10, name = "Xiaoqiang", sex = "1 2.1.2
1. ประกอบด้วยตัวอักษร ตัวเลข ขีดล่าง และสัญลักษณ์ ไม่สามารถขึ้นต้นด้วยตัวเลขได้
2. ไม่สามารถใช้คำหลักได้ เช่น ในขณะที่
3. ข้อกำหนดเฉพาะตัวพิมพ์: วิธีการเขียนแบบเดิมๆ
1. ชื่อตัวแปรจะต้องมีความหมาย
2. ปฏิบัติตามระบบการตั้งชื่อแบบตัวพิมพ์ใหญ่ของอูฐ อักษรตัวแรกของคำต่อไปนี้เป็นตัวพิมพ์ใหญ่ เช่น ชื่อผู้ใช้
Number类型、String类型、Boolean类型、Undefined类型、Null类型、Object类型
ประเภทตัวเลขดิจิทัล: ประกอบด้วยจำนวนเต็มและทศนิยมและสามารถแสดงเป็น: ทศนิยม ฐานแปด เลขฐานสิบหก
เช่น:
var num = 10; //ทศนิยม var num1 = 012; //เลขฐานแปด var num2 = ox123; //
ช่วงค่าเลขฐานสิบหก:
console.log(Number.MAX_VALUE); //ค่าสูงสุดคือ 5e-324console.log(Number.MIN_VALUE); //ค่าต่ำสุดคือ 1.7976931348623157e+308 Infinity: Infinity: -
การตัดสินเชิงตัวเลขแบบอนันต์ไม่สามารถใช้ทศนิยมในการตรวจสอบทศนิยม และไม่ใช้ NaN เพื่อตรวจสอบว่าเป็น NaN หรือไม่ (NaN----ไม่ใช่ตัวเลข) แต่คุณสามารถใช้ isNaN ได้ — ไม่ใช่ คือผลลัพธ์ของตัวเลข NaN หรือไม่?
เช่น:
var num; //ประกาศตัวแปร, console.log ที่ยังไม่ได้กำหนด(isNaN(num)); // เป็นตัวเลขไม่จริงใช่ไหม? ผลลัพธ์ที่ได้จะเป็นจริง
สตริงอักขระหลีกสตริง:
อักขระ | ลำดับหลีกหนี |
---|---|
bbackspace | |
fpaper | feed |
nline | feed |
rcarrier | return |
แท็บแนวนอน (Ctrl-I) | |
' | single quotes |
" | Double quotes |
double slashes |
เช่น:
var str = "ฉันเป็น pm\"console.log(str); // ฉัน pm
การต่อสตริง:
var str1 = "Mr.";var str2 = "Hello";console.log(str1+str2); // สวัสดีครับ
ถ้าผลลัพธ์ของการประกบสตริงและตัวเลขเป็นผลของการประกบสตริงดังที่แสดงไว้ด้านบน
ประเภท Boolean Boolean ทั้งสองแอตทริบิวต์นั้น true/false
ไม่ได้กำหนด หมายถึงตัวแปรที่ได้รับ ประกาศโดยไม่มีการกำหนด ตัวแปร เมื่อประกาศเท่านั้น ค่าดีฟอลต์จะเป็น undefinition
ตัวอย่างเช่น:
var num;console.log(num); // undefinition
หาก
ค่าของตัวแปรเป็น null จะต้องตั้งค่าด้วยตนเอง
, Number() สามารถแปลงค่าใดๆ ให้เป็นค่าตัวเลขได้ หากมีอักขระในสตริงที่จะแปลงซึ่งไม่ใช่ค่าตัวเลข ระบบจะส่งกลับ NaN
ตัวอย่างเช่น:
var num1 = Number("10");console.log(num1); // 10var num2 = Number('10adbdn');console.log(num2); //NaNvar num3 = Number("10.78");console.log(num3); //10.78var num4 = Number('10.65dd');console.log(num4); //NaNvar num5 = ตัวเลข("a10");console.log(num5); //NaN
(2), parseInt() แปลงเป็นจำนวนเต็ม เช่น:
var num1 = parseInt("10");console.log(num1); // 10var num2 = parseInt('10adbdn');console.log(num2); //10var num3 = parseInt("10.78");console.log(num3); //10var num4 = parseInt('10.65dd');console.log(num4); //10var num5 =parseInt("a10");console.log(num5); //NaN
(3) แปลง parseFloat() เป็นทศนิยม เช่น:
var num1 = parseFloat("10");console.log(num1); // 10var num2 = parseFloat('10adbdn');console.log(num2); //10var num3 = parseFloat("10.78");console.log(num3); //10var num4 = parseFloat('10.65dd');console.log(num4); //10var num5 = parseFloat("a10");console.log(num5);
ความแตกต่างระหว่าง (4), Number(), parseInt() และ parseFloat()
Number() เข้มงวดกว่า parseInt() และ parseFloat()
parseInt() คล้ายกับ parseFloat() parseFloat จะแยกวิเคราะห์อันแรก เมื่อเจออันที่สองหรือไม่ใช่ตัวเลข
(1), toString()
ตัวอย่างเช่น:
var num = 10;console.log(num.toString()); // สตริง 10
(2), สตริง()
ตัวอย่างเช่น:
var num1 =5;console.log(String(num1)); // สตริง 5
(2), JSON.stringfy()
0, สตริงว่าง, null, ไม่ได้กำหนด, NaN จะถูกแปลงเป็นเท็จ ส่วนอื่นๆ จะถูกแปลงเป็นจริง
ตัวอย่างเช่น:
var num1 = Boolean(0);console.log(num1); // falsevar num2 = บูลีน("");console.log(num2); // falsevar num3 = บูลีน(null);console.log(num3); / falsevar num4 = บูลีน (ไม่ได้กำหนด);console.log(num4); // falsevar num5 = 10;var num6;console.log(บูลีน(num5+num6)); / false
ประเภทตัวดำเนินการ: ตัวดำเนินการทางคณิตศาสตร์, ตัวดำเนินการแบบผสม, ตัวดำเนินการเชิงสัมพันธ์, ตัวดำเนินการเชิงตรรกะ
(1), ตัวดำเนินการทางคณิตศาสตร์: "+" "-" "*" "/" "%"
นิพจน์ทางคณิตศาสตร์: นิพจน์ที่เชื่อมต่อกันด้วยตัวดำเนินการทางคณิตศาสตร์
(2) ตัวดำเนินการแบบผสม: "+=""-=""*=""/=""%="
นิพจน์การดำเนินการแบบผสม: นิพจน์ (3) เชื่อมต่อกันด้วยตัวดำเนินการแบบผสม
ตัวดำเนินการเชิงสัมพันธ์: ">""<"">=""<="" "" =""!=""!== "
นิพจน์การดำเนินการเชิงสัมพันธ์: นิพจน์ที่เชื่อมต่อกันด้วยตัวดำเนินการเชิงสัมพันธ์
นิพจน์การดำเนินการเชิงตรรกะ:(4) ตัวดำเนินการเชิงตรรกะ: "&&" "||" "!"
นิพจน์ 1 && นิพจน์ 2
เชื่อมต่อกันโดยตัวดำเนินการเชิงตรรกะ
หาก
รายการ
ใดรายการหนึ่งเป็นเท็จ ผลลัพธ์ทั้งหมดจะเป็นเท็จ
หากหนึ่งในนั้นเป็นจริง ผลลัพธ์ทั้งหมดจะเป็นเท็จ
! ผลลัพธ์ของนิพจน์เป็นจริง และผลลัพธ์ทั้งหมดจะเป็นเท็จ
ผลลัพธ์ของนิพจน์เป็นเท็จ และผลลัพธ์ทั้งหมดเป็นจริง
คือจากสูงไปต่ำ:
() ตัวดำเนินการเอกภาคที่มีลำดับความสำคัญสูงสุด ++ – !
ตัวดำเนินการทางคณิตศาสตร์คือ * / % แล้ว + -
ตัวดำเนินการเชิงสัมพันธ์ > >= < <=
ตัวดำเนินการความเท่าเทียมกัน == != === !==
ตัวดำเนินการเชิงตรรกะคือ && ตามด้วย ||
ตัวดำเนินการกำหนด
ฟังก์ชั่นใน JavaScript เป็นวัตถุ ออบเจ็กต์คือชุดของคู่ชื่อ/ค่า และมีการเชื่อมต่อกับออบเจ็กต์ต้นแบบที่ซ่อนอยู่ วัตถุที่สร้างโดยอ็อบเจ็กต์ลิเทอรัลเชื่อมต่อกับ Object.prototype วัตถุฟังก์ชันเชื่อมต่อกับ Function.prototype (ซึ่งตัวมันเองเชื่อมต่อกับ Object.prototype) แต่ละฟังก์ชันจะมีแอตทริบิวต์ที่ซ่อนอยู่สองรายการแนบมาเมื่อถูกสร้างขึ้น: บริบทของฟังก์ชันและโค้ดที่ใช้ลักษณะการทำงานของฟังก์ชัน
ฟังก์ชัน functionname() {นี่คือโค้ดที่จะดำเนินการ}
ไวยากรณ์:
วงเล็บสามารถรวมอาร์กิวเมนต์ที่คั่นด้วยเครื่องหมายจุลภาค:
(argument1, argument2, …)
โค้ดที่ดำเนินการโดยฟังก์ชันจะอยู่ภายในวงเล็บปีกกา: {}
ชื่อฟังก์ชัน(argument1, argument2, argument3) { Code to be Execution}
พารามิเตอร์ฟังก์ชันคือชื่อที่แสดงอยู่ในคำจำกัดความของฟังก์ชัน
อาร์กิวเมนต์ของฟังก์ชันคือค่าจริงที่ได้รับจากฟังก์ชันเมื่อมีการเรียกใช้
ฟังก์ชัน:
//สร้างฟังก์ชัน sumfunction ที่นี่ sum(num1, num2) { ผลลัพธ์ var = num1 + num2; console.log("num1 + num2 = " + result);}// ผลรวมการเรียกใช้ฟังก์ชัน (10, 20);
รันฟังก์ชันทันที:
$(function(){ //ไม่ใช่แค่ฟังก์ชัน เอาต์พุตตัวแปรทั้งหมด ฯลฯ ที่เขียนไว้ที่นี่คือการโหลดเพจและรันโดยตรง sum()})
2.7
ไวยากรณ์: Reg = /pattern/modifiers;
ความสม่ำเสมอตามตัวอักษรประกอบด้วยเครื่องหมายทับสองตัว// และกฎจะถูกเขียนหลังเครื่องหมายทับตัวแรก: /pattern[กฎสามารถเขียนตัวระบุปริมาณต่างๆ | ชุดคำ . หลังจากเครื่องหมายทับที่สอง ให้เขียนตัวระบุ /ตัวแก้ไข [g global match |. ฉันละเว้นตัวพิมพ์เล็กและใหญ่ |. ^ ตำแหน่งเริ่มต้น |
var Reg = /box/gi;
ตัวสร้าง ไวยากรณ์ Reg = new RegExp( pattern , modifiers );
รูปแบบ, ตัวแก้ไขเป็นสตริงในขณะนี้ ไม่ว่าคุณจะสร้างมันขึ้นมาด้วยวิธีใด มันก็จะเหมือนกัน เทมเพลตรูปแบบ เนื้อหาที่ตรงกัน และตัวแก้ไข
var Reg = new RegExp("box","gi");
เมธอด | นิพจน์ทั่วไปใน | |
---|---|---|
String String.match(Reg) | ส่งคืนอาร์เรย์ที่มีสตริงทั้งหมดที่ตรงกันโดย RegExp หรือ null | |
String.search | (Reg ) | ตำแหน่งที่สตริงการจับคู่ RegExp ปรากฏขึ้นครั้งแรก |
String.replace(Reg, newStr) | แทนที่ผลลัพธ์การจับคู่ RegExp ด้วย newStr และส่งกลับสตริงใหม่ | |
String.split(Reg) | ส่งคืนอาร์เรย์ที่สตริงถูกแยกตาม RegExp |
varที่ระบุ
STR = 'a1b2c3a4a5', reg = /a/g;console.log(str.match(reg)); //["a", "a", "a"]var str = 'a1b2c3a4a5', reg = /a/;console.log(str.search(reg)); //0var str = 'a1b2c3a4a5', reg = /a/g;console.log(str.replace(reg,function(){ console.log(อาร์กิวเมนต์); กลับ 5555;}));var str = 'a,b,c,d', reg = //,/g;//console.log(str.split(',')); //["a", "b", "c", "d"]console.log(str.split( reg)) //["a", "b", "c", "d"]
RegExp.exec | ( |
---|---|
String) | ทำการค้นหาที่ตรงกันในสตริงและส่งกลับผลลัพธ์ที่ตรงกันครั้งแรก Array |
RegExp.test(String) | ทดสอบการจับคู่รูปแบบในสตริงและส่งกลับค่าจริงหรือเท็จ |
ตัวแก้ไขเรียกอีกอย่างว่าตัวระบุและสามารถระบุรูปแบบการจับคู่เพื่อดำเนินการจับคู่แบบคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
ไม่สนใจการจับคู่ตัวพิมพ์เล็กและใหญ่
g จับคู่กันทั่วโลก หากไม่มี g ระบบจะจับคู่เฉพาะองค์ประกอบแรกเท่านั้น และไม่มีการจับคู่
m ทำการจับคู่แบบหลายบรรทัด
var patt = /pattern/i; // ละเว้นการจับคู่ตัวพิมพ์ใหญ่และเล็ก var patt = /pattern/m; // ทำการจับคู่แบบหลายบรรทัด
คืออักขระพิเศษที่มีความหมายพิเศษในนิพจน์ทั่วไป
อักขระการแปลพิเศษ /.
อักขระตัวเดียว ยกเว้นขึ้นบรรทัดใหม่ n และแท็บ r ตัวอักษรหลีก สัญลักษณ์หลีกที่มีความหมายพิเศษเป็นสัญลักษณ์ธรรมดา: .d ตัวเลข [0~9]D ไม่ใช่ตัวเลขs ช่องว่างS ไม่ใช่ช่องว่างw อักขระ [ตัวอักษร|ตัวเลข|ขีดล่าง]W ไม่ใช่- อักขระ b ขอบเขตคำ (ยกเว้น (คำ) ตัวอักษรและตัวเลข_ เป็นขอบเขตของคำทั้งหมด) B ขอบเขตที่ไม่ใช่คำ
var reg = /./;//match.var reg = /\/;//match var reg = / //;//Match /var str = '\';var reg = /\/g;console.log(reg.test(str)); //true
วัตถุวันที่เป็นวัตถุที่เกี่ยวข้องกับวันที่และเวลา เป็นแบบไดนามิกและคุณต้องใช้คีย์เวิร์ดใหม่เพื่อสร้างอินสแตนซ์ เช่น:
var Mydata=วันที่ใหม่();
ออบเจ็กต์ Date ไม่มีคุณสมบัติการเข้าถึงโดยตรง มีเพียงวิธีการรับและตั้งค่าวันที่ ดังแสดงในตารางต่อไปนี้
วัตถุสตริงเป็นวัตถุการประมวลผลสตริงที่จัดทำโดย JavaScript มันสามารถอ้างอิงได้หลังจากสร้างอินสแตนซ์วัตถุเท่านั้น โดยมีคุณสมบัติและวิธีการในการประมวลผลสตริง (คล้ายกับ Java)
ความยาวคุณสมบัติ — ส่งกลับจำนวนอักขระในสตริง
หมายเหตุ: ตัวอักษรจีนก็เป็นตัวละครด้วย! -
:
วิธีการทางคณิตศาสตร์:
ฟังก์ชันตรีโกณมิติ (sin(), cos(), tan(), asin(), acos(), atan(), atan2()) ส่งคืนค่าเป็นเรเดียน คุณสามารถแปลงเรเดียนเป็นองศาได้โดยการหาร Math.PI / 180 หรือด้วยวิธีอื่น
คำอธิบาย | วิธีการ |
---|---|
Math.abs(x) | ส่งกลับค่าสัมบูรณ์ของ x |
Math.acos | ( |
x) | ส่งกลับค่าโคไซน์ผกผัน |
ของ | x |
ส่วนโค้งของ x | |
โบ | |
ลิ | กไซน์ |
ผกผัน | ของ x |
ส่งคืนค่าไฮเปอร์โบลิกแทนเจนต์ผกผันของ x | |
Math.atan2(x, y) | ส่งคืนค่าอาร์กแทนเจนต์ของ y/x |
Math.cbrt(x) | ส่งคืนค่ารากที่สาม |
ของ | x Math.clz32 |
(x) | ส่งกลับค่าเลขศูนย์นำหน้าของจำนวนเต็ม 32 บิต |
Math.cos | |
(x) | ส่ง |
คืน | ค่าโคไซน์ของ x |
) | |
ส่ง | คืน Ex เมื่อ x เป็นอาร์กิวเมนต์และ E คือค่าคงที่ของออยเลอร์ (2.718…) ฐานของลอการิทึมธรรมชาติ |
Math.expm1(x) | ส่งคืนค่าของ exp(x)-1 |
ส่งกลับจำนวนเต็มที่มากที่สุดน้อยกว่า x | |
Math.fround(x) | ส่งกลับค่าทศนิยมทศนิยมเดี่ยวที่ใกล้ที่สุดของตัวเลข |
Math.hypot([x[,y[,…]]]) | ส่งกลับค่ารากที่สองของผลรวมของกำลังสองของ |
อาร์กิวเมนต์ x) | ส่งกลับผลลัพธ์ของการคูณจำนวนเต็ม 32 บิต |
Math.log(x) | ส่งกลับค่าลอการิทึมธรรมชาติ (loge หรือ ln) ของตัวเลข |
Math.log1p(x) | ส่งกลับค่าลอการิทึมธรรมชาติของ 1 + x (loge, |
) | |
ของตัวเลข | |
) | ส่ง |
กลับ | ค่าลอการิทึมฐาน 10 ของ x |
) | ส่งกลับค่าสูงสุดจาก 0 เป็นหลายค่า |
Math.min([x[,y[,…]]]) | ส่งกลับค่าต่ำสุดจาก 0 เป็นหลายค่า |
Math.pow(x,y) | ส่งกลับค่าของ x y ยกกำลัง |
Math.random() | ส่งกลับตัวเลขสุ่มหลอกระหว่าง 0 ถึง 1 อาจเท่ากับ 0 แต่ต้องน้อยกว่า 1 |
Math.round(x) | ส่งกลับค่าจำนวนเต็มปัดเศษ .round(-4.40) คือ -4 |
Math.sign(x) | ส่งคืนฟังก์ชันเครื่องหมายของ x ซึ่งกำหนดว่า x เป็นบวก ลบ หรือ 0 |
Math.sin(x) | ส่งกลับค่าไซน์ |
Math.sinh(x) | ส่งกลับค่าไฮเปอร์โบลิกไซน์ของ x |
( | |
) | ส่ง |
กลับ | ค่า |
ราก | ที่สองของ x |
) | ส่งกลับสตริง "Math" |
Math.trunc( x) | ส่งกลับส่วนจำนวนเต็มของ x โดยลบทศนิยมออก |
ตัวอย่างที่ 1: เขียนฟังก์ชันที่ส่งคืนจำนวนเต็มสุ่มจาก min ถึง max รวมถึง min แต่ไม่รวม
ฟังก์ชัน max getRandomArbitrary(min , สูงสุด) { return min + Math.random() * (max - min);}
ตัวอย่างที่ 2: เขียนฟังก์ชันเพื่อสร้างสตริงสุ่มที่มีความยาว n ช่วงค่าของอักขระสตริงประกอบด้วย 0 ถึง 9, a ถึง z, A ถึง Z
ฟังก์ชั่น getRandomInt (ต่ำสุด, สูงสุด) { กลับ min + Math.floor(Math.random() * (max - min + 1));}function RandomStr(n){ var dict = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; var str = ''; สำหรับ(i = 0; i < n;i++){ str += dict[getRandomInt(0,62)]; - return str;}var str = getRandStr(10);console.log(str);2.8.4.
การจำแนกประเภทของ
1. อาร์เรย์สองมิติ สาระสำคัญของอาร์เรย์สองมิติคือองค์ประกอบในอาร์เรย์ก็เป็นอาร์เรย์ด้วย
2
ของคอลัมน์ 2 และแถวที่ 1 ของ a.
อาร์เรย์แบบกระจายมีค่า เริ่มจาก 0 ดัชนีเริ่มต้นที่ไม่ต่อเนื่องกันของอาร์เรย์ ในอาร์เรย์แบบกระจาย โดยทั่วไปค่าแอตทริบิวต์ความยาวจะมีมากกว่าจำนวนองค์ประกอบจริง (ไม่ธรรมดา)
ตัวอย่าง
var a
= | |
[ | " |
a | " |
---|
>
แอตทริบิวต์ต้นแบบ | ส่งคืนการอ้างอิงถึงต้นแบบของประเภทวัตถุ |
แอตทริบิวต์ Constructor | แสดงถึงฟังก์ชันที่สร้างแอตทริบิวต์ |
1.length:
alert(arr.length); //Display the length of the array 10arr.length=15; /เพิ่มความยาวของอาร์เรย์ คุณลักษณะความยาวคือการแจ้งเตือนตัวแปร (arr.length ); //แสดงว่าความยาวของอาร์เรย์กลายเป็น 15
2.แอตทริบิวต์
ต้นแบบ แอตทริบิวต์ต้นแบบส่งคืนการอ้างอิงไปยังต้นแบบของประเภทวัตถุ คุณสมบัติต้นแบบเป็นเรื่องธรรมดาสำหรับวัตถุ
objectName.ต้นแบบ
พารามิเตอร์ objectName คือชื่อของวัตถุวัตถุ
คำอธิบาย: ใช้แอตทริบิวต์ต้นแบบเพื่อจัดเตรียมชุดฟังก์ชันพื้นฐานของคลาสของออบเจ็กต์ อินสแตนซ์ใหม่ของวัตถุ "สืบทอด" การดำเนินการที่กำหนดให้กับต้นแบบของวัตถุ
สำหรับออบเจ็กต์อาร์เรย์ ใช้ตัวอย่างต่อไปนี้เพื่อแสดงการใช้แอตทริบิวต์ต้นแบบ
เพิ่มวิธีการให้กับวัตถุอาร์เรย์ที่ส่งกลับค่าองค์ประกอบสูงสุดในอาร์เรย์ เพื่อให้บรรลุเป้าหมายนี้ ให้ประกาศฟังก์ชัน เพิ่มลงใน Array.prototype แล้วใช้งาน
ฟังก์ชั่น array_max( ){ var i, max = นี่[0]; สำหรับ (i = 1; i < this.length; i++){ ถ้า (สูงสุด < นี่ [i]) สูงสุด = นี่ [i]; - return max;}Array.prototype.max = array_max;var x = new Array(1, 2, 3, 4, 5, 6);var y = x.max( );
3.constructor คุณลักษณะ
แอตทริบิวต์ตัวสร้างแสดงถึงสิ่งที่สร้างขึ้น ฟังก์ชั่นวัตถุ
object.constructor //object คือชื่อของอ็อบเจ็กต์หรือฟังก์ชัน
คำอธิบาย: แอตทริบิวต์ Constructor เป็นสมาชิกของออบเจ็กต์ทั้งหมดที่มีต้นแบบ รวมถึงออบเจ็กต์ดั้งเดิมของ JScript ทั้งหมด ยกเว้นออบเจ็กต์ Global และ Math แอตทริบิวต์ Constructor เก็บการอ้างอิงถึงฟังก์ชันที่สร้างอินสแตนซ์ของวัตถุเฉพาะ
ตัวอย่างเช่น:
x = new String("Hi");if (x.constructor == String) // Process (เงื่อนไขเป็นจริง) //หรือฟังก์ชัน MyFunc {// เนื้อหาของฟังก์ชัน }y = new MyFunc;if (y.constructor == MyFunc) // กระบวนการ (เงื่อนไขเป็นจริง)
วิธีการอาร์เรย์ <br/> คำอธิบาย: ส่วนหนึ่งเป็นคุณลักษณะใหม่ของ ECMAScript5 (ไม่รองรับโดย IE678)
ฟังก์ชัน | วิธีการ |
---|---|
concat() | เชื่อมต่ออาร์เรย์สองตัวขึ้นไปและส่งกลับผลลัพธ์ |
ที่ | รวมองค์ประกอบของอาร์เรย์ ลงในสตริง |
pop() | ลบและส่งกลับองค์ประกอบสุดท้ายของอาร์เรย์ |
push() | เพิ่มองค์ประกอบตั้งแต่หนึ่งรายการขึ้นไปที่ส่วนท้ายของอาร์เรย์และส่งกลับความยาวใหม่ |
กลับ | รายการลำดับขององค์ประกอบในอาร์เรย์ |
shift() | ลบและ ส่งคืนองค์ประกอบแรกของอาร์เรย์ |
Slice() | เริ่มต้นจาก อาร์เรย์ที่มีอยู่ส่งคืนองค์ประกอบที่เลือก |
sort() | เรียงลำดับองค์ประกอบอาร์เรย์ |
splice() | ลบองค์ประกอบและเพิ่มองค์ประกอบใหม่ให้กับอาร์เรย์ |
toSource() | ส่งคืนซอร์สโค้ดของวัตถุ |
toString( ) | แปลงอาร์เรย์เป็นสตริงและส่งกลับผลลัพธ์ |
เป็น LocalString() | แปลงอาร์เรย์เป็นองค์ประกอบท้องถิ่นและส่งกลับผลลัพธ์ |
unshift | เพิ่มองค์ประกอบตั้งแต่หนึ่งรายการขึ้นไปที่จุดเริ่มต้นของอาร์เรย์และส่งกลับ |
ค่าความยาวใหม่ของ () | ส่งกลับค่าเดิมของอาร์เรย์ object |
forEach() | สำรวจอาร์เรย์ object |
map() | จับคู่อาเรย์ ทำ mapping |
filter() | filter |
every() | ตรวจสอบและตัดสิน |
บาง() | ตรวจสอบและตัดสิน |
ลด() | ดำเนินการบางอย่างเป็นคู่ |
ลดRight() | ดำเนินการจากขวาไปซ้าย |
indexOf() | เพื่อค้นหาองค์ประกอบบางอย่าง |
Array.isArray ([] ) | การพิจารณาว่าเป็นอาร์เรย์ |
ส่วนใหญ่จะอธิบายคุณสมบัติใหม่บางอย่าง
ที่เชื่อมต่อกัน
ฟังก์ชั่นของการเชื่อมต่อคือการประกบอาร์เรย์ ควรสังเกตว่าองค์ประกอบอาร์เรย์สามารถใช้เป็นองค์ประกอบที่เชื่อมต่อได้ ในกรณีนี้อาร์เรย์จะถูกทำให้แบนแล้วต่อเข้ากับองค์ประกอบอื่น ๆ เพื่อสร้างอาร์เรย์ใหม่ แต่จะไม่ถูกแบนสองครั้ง concat ไม่ได้แก้ไขอาร์เรย์ดั้งเดิม
ตัวอย่างเช่น:
var arr=[1,2,3,4,5];arr.concat([10,11],13);//[1,2,3,4,5,10,11,13] arr .concat([1,[2,3]]);//[1,2,3,4,5,1,[1,3]]
ชิ้น
สไลซ์ (a, b) a และ b สามารถหาจำนวนลบได้ ซึ่งหมายความว่าอาเรย์จะถูกตัดจากตำแหน่ง a ไปยังตำแหน่ง b ซึ่งเป็นช่วงปิดทางด้านซ้ายและเปิดทางด้านขวา A และ b สามารถเป็นค่าลบได้ ตัวเลข หากเป็นจำนวนลบ แสดงว่าองค์ประกอบ a/ b สุดท้าย
var arr=[1,2,3,4,5];arr.slice(1,3);//[2,3]arr ชิ้น(1);//[2,3,4, 5]arr.slice(1,-1);//[2,3,4]arr.slice(-4,-3);//[2 ]
ประกบกัน
splice จะลบองค์ประกอบและเพิ่มองค์ประกอบใหม่ให้กับอาร์เรย์
object.splice(a) ลบองค์ประกอบจากด้านซ้าย
object.splice(a, b) สกัดกั้นองค์ประกอบ b โดยเริ่มจากตำแหน่ง a
object.splice(a, b, c, d) สกัดกั้นองค์ประกอบ b ที่เริ่มต้นจากตำแหน่ง a และแทรกองค์ประกอบ c และ d ขึ้นไปลงในอาร์เรย์ดั้งเดิม ควรสังเกตว่า splice จะแก้ไขอาร์เรย์ดั้งเดิม
var arr=[1, 2 ,3,4,5];arr.splice(2);//[3,4,5]arr;//[1,2];อาร์เรย์ดั้งเดิมได้รับการแก้ไข var arr=[1,2,3 ,4 ,5];arr.splice(2,2);//[3,4]arr;//[1,2,5];var arr=[1,2,3,4,5];arr .splice (1,1,'a','b');//[2]arr;//[1,"a","b",3,4,5]
;
ฟังก์ชัน foreach() จะสำรวจอาร์เรย์ตั้งแต่ต้นจนจบ มีพารามิเตอร์ 3 ตัว ได้แก่ องค์ประกอบอาร์เรย์ ดัชนีขององค์ประกอบ และอาร์เรย์เอง
var arr = [1, 2, 3, 4, 5]; arr.forEach(function(x, index, a){//สอดคล้องกับ: array องค์ประกอบ ดัชนีขององค์ประกอบ อาร์เรย์เอง console.log(x + '|' + index + '|' + (a === arr));});// 1|0|true// 2| 1|จริง/ / 3|2|จริง// 4|3|จริง// 5|4|
ลดจริง()
ลด () ของอาร์เรย์ใช้ฟังก์ชันกับ [x1, x2, x3...] ของอาร์เรย์นี้ ฟังก์ชันนี้จะต้องได้รับพารามิเตอร์สองตัว ลด () ดำเนินการผลลัพธ์ต่อไปและดำเนินการคำนวณสะสมกับองค์ประกอบถัดไปของลำดับ คือ :
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
var arr = [1, 2, 3];var sum = arr.reduce ( ฟังก์ชั่น(x, y) { return x + y}, 0); //พารามิเตอร์ 0 เป็นทางเลือก ผ่านไปครั้งแรกคือค่าสองค่าแรกของอาร์เรย์ ผลการคำนวณคือ 6arr; //[1, 2, 3]arr = [3, 9, 6];var max = arr ลด (ฟังก์ชัน (x, y) { console.log(x + "|" + y); return x > y ? x : y;});// 3|9// 9|6max; //
เปรียบเทียบ 9 อาร์เรย์และวัตถุทั่วไป
อาร์เรย์และวัตถุทั่วไป | ||
---|---|---|
สามารถสืบทอดได้ | ในลักษณะเดียวกัน | วัตถุไม่จำเป็นต้องเป็นอาร์เรย์ แต่สามารถถือเป็นวัตถุเพื่อเพิ่มแอตทริบิวต์ได้|
อาร์เรย์ | โดยอัตโนมัติด้วยดัชนีจะเร็วกว่าการเข้าถึงวัตถุทั่วไปอย่างมาก คุณลักษณะอ็อบเจ็กต์อาร์เรย์สืบทอดวิธีการทำงานของอาร์เรย์จำนวนมากบน Array.prototype |
การเปรียบเทียบอาร์เรย์และสตริง
เป็น
อาร์เรย์ | |
---|---|
ที่ | ไม่ |
เปลี่ยน | รูป |
ใช้ในการทำให้วัตถุเป็นอนุกรมในสตริง JSON
={name:"xiaoming",age:12}var json=JSON.stringify(person); //{"name:"xiaoming",age:12}
นอกเหนือจากการยอมรับวัตถุแล้ว stringify()
คุณสามารถทำได้ ยอมรับ 2 พารามิเตอร์ด้วย พารามิเตอร์แรกคือตัวกรองซึ่งอาจเป็นคอลเลกชันอาร์เรย์ของคุณสมบัติวัตถุหรือฟังก์ชัน พารามิเตอร์ตัวที่สองคือตัวเลือกที่ระบุว่าจะเก็บตัว
กรองอาร์เรย์ที่เยื้องไว้ในสตริง JSON หรือไม่:
json=JSON.stringify( บุคคล,['ชื่อ']); //{"ชื่อ": xiaoming "}
ตัวกรองฟังก์ชัน:
json=JSON.stringify(person,function(key,value){ สวิตช์ (กุญแจ) { กรณี "ชื่อ": ส่งกลับค่า+",วัง"; กรณี "อายุ": กลับไม่ได้กำหนด; ค่าเริ่มต้น: ค่าส่งคืน; }});//{"name": "xiaming, wang"}
โปรดทราบว่าหากฟังก์ชันส่งคืนไม่ได้กำหนด แอ็ตทริบิวต์นี้จะถูกละเว้น
การเยื้องสตริง:
json=JSON.stringify(person,null,4); "ชื่อ": "เสี่ยวหมิง", "age": 12}
เพิ่ม toJSON() วิธีการให้กับวัตถุ:
var person={ ชื่อ:"เสี่ยวหมิง", อายุ:12, toJSON:ฟังก์ชั่น(){ return this.name+" คือ "+this.age; }}json=JSON.stringify(person);console.log(json); //"xiaming is 12"
นอกเหนือจากการยอมรับสตริง json แล้ว parse() ยังสามารถยอมรับพารามิเตอร์ฟังก์ชันได้อีกด้วย ฟังก์ชันนี้ยอมรับ 2 ค่า คือ คีย์และค่า
var person=JSON.parse('{"name://xiaoming","age":12}');var person=JSON.parse('{"name " :"xiaoming", "อายุ":12}',ฟังก์ชั่น(คีย์,ค่า){ ถ้า(key=="อายุ"){ ค่าส่งคืน+10; - อื่น{ ค่าส่งคืน; }});
1. สร้างวัตถุแบบอะซิงโครนัส XMLHttpRequest
2. กำหนดวิธีการร้องขอและที่อยู่คำขอ
3. จากนั้นใช้ send เพื่อส่งคำขอ
4. ตรวจสอบการเปลี่ยนแปลงสถานะ
5. สุดท้าย รับข้อมูลที่ส่งคืน
ตัวอย่าง:
const xhr = new XMLHttpRequest()xhr.open('GET', './data/test.json', true)xhr.onreadystatechange = function () { ถ้า (xhr. readyState === 4) { ถ้า (xhr.status === 200) { console.log(JSON.parse(xhr.responseText)) } อื่น { console.log('สถานการณ์อื่นๆ...') - }}xhr.send()
$.ajax({ type: "post", //Request method url: "a.php", //The link address of the server dataType: "json", //รูปแบบการส่งและรับข้อมูล:{ ชื่อผู้ใช้:"เจมส์", รหัสผ่าน: "123456" - Success:function(data){//Function console.log(data) ถูกเรียกเมื่อรับข้อมูลสำเร็จ;//data คือข้อมูลที่ส่งคืนโดยเซิร์ฟเวอร์}, error:function(request){//ฟังก์ชั่นที่ถูกเรียกเมื่อขอข้อมูลล้มเหลว alert("เกิดข้อผิดพลาด:"+request.status); }});
โครงสร้าง
วิธีการ$.get(url, [data], [callback], [type])
คำอธิบายพารามิเตอร์:
//ขั้นตอนที่ 1: สร้างวัตถุอะซิงโครนัส var ajax = new XMLHttpRequest(); //ขั้นตอนที่ 2: ตั้งค่าพารามิเตอร์ URL ของคำขอ พารามิเตอร์แรกคือประเภทของคำขอ และพารามิเตอร์ตัวที่สองคือ urlajax.open( "get", " users.json");//ขั้นตอนที่ 3: ส่งคำขอ ajax.send();//ขั้นตอนที่ 4: ลงทะเบียนเหตุการณ์ onreadystatechange เมื่อสถานะเปลี่ยนแปลง ajax.onreadystatechange = function () { ถ้า (ajax.readyState == 4 && ajax.status == 200) { //ขั้นตอนที่ 5: หากคุณสามารถป้อนคำตัดสินนี้ได้ แสดงว่าข้อมูลถูกส่งกลับอย่างสมบูรณ์ และมีหน้าที่ร้องขออยู่ console.log(ajax.responseText); //ป้อนเนื้อหาของการตอบกลับ}}
มีโครงสร้างและการใช้งานเหมือนกับวิธี $.get() แต่ยังคงมีความแตกต่างอยู่บ้าง
1 การโพสต์จะปลอดภัยกว่าการได้รับ พารามิเตอร์คำขอจะต่อเข้ากับด้านหลังของ URL ความปลอดภัยต่ำ เมื่อร้องขอในโหมดโพสต์ พารามิเตอร์คำขอจะถูกรวมไว้ในเนื้อหาคำขอซึ่งมีความปลอดภัยมากกว่า
2. ความแตกต่างในด้านปริมาณ: ปริมาณข้อมูลที่ส่งโดยวิธี get มีน้อยและไม่เกิน 2kb ในขณะที่ปริมาณข้อมูลที่ร้องขอโดยวิธี post นั้นมีมากและไม่มีขีดจำกัด
3. ความเร็วในการส่ง: ความเร็วในการส่งของ get สูงกว่าของโพสต์
เนื่องจากวิธีการใช้งานเหมือนกัน ตราบใดที่ฟังก์ชัน jQuery มีการเปลี่ยนแปลง โปรแกรมก็สามารถสลับระหว่างคำขอ GET และคำขอ POST
getCookie(c_name){ if (document.cookie . length>0){ //ขั้นแรกให้ตรวจสอบว่าคุกกี้ว่างเปล่าหรือไม่ ให้ส่งคืน "" c_start=document.cookie.indexOf(c_name + "=") //ตรวจสอบว่ามีคุกกี้อยู่ผ่านดัชนี Of() ของออบเจ็กต์ String หากไม่มีอยู่ จะเป็น -1 if (c_start!=-1){ c_start=c_start + c_name.length+1 // +1 สุดท้ายแทนค่า "=" จริงๆ จึงได้ค่า ตำแหน่งเริ่มต้นของค่าคุกกี้ c_end= document.cookie.indexOf(";",c_start) //จริงๆ แล้วฉันรู้สึกเวียนหัวเล็กน้อยเมื่อเห็นพารามิเตอร์ตัวที่สองของ indexOf() เป็นครั้งแรก ต่อมาฉันจำได้ว่ามันหมายถึงการเริ่มต้นที่ระบุ ตำแหน่งดัชนี...ประโยคนี้เพื่อรับตำแหน่งสิ้นสุดของค่า เนื่องจากคุณต้องพิจารณาว่าเป็นรายการสุดท้ายหรือไม่ คุณสามารถตัดสินได้ว่ามีเครื่องหมาย ";" หรือไม่ หาก (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_start,c_end)) //ค่าที่ได้มาจาก substring() หากคุณต้องการเข้าใจ unescape() คุณต้องรู้ก่อนว่า Escape() ทำหน้าที่อะไร หากคุณต้องการทราบข้อมูลเพิ่มเติม คุณสามารถค้นหารายละเอียดเกี่ยวกับการเข้ารหัสคุกกี้ได้ในส่วนท้ายของ the article} } return "" }
$.cookie("groupCode",222)
document.cookie = "name=value;expires=date"
document.cookie= "username=lisi";var Cookies = document.cookie;
(cookies);
";document.cookie = "username=; หมดอายุ=Thu, 01 Jan 1970 00:00:00 GMT";var Cookies = document.cookie;console.log(cookies);
for is ลูปที่ใช้บ่อยที่สุด ส่วนใหญ่ใช้ในการวนอาร์เรย์
la la arr = [1,2,3];for (let i=0; i<arr.length; i++){ console.log(i,arr[i])}// 0 1// 1 2// 2 3
ไวยากรณ์: arr.forEach(callback(currentValue [, index [, array]])[, thisArg]);
callback เป็นฟังก์ชันที่ดำเนินการสำหรับแต่ละองค์ประกอบในอาร์เรย์ ฟังก์ชันได้รับพารามิเตอร์สามตัว ได้แก่ currentValue (องค์ประกอบปัจจุบันที่กำลังประมวลผลในอาร์เรย์) ดัชนี (ดัชนีขององค์ประกอบปัจจุบันที่กำลังประมวลผลในอาร์เรย์ ), อาร์เรย์ (อาร์เรย์ที่เมธอด forEach() ทำงานอยู่)
thisArg คือค่าที่ใช้เป็นค่านี้เมื่อมีการดำเนินการฟังก์ชันเรียกกลับเรียกกลับ
ให้ arr = [1, 2, , 3]ให้ arrCopy1 = []arr.map((item, index, arr) => { arrCopy1.push(item * 2)})console.log(arrCopy1)// [2, 4, 6]
forEach() ดำเนินการฟังก์ชันเรียกกลับหนึ่งครั้งสำหรับแต่ละองค์ประกอบอาร์เรย์ รายการที่ลบหรือไม่ได้กำหนดค่าเริ่มต้นจะถูกข้าม ( เช่น ในอาร์เรย์แบบกระจาย )
ต่างจาก map() และตัวลด() เนื่องจากไม่มีค่าส่งคืนและส่งคืนโดยไม่ระบุเสมอ
ForEach() ไม่มีวิธียกเลิกหรือแยกออกจากลูป forEach() นอกเหนือจากการส่งข้อยกเว้น
ที่คำสั่ง while สามารถวนซ้ำเพื่อรันโค้ดที่ระบุภายใต้สมมติฐานที่ว่านิพจน์เงื่อนไขบางอย่างเป็นจริง จนกระทั่งการวนซ้ำสิ้นสุดลงเมื่อนิพจน์นั้นไม่เป็นความจริง
ตัวอย่าง:
ให้ n = 0; 3) { n++;}console.log(n);//expected output: 3หมายเหตุ
: ใช้คำสั่งแบ่งเพื่อหยุดการวนซ้ำก่อนที่ผลการประเมินเงื่อนไขจะเป็นจริง
คำสั่ง do… While จะสร้างการวนซ้ำที่ดำเนินการ คำสั่งที่ระบุจนกว่าค่าเงื่อนไขจะเป็นเท็จ ตรวจหาเงื่อนไขหลังจากดำเนินการคำสั่ง ดังนั้นคำสั่งที่ระบุจะถูกดำเนินการอย่างน้อยหนึ่งครั้ง
ตัวอย่าง:
const list = ['a', 'b', 'c']let i = 0do { console.log(รายการ[i]) //ค่า console.log(i) //ดัชนี i = i + 1} ในขณะที่ (i <list.length)
สำหรับ ... ในลูปสามารถใช้เพื่อสำรวจรายการแอตทริบิวต์ที่ระบุได้ของวัตถุ (รวมถึงโซ่ [[ต้นแบบ]]) และ
IS ส่วนใหญ่ใช้ในการสำรวจ
วัตถุ console.log (คุณสมบัติ) // ชื่อคุณสมบัติ console.log (วัตถุ [คุณสมบัติ]) // ค่าคุณสมบัติ}
คำแนะนำที่เกี่ยวข้อง: การสอนการเรียนรู้ JavaScript
ข้างต้นเป็นบทสรุปโดยละเอียดของคะแนนความรู้การเรียนรู้ JavaScript