Phạm vi hoạt động của biến trong Javascript

Bởi Phuoc Nguyen vào December 2015

Ở bài Tìm hiểu kiểu dữ liệu trong Javascript chúng ta đã được biết qua cách để khai báo và sử dụng Javascript rồi. Trong đó, chúng ta cũng tìm hiểu sơ lược về các kiểu dữ liệu phổ biến bên trong Javascript cũng như đại đa số các ngôn ngữ lập trình khác đều có. Thì trong bài học này, chúng ta sẽ tìm hiểu về phạm vi hoạt động của biến.

Khi định nghĩa một biến trong Javascript, chúng ta cần phải quan tâm đến phạm vi hoạt động của biến. Bởi vì nếu định nghĩa trùng, có khả năng ứng dụng của chúng ta có thể chạy sai vì phạm vi hoạt động của nó đến toàn ứng dụng. Và khi đó, điều mà các bạn cần quan tâm nhất đó chính là khi khởi tao biến có từ khóa “var” hay không có từ khóa “var” sẽ như thế nào trong Javascript.

Định nghĩa biến có từ khóa “var”

1. Định nghĩa biến “a” và dùng hàm “func()” để trả về giá trị của biến “a”:

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

Kết quả:

2. Định nghĩa biến “a” bằng từ khóa “var” và can thiệp biến “a” bên trong “func()”:

Kết quả:

3. Định nghĩa biến “a” bằng từ khóa “var” và trong hàm “func()” cũng dùng từ khóa “var”:

Kết quả:

Định nghĩa biến không dùng từ khóa “var”

1. Định nghĩa biến “a” và dùng hàm “func()” để trả về giá trị của biến “a”:

Kết quả:

2. Định nghĩa biến “a” không dùng từ khóa “var” và can thiệp biến “a” bên trong hàm “func()”:

Kết quả:

3. Định nghĩa biến “a” không dùng từ khóa “var” và can thiệp biến “a” bên trong hàm “func()” nhưng dùng từ khóa “var” để định nghĩa lại biến “a”:

Kết quả:

Tuy nhiên, ví dụ cuối cùng sau đây sẽ khiến bạn không ít bối rối khi nhìn qua:

1. Có từ khóa “var”:

Kết quả:

2. Không có từ khóa “var”:

Kết quả:

Tôi sẽ note lại cho các bạn các ý chính sau đây:

  1. Định nghĩa biến với từ khóa “var” trong phạm vi hàm nào, thì biến đó sẽ có phạm vi sử dụng chỉ trong hàm đó hay còn gọi là biến cục bộ.
  2. Khi không dùng từ khóa “var” để định nghĩa biến, thì biến đó sẽ được xem là biến toàn cục.
  3. Khi sử dụng lại biến đã được định nghĩa với từ khóa “var” hay không từ khóa “var”. Tuyệt đối chỉ cần dùng lại tên biến đã định nghĩa trước đó và không được dùng lại từ khóa “var” để gọi lại biến, vì như thế sẽ vô tình khiến biến đó trở thành biến cục bộ hoặc bị ghi đè.
  4. Khi viết javascript, vui lòng tắt Cache của trình duyệt để cho kết quả chính xác nhất. Vì nếu trình duyệt cache lại dữ liệu cũ. Nhiều khi các bạn sẽ sử dụng các biến không được định nghĩa nhưng vô tình do lần thử trước đó đã được lưu lại, như thế bạn sẽ không thể nhận ra được là cách viết mình có gặp lỗi hay không.

Nguồn: http://thienanblog.com/javascript/javascript-co-ban/bai-2-pham-vi-hoat-dong-cua-bien-trong-javascript/