-
Một tính năng hay của JS là
-
tạo hình ảnh động.
-
Nhưng mà trước khi đụng đến cái đó, tôi muốn đảm bảo là
-
bạn hiểu về 1 global variable (biến toàn cục) này nữa,
-
biến này tồn tại trên mọi web page, gọi là window variable.
-
Tôi sẽ console.log biến đó và bạn cũng có thể dừng video,
-
vào dev tools xem trong biến đó có những gì.
-
Bạn thấy chưa?
-
Nó to thật đấy.
-
Có nhiều thông tin đến choáng ngợp.
-
Để bớt choáng thì tôi
-
sẽ cho bạn biết một số thuộc tính
-
và hàm mà bạn sẽ thường dùng đến trong biến đó.
-
Có window.location, tức là
-
thông tin về URL của trang web.
-
Tôi sẽ viết cái đó luôn ra trang này
-
để bạn đỡ phải dừng video liên tục.
-
Vậy là có textContent, rồi ta chỉ
-
"The URL of this page is " + window.location,
-
nhưng mà cái này là một đối tượng, nên
-
ta sẽ phải đi vào trong đối tượng đấy để tìm thuộc tính .href.
-
Thế là xong. Đây chính là URL của
-
trang web iframed này.
-
Một thuộc tính khác là window.navigator.userAgent,
-
tức là thông tin về trình duyệt
-
của dười dùng, gõ...
-
"The user agent is "
-
+ window.navigator.userAgent.
-
Cái string về user agent này sẽ
-
trông khá là lộn xộn,
-
vì nó không phải để cho người đọc,
-
và cũng khá là loạn
-
vì vốn người ta quen dặt nó thế.
-
Vậy nên khi lập trình web thì người ta sẽ dùng các thư viện có sẵn
-
để giải mã thông tin trong string này
-
xem trình duyệt và phần mềm hệ thống của người dùng là gì, đại loại thế.
-
Vì string này tự nó khó hiểu lắm.
-
Giờ đến một cái khác dễ hiểu hơn.
-
Có window.outerWidth và window.outerHeight.
-
Ví dụ, viết
-
"This webpage is " + window.outerWidth
-
ta hiện chiều rộng trước,
-
+ " by " + window.outerHeight.
-
Với tôi thì kết quả là 1280 by 715,
-
nhưng với bạn thì chắc sẽ là số khác,
-
tuỳ theo kích thước mà bạn đang xem
-
video này.
-
Giờ tôi sẽ cho bạn thấy một cái hay nữa.
-
Tôi sẽ xoá chữ window trong code này đi.
-
Và bạn thấy là code vẫn
-
chạy bình thường, là vì 'window' là
-
biến toàn cục mặc định trên trang web.
-
Khi trình duyệt tìm kiếm biến mà bạn muốn dùng,
-
nó sẽ tìm ở trong đối tượng window,
-
vì khi bạn tạo một biến toàn cục mới,
-
thì đối tượng window sẽ lưu biến đó làm thuộc tính của mình.
-
tức là bạn không nên tự tạo
-
biến có tên outerWidth hay outerHeight,
-
vì những biến tự tạo đó sẽ đè lên
-
các biến mặc định window.outerWidth và window.outerHeight.
-
Thường thì bạn nên không tạo biến toàn cục nào cả
-
vì chúng rất dễ đụng lẫn nhau
-
hoặc đụng vào các biến có sẵn trong window.
-
Để an toàn hơn, bạn cũng có thể tạo tiền tố cho các biến toàn cục,
-
ví dụ như trong Khan Academy, ta viết thêm KA_
-
lên đằng trường tất cả các biến toàn cục, để khỏi lẫn.
-
Vậy là xong về đối tượng window.
-
Tiếp theo ta sẽ học cách dùng
-
2 hàm trong đó để tạo hình ảnh động.