Mã javascript sau có hoạt động không var js function(x) (return x*x;)(10)
Hàm JavaScript được xác định bằng từ khóa 1, theo sau là tên, theo sau là dấu ngoặc đơn () Show Tên hàm có thể chứa các chữ cái, chữ số, dấu gạch dưới và ký hiệu đô la (quy tắc giống như biến) Dấu ngoặc đơn có thể bao gồm các tên tham số được phân tách bằng dấu phẩy. Mã được thực thi bởi hàm, được đặt bên trong dấu ngoặc nhọn. {} tên hàm(tham số1, tham số2, tham số3) { Các tham số của hàm được liệt kê bên trong cặp ngoặc đơn () trong phần định nghĩa hàm Đối số của hàm là các giá trị mà hàm nhận được khi nó được gọi Bên trong hàm, các đối số (các tham số) hoạt động như các biến cục bộ Gọi hàmĐoạn mã bên trong hàm sẽ thực thi khi "cái gì đó" triệu gọi (gọi) hàm
Bạn sẽ học được nhiều hơn về lời gọi hàm sau trong hướng dẫn này Hàm trả vềKhi JavaScript đạt đến câu lệnh 2, hàm sẽ ngừng thực thiNếu hàm được gọi từ một câu lệnh, JavaScript sẽ "quay lại" để thực thi mã sau câu lệnh được gọi Các hàm thường tính toán giá trị trả về. Giá trị trả về được "trả lại" cho "người gọi" Ví dụTính tích của hai số và trả về kết quả cho x = myFunction(4, 3); function myFunction(a, b) { Kết quả trong x sẽ là Tự mình thử »Tại sao chức năng?Bạn có thể sử dụng lại mã. Xác định mã một lần và sử dụng nó nhiều lần Bạn có thể sử dụng cùng một mã nhiều lần với các đối số khác nhau để tạo ra các kết quả khác nhau Ví dụĐổi độ F sang độ C function toC(fahrenheit) { Toán tử () gọi hàmSử dụng ví dụ trên, 3 đề cập đến đối tượng chức năng và 4 đề cập đến kết quả chức năngTruy cập một hàm không có () sẽ trả về đối tượng hàm thay vì kết quả hàm Ví dụfunction toC(fahrenheit) { Các hàm được sử dụng làm giá trị biếnCác hàm có thể được sử dụng giống như cách bạn sử dụng các biến, trong tất cả các loại công thức, bài tập và phép tính Ví dụThay vì sử dụng một biến để lưu trữ giá trị trả về của một hàm let x = toCelsius(77); Bạn có thể sử dụng hàm trực tiếp, dưới dạng giá trị biến let text = "Nhiệt độ là " + toC(77) + " Độ C"; Tự mình thử »Bạn sẽ học được nhiều hơn về các chức năng sau trong hướng dẫn này Biến cục bộCác biến được khai báo trong hàm JavaScript, trở thành ĐỊA PHƯƠNG cho hàm Các biến cục bộ chỉ có thể được truy cập từ bên trong hàm Ví dụ// mã ở đây KHÔNG thể sử dụng carName function myFunction() { // mã ở đây KHÔNG thể sử dụng carName Tự mình thử »Vì các biến cục bộ chỉ được nhận dạng bên trong các hàm của chúng, các biến có cùng tên có thể được sử dụng trong các hàm khác nhau Hãy xem xét đoạn mã sau. var tensquared = (function(x) {return x*x;}(10));Mã trên có hoạt động không? MỘT). Vâng, hoàn hảo b). Lỗi C). Ngoại lệ sẽ được ném Đ). Bộ nhớ bị rò rỉ 1 câu trả lờiĐã trả lời bởi Khách vào 2021-06-04 17. 10. 56. phiếu bầu 26. Vâng, hoàn hảo Tên hàm là tùy chọn đối với các hàm được định nghĩa là biểu thức. Biểu thức chức năng đôi khi được xác định và gọi ngay lập tức Điều này nghe có vẻ tầm thường và trên thực tế, nó không quan trọng với ECMAscript 6 giới thiệu một hàm 5 mới cho mục đích chính xác này. Tuy nhiên, trước ECMAScript 6, điều này phức tạp hơn một chút, vì không cung cấp phương thức tương đương với phương thức 5Vấn đề là, trong đặc tả ECMAScript, các số nguyên chỉ tồn tại về mặt khái niệm; . e. , các giá trị số luôn được lưu trữ dưới dạng giá trị dấu phẩy động Với ý nghĩ đó, giải pháp tiền ECMAScript-6 đơn giản và rõ ràng nhất (cũng đủ mạnh để trả về 7 ngay cả khi một giá trị không phải là số như chuỗi hoặc 0 được truyền cho hàm) sẽ là cách sử dụng sau của
Giải pháp sau đây cũng sẽ hoạt động, mặc dù không thanh lịch như giải pháp trên
Hàm sau (hoặc với 1 hoặc 2 thay cho 3) cũng có vẻ hữu ích, nhưng kết quả không hoàn toàn giống với hai hàm trên
Sự khác biệt là, các giải pháp dựa trên 4 này trả về 5 cho 6 và 7, trong khi các giải pháp khác (và đáng chú ý là 5 của ES6) trả về 7Một giải pháp không chính xác khá phổ biến khác là như sau 1Mặc dù cách tiếp cận dựa trên 0 này sẽ hoạt động tốt với nhiều giá trị của 1, nhưng khi 1 trở nên khá lớn, nó sẽ không hoạt động bình thường. Vấn đề là 3 buộc tham số đầu tiên của nó thành một chuỗi trước khi phân tích các chữ số. Do đó, khi số trở nên đủ lớn, biểu diễn chuỗi của nó sẽ được trình bày ở dạng hàm mũ (e. g. , 4). Theo đó, sau đó, 3 sẽ cố gắng phân tích cú pháp 4, nhưng sẽ ngừng phân tích cú pháp khi đến ký tự 7 và do đó sẽ trả về giá trị là 8. Quan sát |