fbpx

Bài 5: Hàm trong Javascript

Như vậy, sau khi trải qua các bài học trước về Kiểu dữ liệuPhạm vi hoạt độngToán tử và Biểu thức trong Javascript (JS). Các bạn đã có những kiến thức nền tảng giúp cho việc lập trình sau này được bài bản và khoa học hơn. Đến với bài này, chúng ta cùng nhau tìm hiểu về Hàm trong Javascript.

Hàm trong Javascript

Hàm trong Javascript

Hàm hay chương trình con giúp chúng ta có thể thực hiện những công việc nào đó mà ta đã xây dựng sẵn, nó được dùng khi chúng ta xây dựng thư viện hay đệ quy. Giúp gói gọn những công việc mà chúng ta có nhu cầu sau này sử dụng lại.

Cú pháp

<script type="text/javascript">
	//Hàm không cần giá trị trả về 
	function tenFunction(doiSo1, doiSo2, ...) {
		//Công việc cần xử lý
	}

	//Hàm cần giá trị trả về
	function tenFunction(doiSo1, doiSo2, ...) {
		return giaTriTraVe;
	}
</script>
  • Khi định nghĩa hàm, chúng ta sẽ có hai lựa chọn đó là hàm trả về hay hàm không trả về giá trị.

 

Ví dụ

Trường hợp 1:

(Vui lòng bật F12 trên Chrome/Firefox và chuyển sang Tab Console để thấy kết quả)

<script type="text/javascript">
	var a = 5;
	var b = 10;
	function cong(a, b) {
		return a + b;
	}
	var c = cong(a,b);
	console.log(c);
</script>

Kết quả:

15

Trường hợp 2:

<script type="text/javascript">
	var a = 5;
	var b = 10;
	function cong(a, b) {
		c = a + b;
		console.log('Hello World!');
	}
	cong(a,b);
	console.log(c);
</script>

Kết quả:

Hello World!
15
  • Sau 2 trường hợp kể trên, các bạn thấy rằng trong trường hợp 1 chúng ta có thể dùng hàm “cong()” với 2 đối số là “a” và “b”. Và hàm này đơn giản là khi ta dùng hàm này và truyền các đối số vào tương ứng cho hàm “cong()” thì nó sẽ thực hiện phép cộng mà ta đã viết bên trong nó. Sau đó, để có thể lưu lại giá trị mà chúng ta đã cộng thì chúng ta cần dùng 1 biến khác bên ngoài hàm “cong()” và nó sẽ lưu lại giá trị từ hàm “cong()” của chúng ta trả về khi chúng ta dùng từ khóa “return”.
  • Với trường hợp 2, hàm “cong()” vẫn thực hiện việc cộng như trên và dùng biến “c” là biến toàn cục để lưu lại giá trị khi chúng ta sử dụng hàm “cong()”, sau đó chúng ta đơn giản chỉ hiển thị một chuỗi “Hello World!” ra ngoài màn hình. Như vậy các bạn thấy, rõ ràng chúng ta không cần giá trị trả về với hàm này. Vì chúng ta đã lưu giá trị cộng vào biến “c” toàn cục và chúng ta còn có thể hiển thị một chuỗi nào đó hoặc hành động bất kì mà không cần thiết phải có giá trị trả về.

Câu hỏi: Khi nào thì chúng ta nên dùng hàm trả về? Và khi nào dùng hàm không trả về?

Trả lời:

  • Tùy mục đích sử dụng của lập trình viên mà chúng ta sẽ quyết định nên viết hàm như thế nào. Ví dụ chúng ta muốn lập trình ra một hàm và nó có mục đích rõ ràng ví dụ như “cộng, trừ, nhân, chia” hay các mục đích xử lý dữ liệu được chỉ định rõ ràng nào khác thì lúc đó chúng ta cần giá trị trả về.
  • Còn khi chúng ta muốn viết một hàm có khả năng thực hiện nhiều công việc bên trong nó, giống như việc bạn lên lịch để thực hiện công việc trong ngày được gói gọn trong một cuốn sổ tay và khi bạn thực hiện có phải bạn sẽ làm theo thứ tự từng việc được sắp xếp sẵn trong ngày cho đến hết đúng không nào.
  • Vì thế hãy suy nghĩ thật kĩ khi viết để tránh các trường hợp viết quá nhiều hàm nhưng chức năng không rõ ràng sẽ gây bất lợi cho bạn trong việc sử dụng lại chính thư viện của mình sau này.

Trong bài học sau, chúng ta sẽ cùng tìm hiểu về Anonymous Function và Closure. Đây là 2 khái niệm rất phổ biến trong thời buổi công nghệ hiện nay, giúp cho việc lập trình của chúng ta nhanh chóng, hiệu quả và dễ hiểu hơn rất là nhiều.