Trong lập trình JavaScript, Hàm là một khối mã, làm một việc cụ thể nào đó.
Có 2 loại hàm là
– Hàm Built-in hay còn gọi là hàm tự có, có sẵn.
– Hàm tự định nghĩa.
Hàm trong JavaScript có các tính chất sau:
– Hàm không thực thi khi ta chỉ định nghĩa cho nó.
– Hàm chỉ thực thi khi ta gọi nó chạy.
– Hàm có thể nhận tham số.
– Hàm có thể trả về một giá trị.
Lưu ý: Mỗi hàm cần có tên hàm, và tên hàm được sử dụng các ký tự sau: a-z, A-Z, 0-9, dấu gạch dưới _, dấu $, và ký tự đầu tiên của tên hàm không được dùng số 0-9.
Ví dụ về hàm:
function tenham () {console.log(‘Nội dung’)}
Hàm đã được định nghĩa nhưng nó không hề chạy. Nó chỉ chạy khi được gọi. Ví dụ ta gọi hàm:
tenham(); // Kết quả: Nội dung
ham-la-gi-trong-lap-trinh-javascript
2. Tham số trong hàm – trong JavaScript
Định nghĩa tham số trong lập trình JavaScript:
Tham số là một giá trị có thể truyền vào khi gọi đến một function. Tham số được dùng để làm một công việc cụ thể nào đó như tính toán, xử lý dữ liệu… Có thể truyền nhiều tham số vào trong hàm.
Ví dụ:
function ham1 (thamso1, thamso2, thamso3) {console.log(thamso1)console.log(thamso2)console.log(thamso3)}ham1(‘tuongungthamso1’, ‘tuongungthamso2’, ‘tuongungthamso3’)/*Kết quả:tuongungthamso1tuongungthamso2tuongungthamso3*/
khi không truyền tham số nó không lỗi, nhưng chỉ trả về kiểu tham số là undefined
ham1()
/* Kết quảundefinedundefinedundefined*/
Hoặc khi gọi 1 tham số nó sẽ trả về 1 tham số, các tham số khác ở dạng undefined
ham1(‘tuongungthamso1’)
/* Kết quả:tuongungthamso1undefinedundefined*/
Kiểu dữ liệu của tham số
Tham số không giới hạn kiểu dữ liệu truyền vào.
Ví dụ
function ham2 (thamso1) {console.log(thamso1)}
Ta gọi bằng cách truyền các loại tham số, vẫn trả về kết quả tương ứng
ham2() // kết quả: undefinedham2(1) // kết quả: 1ham2(‘kết quả ham2:’) // kết quả: kết quả ham2ham2([‘JavaScript’, ‘PHP’, ‘C++’]) // Kết quả Array ‘JavaScript’, ‘PHP’, ‘C++’
4. Tính Private của hàm – lập trình JavaScript
Ví dụ:
function ham2 (thamso4) {console.log(thamso4)}ham2(‘test’)
Tức là khi truyền tham số vào để gọi hàm chạy, thì chỉ sử dụng được thamso1 trong dấu {} của hàm.
Nếu đưa console.log(thamso1) ra ngoài ngoặc {} của function, thì sẽ báo lỗi là biến thamso1 chưa được khai báo.
Số lượng tham số trong hàm
Có thể truyền vào nhiều tham số không giới hạn, mỗi tham số làm một việc. Tuy nhiên khuyến nghị không nên sử dụng quá nhiều sẽ gây rối.
Arguments trong hàm
Arguments giúp loại bỏ việc dùng nhiều biến / tham số trong hàm, để trả về kết quả. Arguments sử dụng xử lý khối dữ liệu nhiều hơn, mà không phải tạo ra sẵn nhiều tham số/biến trong hàm.
Ví dụ:
function ham3 () {console.log(arguments)}ham3(‘Kết quả 1’, ‘Kết quả 2’)/* Kết quảArguments(10)0: “Kết quả 1”1: “Kết quả 2”*/
Ta truyền bao nhiêu tham số vào để gọi hàm thì sẽ nhận được kết quả bấy nhiêu tương ứng
Ví dụ
function ham5 () {console.log(arguments)}ham5(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) // Arguments(10) 1 2 3 4 5 6 7 8 9 10
Giới thiệu vòng lặp for of
Ví dụ:
function ham6 () {for (var param of arguments) {console.log(param)}}ham6(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)/* Kết quả:12345678910 */
Giải thích vòng lặp for of:
Arguments sẽ là dạng array (10) từ 1 – 10 như được truyền vào ham6 để gọi.
Khi gọi ham6, vòng for sẽ chạy lần thứ nhất:
Nó lấy phần tử đầu tiên (1) của Argument gán vào biến param để in ra console.log(param) đầu tiên. Một lần chạy như vậy là hết vòng 1.Sau đó, for sẽ chạy lặp lại, sang vòng thứ hai:
Nó lấy phần tử thứ hai (2) của Arguments gán vào biến param để in ra console.log(param) thứ hai.Sau đó, lặp tiếp đến vòng thứ ba …. rồi đến hết tức thứ 10.
Trong lập trình JavaScrip, với vòng for … of, ta không cần phải tạo nhiều biến để định nghĩa, mà khi gọi hàm chạy vẫn trả về được tất cả số lượng tham số truyền vào.
Như ví dụ trên, thay vì phải tạo ra 10 biến và console.log() 10 biến đó để định nghĩa cho hàm, thì ta chỉ cần tạo 1 biến param để định nghĩa cho hàm. Khi gọi hàm trả về tất cả kết quả không giới hạn theo tham số truyền vào.
Hàm for … of rất hữu ích trong việc thiết kế website, app ứng dụng, giúp việc viết, sửa code rất ngắn gọn, tiết kiệm thời gian, cũng như giảm dung lượng cho bộ code của chúng ta.
Tham khảo:
Leave A Comment
You must be logged in to post a comment.