- Đối số: là giá trị truyền vào hàm, VD: số, ký tự, mảng, . . ..
- Tham số: biến được truyền vào hàm
– Tham chiếu: truyền địa chỉ của biến vào hàm, VD: truyền object (1 vật có thuộc tính và chức năng, VD xe hơi có thuộc tính màu sắc, chiều dài, chiều cao, chức năng là đi, dừng, . . . ) hoặc mảng. Khi gọi hàm sẽ làm thay đổi biến ở bên ngoài hàm.
VD: let b = [1,2];
Function swap (b){
Let temp;
Temp = b[0];
b[0]=b[1];
b[1] = temp;
}
Swap(b);
Console.log(b);
Kết quả là: [2,1]; , mảng b đã thay đổi giá trị so với mảng b ban đầu.
– Tham số: truyền giá trị nguyên thủy vào hàm (VD: number, string, boolean, undifined, null ). Khi gọi hàm sẽ không làm thay đổi biến bên ngoài hàm.
VD: let a =1;
Let b = 2;
Function swap (a,b){
Let temp;
Temp = b;
a=b;
b = a;
}
Swap(a,b);
Console.log(a,b);
Kết quả là: 1,2, kết quả của a và b không thay đổi so với kết quả ban đầu.
- Hàm thủ tục: hàm không trả về kết quả nào hoặc trả về nhiều giá trị hoặc trả về kiểu dữ liệu có cấu trúc (mảng)
VD1: Function swap (a,b){
Let temp;
Temp = b;
a=b;
b = a;
}
Hàm trên chỉ thực hiện việc hoán đổi 2 giá trị trong mảng, không trả kết quả nào nên là hàm thủ tục
- Hàm số học: hàm trả về một kết quả duy nhất, kết quả trả về là: string, number, boolean, null, . . .
VD: function add(a){
Let sum = 0;
sum = a+1;
Document.write(sum);
}
Hàm trên trả về kết quả là sum dạng số, nên là hàm số học.