Professional Documents
Culture Documents
----- -----
1.1. JavaScript là gì ?
JavaScript (viết tắt là JS) là một ngôn ngữ lập trình kịch bản phía máy khách, mã
lệnh được thực thi bởi trình duyệt của người dùng.
JavaScript được sử dụng rộng rãi trong việc kết hợp với HTML/CSS để thiết kế web
động.
JavaScript cung cấp cho designer một công cụ lập trình vì HTML không phải là một
ngôn ngữ lập trình, nhưng JavaScript là một ngôn ngữ lập trình với cú pháp rất đơn
giản. Hầu hết mọi người có thể nhúng các đoạn mã JavaScript vào những trang HTML
làm cho nó trở nên sinh động hơn.
JS có thể đưa vào trang HTML một đoạn văn bản mới mà trước đó nội dung của
trang web này chưa hề có.
JS có thể phản hồi lại với một sự kiện nào đó như người sử dụng nhấn chuột lên một
phần tử của trang HTML hoặc thay đổi một giá trị nào đó trong ô nhập liệu.
JS có thể đọc hoặc thay đổi nội dung của các phần tử trong trang HTML.
JS có thể dùng để kiểm tra dữ liệu trước khi trình duyệt gửi dữ liệu đến máy chủ.
Điều này giúp cho máy chủ không phải xử lý quá nhiều.
JS có thể dùng để phát hiện các loại trình duyệt khác nhau để có thể tải những phần
thiết kế phù hợp với trình duyệt đó.
JS có thể dung để sử dụng tạo các tập tin cookie lưu trữ và truy xuất thông tin trên
máy tính của người truy cập website.
1
Để sử dụng JS rất đơn giản, chúng ta chỉ cần đưa các câu lệnh của JS vào trong thẻ
<script> của HTML.
Để tránh trường hợp một số trình duyệt không hỗ trợ JS và có thể gây ra lỗi khi website
có sử dụng JS, ta có thể thêm một đoạn sau khi chú của HTML cho nội dung của JS.
JS trong một trang web thực thi lệnh trong 2 trường hợp sau :
TH1 : Thực hiện lệnh ngay khi trang web được tải về trình duyệt của người sử dụng.
2
TH2 : Thực hiện lệnh khi nhận được một tác động nào đó như nhấn nút, di chuyển
chuột hoặc đưa chuột lên một phần tử nào đó của HTML…
Ví dụ :
Trường hợp 1 :
Trường hợp 2 :
3
- Đặt trong cặp thẻ <body> của trang web :
- Đặt trong tập tin .js sau đó nhúng tập tin này vào website. Tạo tập tin alert .js có
nội dung sau :
Để in ra một giá trị nào đó bằng JS ra trình duyệt, ta sử dụng câu lệnh đơn giản sau :
Cú pháp :
4
Ví dụ :
Ta có thể dùng câu lệnh này để in các giá trị có thể chuỗi, số, thẻ HTML…
Lập trình đoạn mã sẽ không đơn giản là một vài dòng lệnh mà đôi khi có thể lên đến
cả ngàn dòng lệnh trên một trang web nên ta cần ghi chú cho các dòng lệnh, đoạn mã,
đoạn lệnh để khi chúng ta hoặc người khác đọc có thể hiểu được đoạn mã đó có ý nghĩa
gì.
Có 2 kiểu ghi chú thường được sử dụng trong ngôn ngữ lập trình:
- Nhiều dòng ghi chú bắt đầu bằng /* và kết thúc với */
5
var hoten;
2.1.2. Khai báo giá trị cho biến
Sau khi khai báo, nếu biến vẫn chưa được gán giá trị thì mặc định nó sẽ có giá trị là
undefined.
Để gán giá trị cho một biến, ta sử dụng cú pháp như sau:
Ví dụ:
Sau khi một biến đã được gán giá trị, nếu muốn cập nhật cho nó một giá trị mới thì
ta sử dụng cú pháp như sau:
Ví dụ:
Cập nhật lại giá trị của biến hoten thành Nguyễn Văn B
6
2.1.4. Khai báo biến và gán giá trị đồng thời
Thay vì phải chia thành hai bước: (1) khai báo biến (2) gán giá trị thì ta có thể gôm
chung thành một bước khai báo biến rồi gán giá trị luôn.
Ví dụ:
- Ta cũng có thể vừa khai báo vừa gán giá trị cho biến. Tuy nhiên, không bắt buộc phải
gán giá trị cho tất cả các biến cùng một lượt.
Ví dụ:
- Tên biến là một tập hợp gồm một hoặc nhiều ký tự.
- Tên biến có thể chứa các ký tự trong danh sách bên dưới:
7
Các chữ cái thường a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z
Các chữ số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Dấu gạch dưới _
Dấu đô la $ (khuyến khích KHÔNG NÊN sử dụng dấu đô la trong việc
đặt tên biến)
- Tên biến tuyệt đối không được phép chứa các ký tự đặt biệt (Ví dụ như: @, #, !,
%, ^, &, ....)
- Tên biến không được bắt đầu bằng một chữ số.
Một số ví dụ đặt tên biến đúng quy Một số ví dụ đặt tên biến sai quy tắc
tắc
w 9username
username
user%^name
Username
userName
username2
_username
Thông thường chúng ta sử dụng các toán tử toán học như cộng, trừ, nhận, chia.. để
xử lý thay đổi giá trị các biến trong JavaScript.
Sau đây là bảng danh sách các toán tử trong JavaScript loại toán học hay dùng.
Toán tử Mô tả
+ Phép cộng. Nếu là chuỗi thì nó sẽ thực hiện thao tác nối chuỗi,
còn nêu là số thì nó sẽ cộng hai số lại. Ví dụ:
8
- Phép trừ và dùng với number. Ví dụ:
% Phép chia lấy phần dư, nghĩa là khi chia hai số lại với nhau và
kết quả nó sẽ lấy phần dư của phép toán. Ví dụ:
9
++ Phép tăng giá trị hiện tại lên 1 đơn vị. Phép này có hai cách sử
dụng đó là đặt nó trước biến và đặt nó sau biến.
Trường hợp đứng trước biến thì nó sẽ tăng trước khi lấy giá trị,
ví dụ:
Trường hợp đứng sau biến thì nó sẽ lấy giá trị rồi tăng lên, ví dụ:
--
Phép giảm giá trị hiện tại xuống 1 đơn vị. Phép này cũng có hai
cách dùng đó là đặt trước biên và đặt sau biến.
Trường hợp đứng trước biến thì nó sẽ giảm trước khi lấy giá trị,
ví dụ:
10
Trường hợp đứng sau biến thì nó sẽ lấy giá trị rồi giảm xuống, ví
dụ:
Toán Ví dụ Mô tả
tử
= x=y Gán giá trị của biến x bằng giá trị của biến y, ví dụ:
+= x+=y
Tương đương với x = x + y. Ví dụ:
11
*= x*=y Tương đương với x = x * y. Ví dụ:
Toán tử quan hệ dùng để thể hiện mối quan hệ giữa hai toán tử trong toán học, còn
trong lập trình thì ta dùng toán tử quan hệ để nói đến mối quan hệ giữa hai biến hoặc
hai giá trị nào đó. Kết quả của toán tử quan hệ sẽ trả về một trong hai giá trị TRUE
hoặc FALSE.
Toán Ví dụ Mô tả
tử
> a>b Trả về TRUE nếu a lớn hơn b và FALSE nếu b lớn hơn
a
< a<b Trả về TRUE nếu a nhỏ hơn bê và FALSE nếu b nhỏ
hơn a
12
>= a >= b Trả về TRUE nếu a lớn hơn hoặc bằng b và FALSE
nếu a nhỏ hơn b
<= a <= b Trả về TRUE nếu a nhỏ hơn hoặc bằng b và FALSE
nếu a lớn hơn b
== a == b Trả về TRUE nếu a bằng b và FALSE nếu a khác b
!= a != b Trả về TRUE nếu a khác b và FALSE nếu a bằng b
Ví dụ:
Toán tử luân lý dùng để kết hợp hay phủ định biểu thức có chứa các toán tử quan
hệ, kết quả của sự kết hợp sẽ có giá trị là TRUE hoặc FALSE.
Toán Ý nghĩa
tử
&& AND: trả về kết quả là TRUE khi cả hai toán hạng đều TRUE
|| OR: trả về kết quả là TRUE khi cả hai hoặc một trong hai toán hàng
là TRUE
! NOT: Chuyển đổi giá trị của toán hạng từ TRUE sang FALSE hoặc
từ FALSE sang TRUE
Ví dụ:
13
CHƯƠNG 4: CÁC KIỂU DỮ LIỆU TRONG JAVASCRIPT
Trong JavaScript, các kiểu dữ liệu được chia thành những loại cơ bản như sau:
- string
- number
- boolean
- object
- undefined
- array
Trong JavaScript, các dữ liệu thuộc kiểu string (hay còn được gọi là "chuỗi") là một
tập hợp gồm các ký tự, chúng được viết bên trong cặp dấu nháy kép hoặc cặp dấu nháy
đơn.
Ví dụ:
o Giá trị của biến a là một chuỗi được viết bên trong cặp dấu nháy kép.
o Giá trị của biến b là một chuỗi được viết bên trong cặp dấu nháy đơn.
14
4.2. Dữ liệu kiểu number
Trong JavaScript, các dữ liệu thuộc kiểu number (hay còn được gọi là "số") là một
tập hợp của các con số (0 - 9) không chứa dấu khoảng trắng và có thể chứa dấu trừ (-)
nằm ở đầu để đại diện cho số âm.
Nếu một số được đặt bên trong gặp dấu nháy kép hoặc cặp dấu nháy đơn thì nó sẽ bị
chuyển sang kiểu dữ liệu string.
Ví dụ:
Trong JavaScript, các dữ liệu thuộc kiểu boolean chỉ có thể nhận một trong hai giá
trị, đó là:
▪ true (đúng)
▪ false (sai)
Ví dụ:
15
4.4. Dữ liệu kiểu object
Trong JavaScript, các dữ liệu thuộc kiểu object (hay còn được gọi là "đối
tượng") là một tập hợp gồm những cái tên và mỗi cái tên sẽ chứa đựng một giá trị dữ
liệu.
Ví dụ:
Trong JavaScript, khi một biến được khai báo mà không gán giá trị thì biến đó sẽ
có giá trị là undefined và kiểu dữ liệu cũng là undefined.
Ví dụ:
Trong JavaScript, array còn được gọi là mảng, nó là một trường hợp đặc biệt của
đối tượng. Mảng là một loại biến đặc biệt có thể lưu trữ nhiều giá trị đồng thời, mỗi
giá trị được gọi là một phần tử mảng.
Ví dụ:
16
4.7. Cách xác định kiểu dữ liệu
Để xác định kiểu của một dữ liệu nào đó thì ta sử dụng toán tử typeof
Ví dụ:
- Hàm là một tập hợp gồm nhiều câu lệnh, các câu lệnh này được sắp xếp theo một
thứ tự xác định để xây dựng thành một chức năng cụ thể.
- Mỗi hàm sẽ có một cái tên và hàm chỉ thực thi khi nó được gọi đến tên.
Ví dụ: Hàm gồm ba câu lệnh với chức năng là hiển thị một câu giới thiệu về bản
thân.
- Một hàm có thể được gọi nhiều lần hay nói cách khác là không giới hạn số lần
gọi hàm.
Ví dụ:
17
5.2. Phân loại hàm
- Hàm được chia làm hai loại cơ bản: hàm không có tham số và hàm có tham số.
- Hàm không có tham số là hàm mà kết quả thực thi của nó luôn luôn không thay
đổi.
Ví dụ:
- Hàm có tham số là loại hàm mà khi gọi hàm ta phải truyền giá trị vào cho nó. Tùy
vào giá trị được truyền mà hàm sẽ thực thi và cho ra kết quả khác nhau.
18
Ví dụ:
- Để khai báo (khởi tạo) một hàm thuộc thoại không có tham số, ta sử dụng cú pháp
như sau:
- Để gọi một hàm thuộc loại không có tham số, ta sử dụng cú pháp: tên hàm()
Ví dụ:
- Để khai báo một hàm thuộc thoại có tham số, ta sử dụng cú pháp như sau:
function tên hàm(tham số thứ nhất, tham số thứ hai, tham số thứ ba, ....) {
19
//Danh sách các câu lệnh của hàm
- Tham số có tính năng gần giống như biến, tuy nhiên tham số thì chỉ có thể sử
dụng bên trong hàm.
- Khi khai báo hàm, ta khai báo danh sách các tham số thì điều này cũng gần giống
như việc khai báo danh sách các biến.
- Đối với hàm có tham số, khi gọi hàm ta phải truyền giá trị cho các tham số theo
cú pháp như sau:
tên hàm (giá trị tham số thứ nhất, giá trị tham số thứ hai, giá trị tham số thứ ba,
....)
- Việc truyền giá trị cho tham số cũng tương tự như việc gán giá trị cho biến, nếu ta
gọi hàm mà không truyền giá trị cho các tham số thì mặc định các tham số sẽ có giá trị
là undefined.
Ví dụ:
- Để tránh tình trạng tham số bị nhận giá trị undefined thì trong lúc khai báo hàm ta
có thể gán giá trị mặc định cho các tham số, khi đó nếu lúc gọi hàm ta không truyền
giá trị cho tham số thì tham số sẽ sử dụng giá trị mặc định được gán lúc khai báo.
Ví dụ:
20
5.5. Gọi hàm thông qua một sự kiện
- Ta có thể thiết lập việc một hàm nào đó sẽ được thực thi khi một sự kiện nào đó
xảy ra (Ví dụ như: khi người dùng click chuột vào một phần tử, dí chuột vào một phần
tử, ....) bằng cách đặt câu lệnh gọi hàm vào bên trong thuộc tính sự kiện của phần tử.
Ví dụ:
Ví dụ:
21
CHƯƠNG 6. CÁC LỆNH TRONG JAVASCRIPT
- Lệnh if dùng để kiểm tra một điều kiện, nếu điều kiện đó là đúng thì một đoạn mã
xác định sẽ được thực thi.
- Cú pháp:
Ví dụ:
22
- Lệnh if ... else dùng để kiểm tra một điều kiện, nếu điều kiện đó là đúng thì một
đoạn mã xác định sẽ được thực thi, còn nếu điều kiện đó sai thì một đoạn mã xác định
khác sẽ được thực thi.
- Cú pháp:
Ví dụ:
- Lệnh if ... else if ... else là một dạng nâng cao của lệnh if ... else
- Lệnh if ... else if ... else dùng để mở rộng phạm vi kiểm tra các điều kiện khác nếu
tất cả những điều kiện phía trên là sai.
- Cú pháp :
23
Ví dụ :
Trong JavaScript, lệnh switch case được sử dụng với cú pháp như sau:
Ví dụ 1: Hiển thị tên của loại nước uống có giá trị bằng đúng với số tiền mà bạn
đang có.
24
Ví dụ 2 :
25
{
//Các câu lệnh thực hiện trong khi lặp
}
Ví dụ 1: Dùng vòng lặp while để hiển thị dãy số tăng dần từ một đến chín
Ví dụ 2: Dùng vòng lặp while để hiển thị dãy số giảm dần từ tám xuống hai
26
Câu lệnh break dùng để kết thúc việc thực hiện của vòng lặp for hay while. Chương
trình được tiếp tục thực hiện tại câu lệnh ngay sau chỗ kết thúc của vòng lặp.
Cú pháp:
break;
Ví dụ 1: Sử dụng lệnh break trong vòng lặp while
- Lệnh break cũng dùng để ngăn chặn việc thực thi những câu lệnh nằm sau trường
hợp so sánh trùng khớp trong lệnh switch case.
Ví dụ:
27
- Ngoài ra, lệnh break còn được dùng để thoát khỏi một khối lệnh. Tuy nhiên, khối lệnh đó phải được
gắn một nhản, và khi dùng lệnh break thì phải gọi kèm theo nhản của khối lệnh đó.
Ví dụ:
28
Ví dụ 3: Sử dụng lệnh continue trong vòng lặp do while
- Giá trị được lưu trong tên không chỉ đơn thuần là chuỗi, số, .... mà nó còn có thể là một hàm.
- Những cái tên lưu trữ các giá trị đơn thuần như chuỗi, số, .... thì được gọi là thuộc tính.
- Những cái tên lưu trữ giá trị là một hàm thì được gọi là phương thức.
Ví dụ: Câu lệnh dưới đây dùng để tạo một đối tượng có tên là SinhVien, đối tương
SinhVien có hai thuộc tính và một phương thức :
Thuộc tính name có giá trị là chuỗi Nguyễn Văn A
Thuộc tính year có giá trị là số 1993
Phương thức intro có giá trị là hàm function(){alert("Tên: " + this.name)}
29
7.2. Cách khai báo một đối tượng
Cú pháp :
var tên đối tượng = {
tên thuộc tính thứ nhất:giá trị,
tên thuộc tính thứ hai:giá trị,
tên thuộc tính thứ ba:giá trị,
tên phương thức thứ nhất:function(){
//Danh sách các câu lệnh của phương thức này
},
tên phương thức thứ hai:function(){
//Danh sách các câu lệnh của phương thức này
},
tên phương thức thứ ba:function(){
//Danh sách các câu lệnh của phương thức này
}
}
Ví dụ:
7.3. Cách truy cập vào thuộc tính của đối tượng
- Việc truy cập vào thuộc tính của đối tượng sẽ trả về giá trị của thuộc tính đó.
- Để truy cập vào thuộc tính của đối tượng, ta sử dụng cú pháp như sau:
30
7.4. Cách truy cập vào phương thức của đối tượng
- Việc truy cập vào phương thức của đối tượng sẽ giúp các câu lệnh trong phương thức được
thực thi.
- Để truy cập vào phương thức của đối tượng, ta sử dụng cú pháp như sau:
Cú pháp: array.toString();
Ví dụ:
31
Cú pháp :
array.join(chuỗi ký tự ngăn cách giữa các phần tử mảng trong chuỗi trả về) ;
Ví dụ:
Ví dụ: Thêm phần tử có giá trị là chuỗi Lenovo vào cuối mảng mobile
- Phương thức pop() được dùng để xóa phần tử nằm ở vị trí cuối mảng.
- Cú pháp:
array.pop();
Ví dụ: Xóa phần tử nằm ở vị trí cuối cùng của mảng mobile
- Phương thức unshift() được dùng để thêm một phần tử mới vào vị trí đầu mảng.
- Cú pháp:
Ví dụ: Thêm phần tử có giá trị là chuỗi Lenovo vào đầu mảng mobile
32
8.5. Xóa phần tử ở vị trí đầu mảng
- Phương thức shift() được dùng để xóa phần tử nằm ở vị trí đầu mảng.
- Cú pháp:
array.shift() ;
Ví dụ : Xóa phần tử nằm ở vị trí đầu tiên trong mảng mobile
- Phương thức slice() được dùng để trích xuất một phần của mảng ban đầu rồi trả về một
mảng mới.
- Cú pháp:
Trong đó:
"start" là chỉ số của phần tử bắt đầu được trích xuất.
"end" là chỉ số của phần tử kết thúc việc trích xuất (mảng trả về không bao gồm phần tử này)
33
Ví dụ:
- Phương thức match() dùng để trả về ký tự (hoặc chuỗi ký tự) trùng khớp với ký tự (hoặc chuỗi ký
tự) mà bạn muốn tìm kiếm bên trong một chuỗi nào đó.
Ví dụ:
Tuy nhiên, có hai vấn đề lớn đối với việc tìm kiếm ký tự trong chuỗi bằng phương thức
match():
o Thứ nhất: Phương thức match() phân biệt trường hợp chữ in hoa và chữ thường.
o Thứ hai: Phương thức match() chỉ trả về kết quả đầu tiên được tìm thấy.
Do vậy, để giải quyết hai vấn đề trên, ta cần phải sử dụng đến biểu thức chính quy.
- Biểu thức chính quy (Regular Expression) dùng để xây dựng nên một mẫu tìm kiếm chuỗi
- Khi bạn muốn tìm một thứ gì đó bên trong chuỗi thì biểu thức chính quy sẽ mô tả thứ mà
bạn đang muốn tìm.
34
/ký tự hoặc chuỗi ký tự muốn tìm/bổ nghĩa
o i: không phân biệt chữ in hoa hay chữ thường đối với ký tự hoặc chuỗi ký tự mà bạn
muốn tìm.
Ví dụ 1: Tìm chữ fOx (không phân biệt trường hợp chữ in hoa hay chữ thường) bên trong chuỗi text
Ví dụ 3: Tìm tất cả những chữ dO trong chuỗi text không phân biệt chữ in hoa hay
chữ in thường
- Lệnh try được dùng để kiểm tra (thực thi) một đoạn mã, nếu đoạn mã đó có chứa câu lệnh bị
lỗi thì những câu lệnh nằm phía sau câu lệnh bị lỗi sẽ không được thực thi. Tuy nhiên, những
câu lệnh nằm ngoài lệnh try thì vẫn thực thi bình thường.
- Lệnh try cần phải sử dụng kèm với lệnh catch hoặc lệnh finally.
- Lệnh catch dùng để xác định một đoạn mã và đoạn mã đó sẽ được thực thi nếu đoạn mã bên
trong lệnh try có chứa câu lệnh bị lỗi.
Ví dụ:
35
10.2. Lệnh throw
Ví dụ:
- Lệnh finally thường được đặt phía sau lệnh try hoặc try … catch.
36
Ví dụ:
37