Scope pollution là gì?

Phrase Programming

Scope pollution là khi chúng ta có quá nhiều biến toàn cục (global variable) tồn tại trong global namespace hoặc khi chúng ta sử dụng lại các biến trên các scope khác nhau. Scope pollution gây khó khăn cho việc theo dõi các biến khác nhau của chúng ta. Ví dụ: các biến có phạm vi toàn cục có thể xung đột với các biến khác có phạm vi cục bộ hơn, gây ra hành vi không mong muốn trong code.

Hãy xem một ví dụ về scope pollution trong Javascript trong thực tế để chúng ta biết cách tránh nó:

let num = 50;
 
const logNum = () => {
  num = 100; // Take note of this line of code
  console.log(num);
};
 
logNum(); // Prints 100
console.log(num); // Prints 100
  • Chúng ta có một biến num.
  • Bên trong thân hàm của logNum (), chúng ta muốn khai báo một biến mới nhưng lại quên sử dụng từ khóa let.
  • Khi chúng ta gọi logNum (), num được gán lại thành 100.
  • Việc gán lại bên trong logNum () ảnh hưởng đến biến toàn cục num.
  • Mặc dù việc gán lại được phép và chúng ta sẽ không gặp lỗi, nhưng nếu sau này chúng ta quyết định sử dụng num, chúng ta sẽ vô tình sử dụng giá trị mới của num.
Learning English Everyday