Javascript thêm tham số vào chức năng
Trong JavaScript, hàm là một khối mã để thực hiện một tác vụ cụ thể. Đó là một nhóm mã có thể tái sử dụng để loại bỏ sự lặp lại Show Khi bạn gọi một hàm trong JavaScript, bạn có thể chuyển vào bất kỳ số lượng đối số nào, bất kể khai báo hàm chỉ định điều gì. Không có giới hạn tham số chức năng Hãy tạo một hàm chấp nhận hai tham số Khi chúng ta xác định chức năng, chúng ta sử dụng những gì được gọi là tham số. Các tham số có thể được coi là trình giữ chỗ (chúng ta sẽ sớm nói về các giá trị mặc định cho tham số) Khi bạn gọi, chạy hoặc gọi (cả 3 đều có nghĩa giống nhau) và bạn thực sự truyền dữ liệu cho nó, điều đó sẽ thay thế các biến (ví dụ: 61 sẽ là 62 và 9 sẽ là 64), chúng sẽ được gọi là đối sốMọi người sử dụng sai các thuật ngữ đó thay thế cho nhau. Một cách để ghi nhớ là các tham số là phần giữ chỗ. Các giá trị thực tế mà bạn truyền vào khi gọi một hàm được gọi là đối số Đưa nó trở lại 65, ở đây chúng ta đang chạy hàm và với tư cách là đối số, chúng ta sẽ chuyển thẳng các số. Tuy nhiên, các giá trị được truyền vào một hàm cũng có thể nằm trong một biến. Đây là một điều phổ biến mà mọi người cảm thấy khó chịu khi tìm hiểu cách thức hoạt động của các chức năng là cách chúng được đổi tênHãy xem mã chúng tôi đã viết cho 6Dữ liệu được truyền vào hàm và các biến đó chỉ khả dụng bên trong hàm 7. Chúng sẽ là những gì được gọi là nằm trong phạm vi chức năng, có nghĩa là chỉ khả dụng bên trong chức năngNếu chúng tôi thêm một nhật ký trong tính toánBill như vậy 👇 9Chúng ta có thể chạy hàm đó từ bảng điều khiển nhưng chuyển các giá trị khác nhau cho các đối số, bảng điều khiển sẽ ghi lại các giá trị của các đối số mà chúng ta đã truyền, như vậy 👇 Tại sao? Bởi vì JavaScript sẽ lấy bất cứ thứ gì bạn viết làm đối số, và sau đó khi bạn gọi hàm, nó sẽ tạm thời cung cấp cho bạn thông qua tên mà bạn đặt trong tham số của mình Điều khiến mọi người hơi khó hiểu là nếu chúng ta khai báo hai biến trước khi gọi hàm như vậy 👇 0Chúng ta thực sự có thể chuyển các biến đó vào hàm như thế này 👇 1Bây giờ sự nhầm lẫn lớn là, nếu chúng là các biến bên ngoài hàm, và chúng ta chuyển chúng vào hàm, khi nó được gọi bên trong hàm, thì tham số đầu tiên được gọi là 8 hay nó được gọi là 69?Nó thậm chí sẽ hoạt động nếu bạn chuyển vào một biến không có cùng tên với tham số? Bạn sẽ thấy nó hoạt động tốt Để xem lại, khi bạn chạy một hàm trong JavaScript, điều xảy ra là JavaScript sẽ lấy bất cứ thứ gì bạn đã truyền vào nó, cho dù bạn đã truyền giá trị đó trực tiếp cho nó (ví dụ như một số hoặc chuỗi) hay nếu bạn truyền nó qua tham chiếu ( Vào cuối ngày, chúng tôi vẫn chuyển các giá trị, cho dù bạn chuyển nó trực tiếp hay bạn chuyển nó một tham chiếu đến một biến chứa giá trị. JavaScript không quan tâm đến cách bạn chuyển chúng vào, cho dù dưới dạng giá trị trực tiếp hay dưới dạng biến Trong hàm này, JavaScript sẽ lấy bất cứ thứ gì được truyền trong đối số đầu tiên và biến nó thành một biến tạm thời 8 có sẵn bên trong giới hạn của dấu ngoặc nhọnKhi chức năng đang chạy, nó không quan tâm đến bất kỳ thứ gì khác ngoài chức năng này. Nó chỉ biết rằng nó đang thực hiện công việc của mình, nó được truyền vào 2 mẩu dữ liệu nhỏ mà nó cần, nó thực hiện phép toán và trả về giá trị của nó từ bên trong hàm Khi các giá trị được truyền vào một hàm, chúng sẽ được đổi tên thành bất cứ thứ gì mà bạn đã xác định các tham số hàm của mình là Một vi dụ khacHãy làm một ví dụ khác Nhận xét ra mã 92Thêm hàm sau vào mã của bạn, hàm này sẽ trả về xin chào và chúng ta sẽ chuyển vào tên của ai đó 👇 0Chạy mã nguyên trạng, mặc dù mã sẽ bị hỏng, để xem tại sao. Trong bảng điều khiển, bạn sẽ thấy lỗi tham chiếu trong bảng điều khiển Điều gì sẽ xảy ra với hàm này, đầu tiên nó tìm kiếm bên trong phạm vi chức năng của chính nó và nó sẽ tìm kiếm một biến 93 đã được chuyển vào. Nếu không, nó sẽ bắt đầu làm là đi lên một mức độ cao của phạm vi và nhìn vào đóGiả sử có một biến FirstName như vậy 👇 1Điều đó sẽ hiệu quả, bởi vì chức năng sẽ tiếp cận bên ngoài dữ liệu đó nếu không tìm thấy gì trong phạm vi của chức năng đó Điều chúng ta muốn làm là sửa đổi định nghĩa hàm để đặt nó nhận một tham số ( 93). Và sau đó khi chúng ta chạy hàm, chúng ta thực sự phải truyền cho nó một chuỗi (chúng ta sẽ sử dụng 95), và sau đó chúng ta sẽ có lời chào 2Điều này làm cho chức năng này đẹp và có thể tái sử dụng, đồng thời chúng ta có thể sử dụng nó để in ra bất kỳ tên nào như vậy 👇 Miễn là chúng ta truyền vào một đối số (trong trường hợp này là "Wes"), nó sẽ có một biến bên trong hàm đó được tham chiếu đến bất cứ thứ gì người đó đã truyền vào Nếu chúng tôi không chạy nó với bất cứ thứ gì, bạn sẽ thấy. 👇 Lý do xảy ra là khi một hàm chạy, nó sẽ tạo biến cho chúng ta ( 93) và đặt nó thành bất cứ thứ gì được truyền vàoNhưng nếu nó tạo một biến và ai đó không chuyển vào bất cứ thứ gì, thì nó sẽ được đặt thành không xác định, đó chính xác là cách các biến hoạt động Thậm chí nhiều ví dụ hơnBây giờ chúng ta hãy đi qua một vài ví dụ nữa Hãy quay trở lại với các biểu thức truyền. Đối với ví dụ này, chúng tôi sẽ quay lại 7 3Chúng tôi biết mã ở trên hoạt động nhưng nếu thay vào đó chúng tôi làm thì sao 👇 4Đó là sẽ làm việc? Nếu bạn tải 90 trong trình duyệt, bạn sẽ thấy 99(Nếu bạn theo sát Wes quá, bạn có thể đã nhận được giá trị 90. 5. Nếu đúng như vậy, dòng mã tính toán tổng trong 7. Nó phải là 11. Điều này là do 12, chúng tôi cần dấu ngoặc đơn)Điều đó hoạt động Tại sao? Bởi vì điều duy nhất mà một hàm có thể nhận vào là một giá trị và liệu bạn có chuyển trực tiếp giá trị đó, chẳng hạn như trong một số hay không, liệu bạn có chuyển giá trị đó dưới dạng một biến chứa giá trị hay không, điều đó sẽ hiệu quả và sau đó bạn cũng có thể chuyển Trong ví dụ này, chúng tôi không thực sự chuyển một biểu thức, chúng tôi thực sự đang chạy một biểu thức và biểu thức đó trước tiên sẽ chạy ( 13) và cộng nó lên tới $90, sau đó chúng tôi chuyển giá trị thô đó là 90Hoàn toàn ổn khi làm điều gì đó thích, trên thực tế, điều đó khá phổ biến Bạn thậm chí có thể trộn và kết hợp Giả sử chúng ta có một biến 14 và sau đó chúng ta muốn cộng thêm $50 vào biến đó. Bạn có thể làm một cái gì đó như 5Nó vẫn hoạt động, mặc dù chúng tôi đang trộn và kết hợp Hãy xóa ví dụ 15 và thực hiện một ví dụ khác trong đó chúng tôi chuyển các hàm dưới dạng đối sốTạo một hàm 16 sẽ nhận đối số 17 và trả về tên có "Dr. " phía trước như vậy 👇 6Và chúng ta sẽ tạo một hàm khác có tên là 18 cũng nhận vào một tên và trả về "HEY" với tên biến viết hoa như vậy 👇 7Bạn có thể nhận thấy rằng cả hai hàm đều đang sử dụng biến 17Mặc dù việc sử dụng lại các biến trong cùng một phạm vi nhiều lần là không ổn, nhưng việc sử dụng lại các tham số là hoàn toàn có thể Tại sao? . Điều đó sẽ không xảy ra vì các tham số nằm trong phạm vi giới hạn của các chức năng của chính chúng Tham số 17 được sử dụng trong phương thức 91 sẽ không bao giờ xung đột với biến trong phương thức 92Hãy tiếp tục và chạy nó trong bảng điều khiển. 👇 Hãy chuyển đầu ra của 91 thành 18 bằng cách nhập nội dung sau vào bảng điều khiển 👇 8Nó hoạt động như thế nào
Vì vậy, để tóm tắt lại -- một cách khác chúng ta có thể chuyển một giá trị cho một hàm là đầu ra của một hàm, bởi vì đó chỉ là một giá trị vào cuối ngày và bạn có thể chạy trực tiếp giá trị đó như minh họa ở đây Giá trị mặc định Bây giờ, hãy nói về các giá trị mặc định Nếu chúng ta sử dụng hàm 18 và thay vì truyền nó là "Wes", chúng ta không truyền một đối số, nó sẽ báo lỗiĐiều đang xảy ra là hàm 00 (về mặt kỹ thuật là một phương thức), nó đang cố chạy nó với thứ gì đó không được chuyển vào. Điều này có nghĩa là nếu ai đó quên chuyển một giá trị cho hàm 18, mã của chúng ta sẽ bị hỏngNhững gì chúng tôi có thể làm là chúng tôi có thể thiết lập một cái gì đó gọi là mặc định. Khi bạn xác định chức năng của mình, bên trong định nghĩa chức năng của bạn, bạn có thể đặt mặc định bằng cách nói tên bằng 'Ngỗng ngớ ngẩn', như minh họa bên dưới 9Nếu bạn chạy nó và truyền một đối số, nó vẫn hoạt động Tuy nhiên, khi bạn chạy nó mà không có đối số, hàm sẽ không còn lỗi nữa và thay vào đó sẽ trở về giá trị mặc định cho tham số và xuất ra _____302 Vì vậy, khi bạn xác định chức năng của mình, bạn có thể chỉ định nếu ai đó không chuyển tham số này 17, hãy sử dụng giá trị mặc địnhHãy quay lại hàm 7 của chúng taBạn có thể nghĩ rằng thật ngớ ngẩn khi phải thông qua thuế suất mỗi lần. Chúng tôi sẽ sử dụng một giá trị mặc định để đặt thuế suất mặc định là 0. 13, bằng cách sửa đổi chức năng như vậy 👇 0Điều cho phép chúng tôi làm là gọi 05 và chỉ chuyển giá trị cho 8Wes thường thích đặt các giá trị mặc định khi anh ấy tạo các hàm. Thậm chí chỉ cần thêm một giá trị mặc định cho một biến chuỗi của một chuỗi rỗng 1Điều đó sẽ đảm bảo chức năng không bị lỗi, nó sẽ không hiển thị tên như vậy 👇 Đó chỉ là biện pháp bảo vệ Hãy tiến thêm một bước nữa và sửa đổi 7 để nhận thêm tiền boaThêm một đối số khác có giá trị mặc định là 08 👇 2Bây giờ chúng ta sẽ thay đổi cách tính tổng như vậy 👇 3Bạn có thể nhận thấy rằng khi bạn lưu tệp, Prettier sẽ xóa dấu ngoặc đơn nếu không cần thiết (các quy tắc BEDMAS không cần thiết ở đây) LƯU TRƯỚC 👉 SAU TIẾT KIỆM VỚI PRETTIER 👉 Nếu chúng ta chạy 7 và chuyển cho nó 100 đô la, nó sẽ trả về 128Cách quay lại mặc định cho chỉ một tham sốVấn đề nan giải xảy ra ở đây là nếu bạn muốn sử dụng thuế suất mặc định chứ không phải tipRate mặc định thì sao? 4Nếu bạn cố gắng để trống đối số và sử dụng hai dấu phẩy như hình trên 👆, nó sẽ bị hỏng 👆 Lỗi phàn nàn về mã thông báo không mong muốn 10Vì vậy, điều duy nhất mà bạn có thể chuyển vào một hàm để khiến nó sử dụng giá trị mặc định là không xác định. Một chức năng sẽ chỉ trở về giá trị mặc định nếu không có gì được thông qua Hãy nhớ khi một biến không được đặt thành bất kỳ thứ gì, giá trị của nó là 11. Vì vậy, bạn không thể tiếp tục và vượt qua số 0 ở đây và mong đợi nó sai về mặc định 5Bạn phải thực sự vượt qua nó 11, 👆 như được hiển thị ở trên và nó sẽ hoạt động như chúng tôi dự địnhRất hiếm khi bạn phải vượt qua 11 như vậy nhưng bạn nên biết cách một hàm quyết định có quay lại mặc định hay không
Hàm JavaScript có thể có tham số không?Hàm JavaScript có thể có số lượng tham số bất kỳ . 3 hàm trên được gọi với số đối số bằng số tham số. Nhưng bạn có thể gọi một hàm với số đối số ít hơn số tham số.
Tôi có thể thêm bao nhiêu tham số vào hàm JavaScript?Khi gọi một hàm trong JavaScript, bạn có thể chuyển vào bất kỳ số lượng đối số nào , bất kể khai báo hàm chỉ định gì. Không có giới hạn tham số chức năng.
Bạn có thể chuyển một đối tượng tới một hàm trong JavaScript không?Chúng ta có thể truyền một đối tượng vào hàm JavaScript , nhưng các đối số phải có cùng tên với tên thuộc tính Đối tượng.
Các hàm JavaScript có thể có các tham số tùy chọn không?Các tham số tùy chọn rất phù hợp để đơn giản hóa mã và ẩn chức năng nâng cao nhưng không được sử dụng thường xuyên . Nếu phần lớn thời gian bạn gọi một hàm sử dụng cùng một giá trị cho một số tham số, bạn nên thử đặt các tham số đó thành tùy chọn để tránh lặp lại. |