ฟังก์ชั่นคำหลักใช้เพื่อกำหนดฟังก์ชั่น
การคัดลอกรหัสมีดังนี้:
// ฟังก์ชั่นการประกาศคำจำกัดความ:
ฟังก์ชั่น funcname ([arg1 [, args [... , argn]]]) {
งบ
-
// นิยามการแสดงออกของฟังก์ชัน:
var funcname = function ([arg1 [, args [... , argn]]]) {
งบ
-
โปรดทราบว่าจำเป็นต้องมีการจัดฟันแบบหยิกในคำสั่งฟังก์ชันแม้ว่าร่างกายจะมีคำสั่งเดียวเท่านั้น
ใน JavaScript ฟังก์ชั่นเป็นอินสแตนซ์เฉพาะของคลาสฟังก์ชั่น และพวกเขาทั้งหมดมีคุณสมบัติและวิธีการเช่นประเภทอ้างอิงอื่น ๆ
ชื่อฟังก์ชั่นเป็นตัวชี้ไปยังวัตถุฟังก์ชันและฟังก์ชั่นสามารถใช้เป็นพารามิเตอร์เพื่อเข้าร่วมในการถ่ายโอนพารามิเตอร์และค่าส่งคืน
คุณสมบัติวัตถุของฟังก์ชั่น
เนื่องจากฟังก์ชั่นเป็นอินสแตนซ์ของฟังก์ชั่นชื่อฟังก์ชันจึงเป็นเพียงที่อยู่อ้างอิงของอินสแตนซ์นั้น ดังนั้นจึงสามารถใช้เป็นพารามิเตอร์และค่าส่งคืนในกระบวนการถ่ายโอนพารามิเตอร์ของฟังก์ชั่น
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น call_some_function (some_function, some_argument) {
ส่งคืน some_function (some_argument);
-
ฟังก์ชั่น add_10 (num) {
ส่งคืน num + 10;
-
console.log (call_some_function (add_10,20)); // 30
คุณสมบัติภายในของฟังก์ชัน
อาร์กิวเมนต์ | นี้
•วัตถุอาร์กิวเมนต์ถือพารามิเตอร์ที่ส่งผ่านไปยังฟังก์ชัน
•อาร์กิวเมนต์ความยาวส่งคืนจำนวนพารามิเตอร์ที่เข้ามา
•หมายเหตุ: แอตทริบิวต์ความยาวแสดงจำนวนพารามิเตอร์ที่ได้รับโดยค่าเริ่มต้นเมื่อกำหนดฟังก์ชั่น อาร์กิวเมนต์ความยาวแสดงจำนวนพารามิเตอร์ที่ได้รับเมื่อฟังก์ชั่นถูกเรียกใช้งานจริง
การคัดลอกรหัสมีดังนี้:
function test_arguments () {
if (arguments.length == 2) {
console.log (อาร์กิวเมนต์ความยาว);
console.log (อาร์กิวเมนต์);
} อื่น {
console.log (อาร์กิวเมนต์ความยาว);
console.log (อาร์กิวเมนต์);
อาร์กิวเมนต์ Callee (4, 5);
-
} (1, 2, 3)
-
3
{'0': 1, '1': 2, '2': 3}
2
{'0': 4, '1': 5}
-
•อาร์กิวเมนต์ callee () ส่วนใหญ่จะใช้ในสถานการณ์ที่ฟังก์ชั่นตัวเองเรียกว่าในฟังก์ชันเรียกซ้ำ ความแตกต่างระหว่าง JS และภาษาอื่น ๆ คือชื่อฟังก์ชันเป็นเพียงตัวชี้และสามารถเปลี่ยนแปลงได้ตลอดเวลา ชื่อฟังก์ชั่นในฟังก์ชั่นนั้นมีความเป็นคู่สูงซึ่งอาจทำให้เกิดปัญหาและการเรียกร้องให้อาร์กิวเมนต์ callee () ตัวเองจะหลีกเลี่ยงปัญหานี้
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นแฟคทอเรียล (NUM) {
ถ้า (num <= 1) {
กลับ 1;
} อื่น {
ส่งคืน num * factorial (num - 1);
-
-
ฟังก์ชั่น callee_f (num) {
ถ้า (num <= 1) {
กลับ 1;
} อื่น {
return num * arguments.callee (num - 1);
-
-
แฟคทอเรียล (10); // ใช้งานปกติ
f = แฟคทอเรียล;
แฟคทอเรียล = null;
F (10); //ข้อผิดพลาด
callee_f (10); // ทำงานตามปกติ
f = callee_f;
callee_f = null;
F (10); // ใช้งานปกติ
•สิ่งนี้ส่วนใหญ่ใช้เพื่อช่วยฟังก์ชั่นอ้างถึงวัตถุในขอบเขตของฟังก์ชัน
การคัดลอกรหัสมีดังนี้:
var color = 'red';
ฟังก์ชัน syacolor () {
console.log (this.color);
-
Syacolor (); //สีแดง
var o = วัตถุใหม่ ();
O.Color = 'Blue';
O.SayColor = SayColor;
O.SayColor (); //สีฟ้า
โทร () และสมัคร ()
CALL () และใช้ () เป็นวิธีการที่แต่ละฟังก์ชั่นมี มีการกล่าวถึงก่อนหน้าฟังก์ชั่นจะถูกกำหนดวัตถุดังนั้นเมื่อใช้ฟังก์ชั่นการโทรสิ่งนี้ในฟังก์ชั่นคือการโทรไปยังตัวแปรปัจจุบันและตัวแปรที่ต่ำกว่า หากคุณต้องการเปลี่ยนพื้นที่โดเมนที่มีการดำเนินการฟังก์ชั่นคุณสามารถใช้การโทร () และใช้ () เพื่อนำไปใช้งาน
การคัดลอกรหัสมีดังนี้:
สี = 'สีแดง';
var o = {color: 'blue'};
ฟังก์ชั่น sayscolor () {
console.log (this.color);
-
saycolor (); //สีแดง
saycolor.call (นี่); //สีแดง
saycolor.call (o); //สีฟ้า
ฟังก์ชั่นของแอป () และการโทร () เหมือนกันและความแตกต่างส่วนใหญ่เป็นความแตกต่างในพารามิเตอร์ที่เข้ามา
การโทร (นี่, para1, prar2, prar3) พารามิเตอร์แรกคือขอบเขตของฟังก์ชันที่จะดำเนินการ พารามิเตอร์ที่ตามมาคือพารามิเตอร์อินพุตของฟังก์ชันและมีหลายครั้งที่เขียนตามลำดับ
ใช้ (นี่, [para1, para2, prara3]) พารามิเตอร์แรกก็คือขอบเขตของฟังก์ชันที่จะดำเนินการตามด้วยวัตถุอาร์เรย์อาร์เรย์
ประโยชน์ที่ใหญ่ที่สุดของการใช้การโทร ()/ใช้ () เพื่อขยายขอบเขตคือการแยกวัตถุและวิธีการ
วัตถุในตัว
วัตถุระดับโลกสามารถเข้าใจได้ว่าเป็นวัตถุนอกสุดวัตถุทั้งหมดรวมถึงคุณลักษณะและวิธีการที่ไม่ได้อยู่ในวัตถุอื่น ๆ จะรวมอยู่ในวัตถุระดับโลก
* isnan (x) ใช้เพื่อตรวจสอบว่าพารามิเตอร์ x เป็นตัวเลขหรือไม่ หากถูกส่งกลับเท็จสำหรับตัวเลขให้ส่งคืนอย่างอื่นเป็นอย่างอื่น
* isfinite (x) ใช้เพื่อตรวจสอบว่าพารามิเตอร์ x นั้นไม่มีที่สิ้นสุด/เล็กหรือไม่ ถ้ามันไม่มีที่สิ้นสุด/เล็กมันจะกลับมาเป็นจริง
* ParseInt (X) ใช้เพื่อแยกความแตกต่างและส่งคืนจำนวนเต็ม
* Parsefloat (x) ใช้ในการแยกวิเคราะห์สตริงและส่งคืนหมายเลขจุดลอยตัว
* ENCODEURI () และ ENCODEURICOMPONENT () จะทำการเข้ารหัส UTF-8 พิเศษบนสตริงเพื่อหลีกเลี่ยงอักขระพิเศษบางตัวเพื่อให้เบราว์เซอร์เข้าใจ ความแตกต่างที่สำคัญระหว่างพวกเขาคือ encodeuri () ไม่ได้เข้ารหัสอักขระพิเศษที่เป็นของ URI ในขณะที่ encodeuricomponent () เข้ารหัสอักขระที่ไม่ได้มาตรฐานทั้งหมดที่พบ
การคัดลอกรหัสมีดังนี้:
var uri = "http://www.wrox.com/illegal value.htm#start";
//http://www.wrox.com/illegal%20Value.htm#start
console.log (encodeuri (uri))
//http%3a%2f%2fwww.wrox.com%2Fillegal%20Value.htm%23start
console.log (encodeuricomponent (uri))
•ฟังก์ชั่นการถอดรหัสที่สอดคล้องกันคือ decodeuri () และ decodeuricomponent ()
• Eval (สคริปต์) ใช้เพื่อเรียกใช้เนื้อหาสคริปต์ในล่ามและส่งคืนผลลัพธ์ที่สอดคล้องกัน ทรงพลังมาก!
หมายเหตุ: ในเบราว์เซอร์วัตถุ Windows จะห่อหุ้มวัตถุส่วนกลางและดำเนินงานและฟังก์ชั่นเพิ่มเติมจำนวนมาก
วัตถุคณิตศาสตร์เป็นวัตถุในตัวอื่น ให้ฟังก์ชั่นการคำนวณทางคณิตศาสตร์สำหรับ JavaScript
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ ฉันหวังว่าคุณจะชอบมันและมันจะเป็นประโยชน์กับคุณ