Trước khi tiếp tục
Trong bài viết này, chúng ta chỉ mới “chạm nhẹ” vào việc làm việc với JavaScript. Nếu bạn muốn tìm hiểu sâu hơn và nâng kỹ năng Google Tag Manager (GTM) của mình lên một tầm cao mới, hãy tham khảo khóa học JavaScript for Google Tag Manager của tôi.
Đây không phải là Custom JavaScript Variable
Tôi nhận thấy rằng một số người thường nhầm lẫn giữa JavaScript variables và Custom JavaScript variables trong Google Tag Manager. Đây là hai khái niệm hoàn toàn khác nhau.
JavaScript Variable dùng để lấy giá trị của một biến toàn cục (global variable), ví dụ như Page Title, Page URL, v.v.
Trong khi đó, Custom JavaScript Variable là một hàm (function) có thể phức tạp hơn nhiều, ví dụ: trả về nội dung được click nhưng chuyển thành chữ thường, hoặc lấy giá trị của một trường trong form, v.v.
Mô tả ngắn gọn
Một mô tả khá phổ biến trên Internet: JavaScript variable trả về giá trị được lưu trong biến JavaScript toàn cục mà bạn chỉ định.
Thừa nhận đi, nếu bạn mới làm quen với JavaScript hoặc chưa có kiến thức nền tảng, câu mô tả này có thể khiến bạn có thêm nhiều câu hỏi hơn là câu trả lời.
Biến JavaScript toàn cục (Global JavaScript Variable) là gì?
Tôi hứa sẽ cố gắng giải thích đơn giản nhất có thể, vì vậy hãy kiên nhẫn nhé. Trước khi đi sâu hơn, bạn cần hiểu về phạm vi (scope). Trong JavaScript, có hai loại phạm vi:
- Local scope (phạm vi cục bộ)
- Global scope (phạm vi toàn cục)
Các biến được khai báo bên trong một hàm JavaScript sẽ trở thành biến cục bộ (local), nghĩa là chúng không thể được truy cập (không nhìn thấy được) từ bên ngoài hàm đó. Hãy xem ví dụ dưới đây:
// code ở đây không thể sử dụng biến authorName
function myFunction() {
var authorName = “Julius”;
// code ở đây có thể sử dụng biến authorName
}
Biến authorName chỉ có thể được truy cập bên trong hàm myFunction.
Ngược lại, nếu một biến được khai báo bên ngoài hàm, nó sẽ trở thành biến toàn cục (global). Biến toàn cục có phạm vi toàn cục, nghĩa là tất cả các script và hàm trên trang web đều có thể truy cập được. Hãy sử dụng lại ví dụ trên nhưng đặt biến bên ngoài hàm:
var authorName = “Julius”;function myFunction() {
// code ở đây có thể sử dụng biến authorName
}
Điều này liên quan gì đến JavaScript Variable trong Google Tag Manager?
JavaScript Variable trong Google Tag Manager có thể lấy (fetch) giá trị của bất kỳ biến toàn cục nào đang tồn tại tại thời điểm đó trên trang.