Javascript cơ bản
Javascript (sau đây gọi là Js
) là một ngôn ngữ phổ biến để tạo website và ứng dụng web hiện đại ngày nay. Ứng dụng của Js không chỉ là phía client side (trên trình duyệt máy khách) mà còn ở cả server side (máy chủ).
Hiện tại với những bạn đang theo frontend thì có thể dùng Js để làm website ứng dụng với sự hỗ trợ của nhiều framework, thư viện như Reactjs, Angular, Vue… viết bằng Js và đang rất phổ biến.
Mỗi thư viện, framework đều có ưu điểm, nhược điểm riêng mà tùy vào quy mô, tính chất yêu cầu của dự án hay chỉ đơn giản là phù hợp nhất cho team thì sẽ được chọn để phát triển website, ứng dụng web của bạn. Nhưng những thư viện này đều có một điểm chung là được viết bằng ngôn ngữ Js.
Do đó việc chúng ta hiểu rõ, nắm rõ về cú pháp, ngôn ngữ cách dùng của Js chính là một lợi thế vô cùng lớn để có thể “chấp 500 anh em thư viện, framework”
1. Set up cơ bản
Học Js cũng không cần phải chuẩn bị gì phức tạp. Ta chỉ cần file index.html
có gắn file app.js
như sau
|
|
file app.js
hiện tại không có gì. Vậy tạm thời là xong phần setup cơ bản rồi
2. Sử dụng console
Sử dụng trình duyệt Google Chrome và mở file index.html
lên hiện tại sẽ không có gì. Bấm chuột phải vào phần nội dung trang và chọn Inspect hoặc bạn có thể bấm tổ hợp phím tắt là Ctrl + Shift + I
và một cửa sổ hiện lên có nhiều tab bạn chọn tab console
. Chỗ này chính là nơi mà bạn sẽ làm việc chủ yếu sau này
Bạn có thể viết code Js trong cửa sổ console này và bạn có thể viết nhiều dòng code với tổ hợp phím shift + Enter
để xuống dòng trong console.
Ta viết một số dòng Js đầu tiên trong file app.js
như sau:
|
|
console.table
giúp hiển thị nội dung dưới dạng bảng ở console log cho dễ xem3. Variables (var, let, const) hoisting, scope
Trong Js có sử dụng biến variable
bạn tưởng tượng biến giống như hộp nhỏ để đựng đồ trong đó. Muốn sử dụng biến thì ta phải khai báo với từ khóa var
, let
hoặc const
. Sau từ khóa sẽ là tên biến, sau khi khai báo xong có thể sử dụng phép gán
bằng dấu bằng =
trong Js để khai báo giá trị cho biến đó.
Khi khai báo biến ta cũng không cần phải khai báo ngay giá trị hoặc kiểu định dạng. Ta cũng có thể gán lại giá trị của biến từ kiểu dữ liệu này sang kiểu dữ liệu khác nguy hiểm vãi
Quy tắc đặt tên biến là tên biến phải bắt đầu bằng chữ cái hoặc ký tự gạch dưới
_
. Không được bắt đầu bằng số
Tên biến có thể đặt tên theo quy tắc camelCase, Pascal hoặc underscore (gạch dưới)
Ví dụ:
var firstName = ‘DEV’ // tên đặt theo quy tắc camelCase
let Last Name = ‘đời’ // tên đặt theo quy tắc Pascal
const middle_name = ‘chém gió’// tên đặt theo quy tắc underscore
Cơ chế hoisting
với biến var
Cơ chế hoisting hiểu đơn giản là khi ta khai báo biến (và cả hàm nữa) bằng từ khóa var
thì Js mặc định sẽ đưa biến đó lên đầu của scope (phạm vi) mà biến đó có thể được gọi. Lúc đó giá trị của biến luôn bị trả về là undefined
cho dù lúc khai báo biến ta có gán giá trị cho biến đó rồi.
ví dụ khi dòng code này
|
|
Khi đó với cơ chế hoisting thì đoạn code Js sẽ chạy theo trình tự như sau:
|
|
Đúng ra thì trong bình thường lập trình thì ngôn ngữ lập trình đó phải thông báo lỗi ở chỗ này để lập trình viên sửa code kịp thời.
Còn như Js thì không báo lỗi mà vẫn cứ cho ra kết quả undefined
thì làm sao mà mò lỗi trong hàng ngàn dòng code.
Vì sao lại có chế độ hoisting này? Theo mình đoán thì có thể do Js cho phép khởi tạo biến mà không cần dùng từ khóa var
.Ví dụ
|
|
Vậy làm sao ta có thể phục chuyện này. May mắn là Js cũng cung cấp khắc phục bằng cách dùng use strict
. Ví dụ
|
|
let, const
Đây là những cách khai báo biến bắt đầu có từ những phiên bản Js cải tiến sau này và let
và const
đều không bị hoisting. Khác nhau cơ bản giữa chúng là let
có thể bị gán lại giá trị còn const
thì không bị gán lại giá trị toàn bộ biến.
|
|
Nhưng với const
thì ta có thể thay đổi lại giá trị bên trong của biến là object
hoặc array
.
|
|
scope (phạm vi)
Khi khai báo biến trong Js thì biến đó sẽ có một scope(phạm vi) mà trong phạm vi đó nó có thể được gọi, gán giá trị. Còn nếu ngoại phạm vi đó thì ta không thể gọi biến đó được. Có hai loại phạm vi trong Js là
- Global scope: là biến đó có thể dùng bên ngoài hay bên trong một hàm. Ví dụ
|
|
- Function scope: là biến chỉ được dùng trên trong một hàm. Ví dụ
|
|
- Block scope: block ở đây là một cặp ngoặc nhọn
{}
|
|
Trước
ES2015
hay còn gọi là (ES6) Javascript không có block scope. Từ ES6 trở đi thì biến được khai báo > bằnglet
vàconst
và có phạm vi được gọi trong block scope và sẽ không thể gọi bên ngoài block đó
1 2 3 4 5
{ let doidev = "chém gió" const name = "Mãi chém gió" } // biến doidev & name sẽ không thể truy cập từ chỗ này vì nằm bên ngoài cặp ngoặc nhọn block scope
4. Data types (tham trị, tham chiếu)
Data types
Có 2 kiểu dữ liệu chính trong Js là nguyên thủy (Primitive) và object.
Primitive
- Number: 1,2,3, 4..
- String: ‘doidev’..
- Boolean: true, false
- Null
- Undefined
- Symbol (ES6)
Null
vàundefined
bằng nhau về mặt giá trị. Nhưng khác nhau về kiểu
1 2 3 4
typeof undefined // undefined typeof null // object null == object // true null === object // false
undefined
undefined
nghĩa là Không có giá trị
. Undefined xuất hiện ở
|
|
null
null
nghĩa là rỗng (khác với chuỗi rỗng ''
) và null
thường dùng cho object mà không có giá trị như mong đợi
Ta không thể truy cập thuộc tính của null
và undefined
. Ví dụ
|
|
Kiểu object
Tất cả những kiểu không thuộc kiểu dữ liệu nguyên thủy thì được coi là kiểu dữ liệu object. Ví dụ
|
|
Khai báo
- Contructor: là cách khai báo kiểu dữ liệu nguyên thủy
- Wrapper object: là cách khai báo tạo ra object cho boolean, number, string với các wrapper object tương ứng là
Boolean
,Number
,String
. Ví dụ:
|
|
Để lấy giá trị nguyên thủy từ các object trên thì ta dùng hàm valueOf()
|
|
Chúng có thể đóng vai trò như một function để chuyển đổi về giá trị nguyên thủy. Ví dụ
|
|
Tham trị, tham chiếu
Tham trị
Khi giá trị thuộc kiểu dữ liệu nguyên thủy, biến sẽ chứa giá trị của biến đó
|
|
Tham chiếu
Khi gán hoặc sao chép dữ liệu thuộc kiểu object thì biến đó chỉ lưu lại địa chỉ của giá trị đó trên vùng nhớ. Nó không lưu lại giá trị được gán
|
|
Truthy và Falsy
Truthy và Falsy là những giá trị mà Js ép về kiểu Boolean sẽ cho ra true
hoặc false
. Giống như dùng Boolean(value)
để ép kiểu vậy.
- Truthy: là chuỗi khác rỗng, số khác
0
và tất cảobject
.
|
|
- Falsy: là
undefined
,null
,false
,0
,NaN
,''
5. Operators (Toán tử)
Có khoảng 10 loại toán tử khác nhau trong Js ví dụ như
- Toán tử gán: Assignment operators
- Toán tử so sánh: Comparison operators
- Toán tử hạng: Arithmetic operators
- Toán tử bitwise: Bitwise operators
- Toán tử logic: Logical operators
- Toán tử chuỗi: String operators
- Toán tử ba ngôi: Conditional (terary) operator
- Toán tử phẩy: Comma operator
- Toán tử một ngôi: Unary operators
- Toán tử quan hệ: Relation operators Ví dụ cho những toán tử hay dùng nhất trong Js như sau:
Toán tử hạng
|
|
Toán tử gán
|
|
Toán tử so sánh
- So sánh bằng về giá trị
|
|
- So sánh bằng về giá trị và kiểu dữ liệu
|
|
- So sánh không bằng về giá trị
|
|
- So sánh không bằng về giá trị và kiểu dữ liệu
|
|
- So sánh lớn bé hơn
|
|
- Toán tử ba ngôi
|
|
- Toán tử Logic
- Logic là
và
ký hiệu&&
vàhoặc
ký hiệu||
|
|
- Logic phủ định ký hiệu dấu chấm than phía trước
!
nghĩa là phủ định lại nó
|
|
6. Câu lệnh điều kiện (if-else)
- Câu lệnh if
|
|
- Câu lệnh if else
|
|
- Câu lệnh if else if
|
|
- Switch case
Ví dụ 1
|
|
Ví dụ 2
|
|
- Nâng cao
- Toán tử ba ngôi
1 2
let note = null note ? console.log('Note có ghi chú') : console.log('Note không có giá trị')
- Toán tử logic
1 2
let ghiChu = 'yes' !ghiChu && console.log('Note có ghi chú')
7. Loops (Vòng lặp)
while
Vòng lặp while
kiểm tra điều kiện trước khi thực hiện code bên trong
|
|
do - while
Vòng do-while
thưc hiện code trước ít nhất một lần rồi mới kiểm tra điều kiện cho lần tiếp theo trong
|
|
Vòng for
|
|
Vòng for-in
dùng lặp các key
của object
|
|
Vòng for-of
dùng các cặp value của interable object điển hình như array hay string
|
|
8. Function (hàm)
Một function trong Js là một đoạn code được thiết kế để làm nhiệm vụ riêng biệt. Javascript function được thực khi gọi nó.
Phân loại
Hàm trong Js chia làm 2 loại
- Khai báo hàm (Function Declaration)
Với cách này thì hàm sẽ bị
hoisting
và Js cho phép chúng ta gọi hàm trước khi hàm đó được khai báo.
|
|
- Biểu thức hàm (Function Expression) Khai báo hàm bằng cách này thì sẽ không được hoisting và sẽ báo lỗi. Ví dụ
|
|
Giải thích: Biến var
expression vẫn được hoisting và đẩy lên trên cùng của scope nhưng chỉ là khai báo mà không được gán cho hàm. Vì thế nên có lỗi TypeError
Lưu ý khi khai báo như bên dưới thì sẽ chạy luôn function và gán handle là giá trị mà function return
|
|
Ngoài ra ta còn có hàm
- IIFE (Immediately Invokable Function Expression) IIFE là khởi tạo một hàm và thực thi ngay lập tức sau đó
|
|
Ta nên thêm dấu ;
vào phía trước IIFE để tránh trường hợp làm chạy một function ngoài ý muốn, ví dụ
|
|
Với ví dụ bên trên chúng ta khai báo hàm handle
rồi chạy luôn function với tham số đầu vào là một function IIFE sẽ gây ra lỗi không mong muốn. Vì thế nên ta thêm dấu chấm phẩy ;
trước IIFE.
- Hàm ẩn danh (Anonymous Function) Hàm ẩn danh là một hàm không tên. Nếu ta để ý thì vế bên phải một biểu thức hàm là một hàm ẩn danh, hay IIFE cũng là một hàm ẩn danh. Ngoài ra hàm ẩn danh còn xuất hiện ở callback.
Function bên trong hàm setTimeout()
là một hàm ẩn danh.
|
|
- Hàm rút gọn - hàm mũi tên (Arrow Function)
Hàm rút gọn ngắn hơn biểu thức hàm và không phụ thuộc vào
this
. Áp dụng tốt cho hàm ẩn danh nhưng thể dùng làm hàm khởi tạo
|
|
Lưu ý với arrow function
- Không có
this
- Không được gọi với
new
- Cũng không có
super
khi kế thừa class
Phân biệt parameter, argument
- Parameter (tham số) đóng vai trò là giữ chỗ cho giá trị sẽ được đưa vào hàm khi tạo hàm
- Argument (đối số) đóng vai trò là giá trị đưa vào hàm khi gọi hàm Ví dụ cụ thể
|
|
- Tham số mặc định (default parameter)
|
|
- Rest parameter
|
|
9. This và function nâng cao
this
this
trong Js là từ khóa đề cập đến object mà nó thuộc về
this trong method
Trong method, this
sẽ đề cập đến objec chủ quản
|
|
this khi đứng một mình
this
khi đứng một mình đề cập đến global object. Nếu là trình duyệt thì sẽ là [Window Object]
|
|
this trong function
Nếu mặc định thì this
sẽ đề cập đến global object
|
|
this trong ‘strict mode’
this
trong use strict
sẽ là undefined
|
|
Tiếp tục xem thêm ví dụ trong constructor function
|
|
this trong event handlers
Trong một HTML event handler, this
đề cập đến HTML element mà nó nhận event
Ví dụ
|
|
this trong callback
this
trong callback thì không đề cập đến function chứa callback đó. Lưu ý chỗ này. Ví dụ
|
|
Để sửa vấn đề này có thể dùng arrow function viết lại
|
|
ví dụ thêm bên dưới this
không đề cập đến broke
mà đề cập đến obj
|
|
Vì thế để biết this
trong callback đề cập đến cái nào thì phải hiểu được hàm chứa callback gọi callback như thế nào.
High order function
High order function (HOC) là một function mà nhận vào tham số là function hoặc return về một function
|
|
callback
Là một function mà được truyền vào một function khác như một tham số
|
|
Closure
Là cách một function cha return về một function con bên trong nó. Ở trong function con đó thể truy cập và thực thi các biến của function cha. Phải đủ 2 điều kiện này mới gọi là closure
function. Ví dụ
|
|
Currying
Là một kỹ thuật cho phép chuyển đổi một function nhiều tham số thành những function liên tiếp có một tham số
|
|
10. Call, apply, bind
Chỉ có function mới có có thể gọi 3 hàm này
call
Gọi hàm cho phép bạn truyền vào một object và các đối số phân cách nhau bởi dấu phẩy
apply
Tương tự call. Gọi hàm, cho phép truyền vào một object và tiếp theo là các đối số thông qua mảng
bind
Trả về một hàm mới. Cho phép truyền vào một object và các đối số phân cách nhau bởi dấu phẩy
Khi dùng 3 hàm này
this
đề cập đến object được truyền vào
|
|
11. Number & Method
Không như nhiều ngôn ngữ lập trình khác, kiểu số thường được chia ra nhiều loại như integer
, short
, long
, float
… Riêng với Js thì chỉ có number
Số nguyên
- Số nguyên trong Js có độ chính xác đến 15 chữ số
|
|
Số thập phân
- Số thập phân giới hạn 17 chữ số. Nhưng không phải lúc nào tính toán số thập phân cũng chính xác 100%. Ví dụ
|
|
Để giải quyết vấn đề này chúng ta nhân với 10
để làm tròn nó thành số nguyên rồi thực hiện phép tính. Ví dụ bên trên sửa lại là
|
|
Hoặc làm tròn đến phần thập phân cho phép. Ví dụ trên viết lại là
|
|
Hoặc dùng thư viện ngoài như math.js
|
|
Tính toán số
Nếu cộng hai hay nhiều số thì kết quả ra số. Nhưng nếu công hai hay nhiều số lẫn lộn cả số và chuỗi thì kết quả sẽ ghép chung số chuỗi vào với nhau. Do đó có lưu ý là trước khi làm phép cộng, tính toán thì chuyển hết về số.
|
|
NaN
- NaN (Not a Number)
NaN là một giá trị trong Js để xác định một số không phải là một số hợp lệ. Đồng thời có phương thức
isNaN
để xác định xem đó có phải là số hay không
|
|
Infinity
- Infinity - Dương vô cực còn
-Infinity
là âm vô cực
|
|
Hexadecimal (Hệ thập lục phân)
Nếu ta biểu diễn số bắt đầu bằng 0x
thì Js sẽ hiểu đây là hệ thập lục phân
|
|
Methods (Phương thức)
Cùng tìm hiểu một số phương thức thường dùng khi làm việc với Number
toString()
Phương thức này ép kiểu số về chuỗi
|
|
toFixed()
Dùng toFixed
làm tròn số. Ví dụ
|
|
Ép kiểu về số
Chúng ta có 3 cách
- Number(): chuyển đổi giá trị về kiểu số
- parseInt(): chuyển đổi giá trị về kiểu số nguyên
- parseFloat(): chuyển đổi giá trị về kiểu số thập phân Ví dụ nào
|
|
12. String & Method
Chuỗi có thể chứa trong nháy đơn 'chuỗi'
hoặc nháy kép "chuỗi"
. Vị trí đầu tiên của chuỗi là 0
. Ví dụ
|
|
Methods
length
Trả về độ dài chuỗi
|
|
indexOf
indexOf()
trả về vị trí đầu tiên của từ khóa trong một chuỗi. Nếu không trả về -1
|
|
Tách chuỗi
- slice(start, end) nghĩa là tách từ vị trí start tới vị trí end
|
|
- substring(start, end) tương tự slice nhưng không thể nhận số âm
|
|
- substr() tương tự slice() nhưng tham số thứ 2 là độ dài chuỗi
|
|
Replace
Thay thế chuỗi, cấu trúc replace(find, replace)
. Ví dụ
|
|
Chuyển đổi
Phương thức chuyển đổi từ chữ hoa sang chữ thường và ngược lại
|
|
concat()
Nối chuỗi ví dụ
|
|
trim()
Xóa khoảng trắng hai bên chuỗi. ví dụ
|
|
charAt() hoặc []
Lấy ký tự từ một chuỗi. Ví dụ
|
|
charCodeAt()
Lấy UTF-16 code tại vị trí bất kỳ trong chuỗi
|
|
split()
Chuyển chuỗi sang mảng và tham số là chuỗi ngăn cách
|
|
13. Array & Methods
Mảng có thể chứa nhiều kiểu dữ liệu bên trong
|
|
Phương thức
length
return độ dài mảng
|
|
Array.isArray() hoặc instanceof()
Để nhận biết một biến có phải là mảng hay không
|
|
toString() hoặc join()
Để chuyển mảng sang chuỗi
|
|
push()
Thêm 1 phần từ vào cuối mảng, return lại chiều dài mảng mới
|
|
pop()
Xóa phần tử cuối cùng của mảng, return lại phần tử vừa xóa
|
|
shift()
Xóa phần tử đầu tiên của mảng, return lại phần tử vừa xóa
|
|
unshift()
Thêm 1 phần tử vào đầu mảng, return lại chiều dài mảng mới
|
|
Lưu ý khi dùng delete, phần tử sẽ bị mất khỏi mảng nhưng để lại 1 khoảng trống. Khi truy cập đến khoảng trống này thì giá trị của nó là undefined
|
|
splice
splice(start, itemDelete_1, itemDelete_2, … itemAdd_1, itemAdd_2) Hàm splice dùng để thêm hoặc xóa nhiều phần tử trong 1 mảng. Return về mảng với những phần tử vừa được xóa
|
|
|
|
slice(start, end)
Tách ra một mảng mới từ mảng cũ
|
|
concat()
Tạo mới một mảng bằng cách nối các mảng cũ
|
|
spread operator
Phân rã mảng (object) thành từng phần tử nhỏ ( tưởng tượng [1,2,3] => 1,2,3)
|
|
forEach()
Lặp qua từng phần tử trong mảng
Tham số là một callback function với 3 đối số:
- giá trị phần tử
- index phần tử
- mảng đang thực hiện
|
|
map()
Tạo một mảng mới bằng cách thực hiện tính toán trên mỗi phần tử. map() không thay đổi mảng cũ
|
|
filter()
Tạo một mảng mới với những phần tử thỏa điều kiện
|
|
find()
Trả về phần tử thỏa điều kiện đầu tiên. Nếu không có sẽ return undefined
|
|
findIndex()
Trả về index của phần tử thỏa điều kiện đầu tiên. Nếu không có sẽ return -1
|
|
indexOf()
Trả về index của phần tử trong mảng. Nếu không có sẽ return -1
|
|
every()
Nếu mọi phần tử thỏa điều kiện sẽ return true, còn không sẽ return false
|
|
some()
Nếu có một phần tử thỏa điều kiện sẽ return true, còn không sẽ return false
|
|
includes()
Kiểm tra một phần tử có trong mảng hay không. return true/false
|
|
reverse()
Đảo ngược thứ tự các item trong array
|
|
sort()
Mặc định sẽ sắp xếp các giá trị như là string
Điều này hoạt động ổn cho string (“Apple” thì đứng trước “Banana”).
Tuy nhiên, nếu số cũng bị cho là string, 25
thì bị cho là lớn hơn 100
, bởi vì 2
thì lớn hơn 1
.
Bởi vì điều này, phương thức sort()
sẽ thực thi không chính xác khi sắp xếp number.
Bạn có thể fix điều này bằng cách cung cấp một compare function.
compare function sẽ có dạng như thế này.
|
|
Nếu kết quả là âm, a
sẽ được xếp trước b
.
Nếu kết quả là dương, a
sẽ được xếp sau b
.
Nếu kết quả là 0, sẽ không có sự thay đổi nào giữa 2 giá trị.
Ví dụ sắp xếp tăng dầng:
|
|
Ví dụ sắp xếp giảm dần:
|
|
reduce()
Dùng để “xào nấu” một array, ví dụ tính tổng 1 array hay từ 1 array chuyển thành 1 array, object khác.
|
|
initialValue
là option, có hoặc không vẫn được. Nếu có thì ở vòng lặp đầu tiên, total = initalValue
và current = arr[0]
. Tức là currentIndex sẽ chạy từ 0 cho đến hết.
|
|
Còn nếu không dùng inititalValue
thì đầu tiên total = arr[0]
và current = arr[1]
. Tức là currentIndex sẽ chạy từ 1 cho đến hết.
|
|
14. Object & Methods
- entry của object là cặp key, value tương ứng
- key thì luôn luôn là một string hoặc number
- value có thể là bất cứ giá trị nào của Javascript, kể cả function
- method (phương thức) là những thuộc tính mà value của nó là function
|
|
Methods
Đọc – thêm – sửa – xóa
|
|
Object.assign()
Dùng để merge object
|
|
Spread operator:
Dùng để shallow copy (copy nông) hoặc merge object
|
|
Object.keys()
Trả về mảng các key của object
|
|
Object.values()
Trả về mảng các value của object
|
|
Lặp object với for in
|
|
15. Date & time
object Date được dựa trên giá trị thời gian là số mili giây kể từ ngày 1 tháng 1 năm 1970 UTC. Để tạo một object Date ta có 4 cách
Tạo Date
|
|
Tham khảo get current mili giây tại đây
Ví dụ
|
|
Methods
Một số phương thức hay dùng của object Date
getDate()
Return về 1 ngày trong tháng (1-31)getDay()
Return về 1 ngày trong tuần (0-6)getFullYear()
Return về nămgetHours()
Return về giờ (0-23)getMilliseconds()
Return về milli giây (0-999)getMinutes()
Return về phút (0-59)getMonth()
Return về tháng (0-11)getSeconds()
Return về giây (0-59)toISOString()
Return về định dạng thời gian chuẩn ISO
16. Object Window
Window object
Được hỗ trợ trên mọi trình duyệt. Nó đại diện cho cửa sổ trình duyệt.
Tất cả global Javascript object, function, biến (phải khai báo bằng var
nha, không phải let/const
) đều tự động trở thành thuộc tính (hoặc phương thức) của window
object.
Ngay cả document
object (của HTML DOM) cũng là một thuộc tính của window
object
|
|
|
|
|
|
Vậy nên nếu nó là global object, function, biến thì bạn có thể không cần tiền tố window phía trước
Một số thuộc tính và phương thức của window object
window.innerHeight
: Chiều cao bên trong của cửa sổ trình duyệt (pixel)window.innerWidth
: Chiều rộng bên trong của cửa sổ trình duyệt (pixel)window.open()
: mở một cửa sổwindow.close()
: đóng cửa sổ hiện tạiwindow.resizeTo()
: resize cửa sổ hiện tại
Window location
window.location
(location) object có thể được sử dụng để lấy thông tin địa chỉ url hiện tại và chuyển hướng trình duyệt sang 1 trang mới.
window.location.href
return về URL trang hiện tạiwindow.location.hostname
return tên domainwindow.location.pathname
return pathmane của trang hiện tạiwindow.location.protocol
return giao thức trang web (http: hoặc https:)window.location.assign()
chuyển hướng sang một trang mới
Ví dụ:
|
|
Window Navigator
window.navigator
có thể cho ta biết thông tin trình duyệt của người dùng
Ví dụ
navigator.language
: return ngôn ngữ trình duyệtnavigator.userAgent
: return user-agent header được gửi bởi trình duyệt đến server
Nói chung thì navigator còn cực nhiều thuộc tính và phương thức, liệt kê không hết luôn, mọi người có thể thao khảo hình dưới
Window History
window.history
object chứa lịch sử của trình duyệt
Một số phương thức phổ biến:
history.back()
dùng để trở về trang trướchistory.forward()
dùng để đi đến trang tiếp theo
17. Popup
Chúng ta có 3 loại popup mà javascript trên trình duyệt cung cấp: Alert, Confirm, Prompt
Alert
Alert thường được sử dụng để thông báo cho người dùng về một việc gì đó, người dùng phải nhấn “OK” để hoàn thành quá trình
|
|
Confirm
Confirm thường sử dụng để xác nhận người dùng có chập nhận làm một điều gì đó. confirm()
sẽ return về giá trị boolean
|
|
Prompt
Prompt thường được dùng nếu bạn muốn người dùng nhập vào một giá trị và bạn sẽ dùng giá trị đó để thực hiện một hành động gì đó.
Nếu người dùng nhấn OK sẽ return về giá trị nhập, nếu nhấn Cancel sẽ return null
|
|