มีสองวิธีในการประกาศฟังก์ชั่นใน JavaScript: ฟังก์ชั่นการประกาศและการแสดงออกของฟังก์ชั่น
ความแตกต่างมีดังนี้:
1). สำหรับฟังก์ชั่นที่กำหนดโดยวิธีการที่ประกาศโดยฟังก์ชั่นชื่อฟังก์ชั่นเป็นสิ่งจำเป็นในขณะที่ชื่อฟังก์ชันของนิพจน์ฟังก์ชั่นเป็นทางเลือก
2). ฟังก์ชั่นที่กำหนดโดยวิธีการที่ประกาศโดยฟังก์ชั่นสามารถเรียกได้ก่อนการประกาศฟังก์ชั่นในขณะที่ฟังก์ชั่นของการแสดงออกของฟังก์ชั่นสามารถเรียกได้หลังจากการประกาศเท่านั้น
3). ฟังก์ชั่นที่กำหนดโดยวิธีการที่ประกาศโดยฟังก์ชั่นไม่ใช่การประกาศจริง พวกเขาสามารถปรากฏขึ้นทั่วโลกหรือซ้อนกันในฟังก์ชั่นอื่น ๆ แต่พวกเขาไม่สามารถปรากฏในลูปเงื่อนไขหรือลอง/จับ/ในที่สุดและในที่สุด
การแสดงออกของฟังก์ชั่นสามารถประกาศได้ทุกที่
ต่อไปนี้เป็นสองวิธีในการกำหนดฟังก์ชัน:
การคัดลอกรหัสมีดังนี้:
// ฟังก์ชั่นสูตรการประกาศ
ฟังก์ชั่นทักทาย () {
console.log ("Hello World");
-
// ฟังก์ชั่นนิพจน์
var greeting = function () {
console.log ("Hello World");
-
นี่คือ JavaScript ที่น่าสนใจ:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น f () {console.log ('ฉันอยู่ข้างนอก!'); -
(การทำงาน () {
ถ้า (เท็จ) {
// ทำซ้ำฟังก์ชัน f
ฟังก์ชั่น f () {console.log ('ฉันอยู่ข้างใน!'); -
-
f ();
-
เอาท์พุทอะไร? ปฏิกิริยาแรกควรเป็น "ฉันอยู่ข้างนอก" เป็นผลให้ "ฉันอยู่ข้างใน" เป็นเอาต์พุตใน Chrome IE11 รายงานข้อผิดพลาดโดยตรงและเวอร์ชันล่างของ firefox outputs "ฉันอยู่ข้างนอก" ...
ผลลัพธ์ของเอาต์พุตโครเมี่ยมสะท้อนให้เห็นถึงลักษณะของฟังก์ชั่นที่ประกาศด้วยฟังก์ชั่นนิพจน์การประกาศ - ฟังก์ชั่นสามารถเรียกได้ก่อนการประกาศ
ข้อผิดพลาดคือแสดงว่าวัตถุหายไปเนื่องจากการประกาศฟังก์ชั่นอยู่ในสภาพซึ่งละเมิดหลักการของการประกาศฟังก์ชั่น
ขอบเขตของการแสดงออกของฟังก์ชั่น:
หากฟังก์ชั่นที่ประกาศโดยนิพจน์ฟังก์ชั่นมีชื่อฟังก์ชั่นชื่อฟังก์ชันจะเทียบเท่ากับตัวแปรท้องถิ่นของฟังก์ชันและสามารถเรียกได้ภายในฟังก์ชันเท่านั้น ตัวอย่างเช่นเกาลัด:
การคัดลอกรหัสมีดังนี้:
var f = ฟังก์ชั่นข้อเท็จจริง (x) {
ถ้า (x <= 1)
กลับ 1;
อื่น
return x*fact (x-1);
-
การแจ้งเตือน (ข้อเท็จจริง ()); // uncaught ReferenceRorror: ไม่ได้กำหนดความจริง
ความเป็นจริง () สามารถเรียกได้ภายในฟังก์ชั่น แต่จะมีการรายงานข้อผิดพลาดเมื่อมีการเรียกนอกฟังก์ชั่น: ความจริงไม่ได้กำหนดไว้
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่าคุณจะชอบมัน