Giáo trình JavaScript

Tóm tắt Giáo trình JavaScript: ...một khối trong đoạn script document.write() cách thức JavaScript Xuất ra một xâu trên cửa sổ hiện thời một cách tuần tự theo file HTML có đoạn script đó document.writeln() Cách thức JavaScript Tơng tự cách thức document.write() nhng viết xong tự xuống dòng. alert() Cách thức của ...huyển, giá trị lại đợc chuyển thành kiểu của toán hạng bên trái. Sau đây là các toán tử dịch chuyển: << Toán tử dịch trái. Dịch chuyển toán hạng trái sang trái một số lợng bit bằng toán hạng phải. Các bit bị chuyển sang trái bị mất và 0 thay vào phía bên phải. Ví dụ: 4<<2 trở thàn... một giá trị trả về. Bởi vì JavaScript là ngôn ngữ có tính định kiểu thấp nên không cần định nghĩa kiểu tham số và giá trị trả về của hàm. Hàm có thể là thuộc tính của một đối tợng, trong trờng hợp này nó đợc xem nh là ph- ơng thức của đối tợng đó. Lệnh function đợc sử dụng để tạo ra hàm trong...

pdf39 trang | Chia sẻ: havih72 | Lượt xem: 260 | Lượt tải: 0download
Nội dung tài liệu Giáo trình JavaScript, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
hể có các kết 
quả khác nhau phụ thuộc vào vị trí xuất hiện trớc hay sau của ++ hay -- với tên biến (là 
x trong trờng hợp này). Nếu ++ đứng trớc x, x sẽ đợc tăng hoặc giảm trớc khi giá trị x đ-
ợc gán cho y. Nếu ++ hay -- đứng sau x, giá trị của x đợc gán cho y trớc khi nó đợc tăng 
hay giảm.
JavaScript 15
một trong hai expr1 và expr2 đúng.
! expr Là toán tử logic NOT phủ định giá trị của expr.
2.1.6. Bitwise
Với các toán tử thao tác trên bit, đầu tiên giá trị đợc chuyển dới dạng số nguyên 32 bit, sau 
đó lần lợt thực hiện các phép toán trên từng bit.
& Toán tử bitwise AND, trả lại giá trị 1 nếu cả hai bit cùng là 1.
| Toán tử bitwise OR, trả lại giá trị 1 nếu một trong hai bit là 1.
^ Toán tử bitwise XOR, trả lại giá trị 1 nếu hai bit có giá trị khác nhau
Ngoài ra còn có một số toán tử dịch chuyển bitwise. Giá trị đợc chuyển thành số nguyên 
32 bit trớc khi dịch chuyển. Sau khi dịch chuyển, giá trị lại đợc chuyển thành kiểu của 
toán hạng bên trái. Sau đây là các toán tử dịch chuyển:
<< Toán tử dịch trái. Dịch chuyển toán hạng trái sang trái một số lợng bit bằng 
toán hạng phải. Các bit bị chuyển sang trái bị mất và 0 thay vào phía bên 
phải. Ví dụ: 4<<2 trở thành 16 (số nhị phân 100 trở thành số nhị phân 
10000)
>> Toán tử dịch phải. Dịch chuyển toán hạng trái sang phải một số lợng bit 
bằng toán hạng phải. Các bit bị chuyển sang phải bị mất và dấu của toán 
hạng bên trái đợc giữ nguyên. Ví dụ: 16>>2 trở thành 4 (số nhị phân 10000 
trở thành số nhị phân 100)
>>> Toán tử dịch phải có chèn 0. Dịch chuyển toán hạng trái sang phải một số 
lợng bit bằng toán hạng phải. Bit dấu đợc dịch chuyển từ trái (giống >>). 
Những bit đợc dịch sang phải bị xoá đi. Ví dụ: -8>>>2 trở thành 
1073741822 (bởi các bit dấu đã trở thành một phần của số). Tất nhiên với 
số dơng kết quả của toán tử >> và >>> là giống nhau.
Có một số toán tử dịch chuyển bitwise rút gọn:
Kiểu bitwise thông thờng Kiểu bitwise rút gọn
x = x << y x << = y
x = x >> y x - >> y
x = x >>> y x >>> = y
x = x & y x & = y
x = x ^ y x ^ = y
x = x | y x | = y
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 16
Bài tập
2.1.7. Câu hỏi
Hãy đánh giá các biểu thức sau:
1. a. 7 + 5 
 b. "7" + "5" 
 c. 7 == 7 
 d. 7 >= 5 
 e. 7 <= 7 
2. f. (7 < 5) ? 7 : 5 
 g. (7 >= 5) && (5 > 5) 
 h. (7 >= 5) || (5 > 5)
2.1.8. Trả lời
Các biểu thức đợc đánh giá nh sau:
1. a. 12 
 b. "75" 
 c. true 
 d. true 
 e. true 
2. f. 5 
 g. false 
 h. true
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 17
3. Các lệnh
Có thể chia các lệnh của JavaScript thành ba nhóm sau:
• Lệnh điều kiện.
• Lệnh lặp.
• Lệnh tháo tác trên đối tợng.
 Câu lệnh điều kiện
Câu lệnh điều kiện cho phép chơng trình ra quyết định và thực hiện công việc nào đấy dựa 
trên kết quả của quyết định. Trong JavaScript, câu lệnh điều kiện là if...else
if ... else
Câu lệnh này cho phép bạn kiểm tra điều kiện và thực hiện một nhóm lệnh nào đấy dựa 
trên kết quả của điều kiện vừa kiểm tra. Nhóm lệnh sau else không bắt buộc phải có, nó 
cho phép chỉ ra nhóm lệnh phải thực hiện nếu điều kiện là sai.
Cú pháp
if ( )
{
//Các câu lệnh với điều kiện đúng
}
else
{
//Các câu lệnh với điều kiện sai
}
Ví dụ:
if (x==10){
document.write(“x bằng 10, đặt lại x bằng 0.”);
x = 0;
}
else
document.write(“x không bằng 10.”);
 Câu lệnh lặp
Câu lệnh lặp thể hiện việc lặp đi lặp lại một đoạn mã cho đến khi biểu thức điều kiện đợc 
đánh giá là đúng. JavaScipt cung cấp hai kiểu câu lệnh lặp:
Khoa Toan tin, Đại học Quốc gia Hà Nội
Chú ý
Ký tự { và } đợc sử dụng để tách các khối mã.
JavaScript 18
• for loop
• while loop
3.1.1. Vòng lặp for
Vòng lặp for thiết lập một biểu thức khởi đầu - initExpr, sau đó lặp một đoạn mã cho đến 
khi biểu thức đợc đánh giá là đúng. Sau khi kết thúc mỗi vòng lặp, biểu thức 
incrExpr đợc đánh giá lại.
Cú pháp:
for (initExpr; ; incrExpr){
//Các lệnh đợc thực hiện trong khi lặp
}
Ví dụ:
For loop Example 
for (x=1; x<=10 ; x++) {
y=x*25;
document.write("x ="+ x +";y= "+ y + "");
}
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 19
Ví dụ này lu vào file for_loop.Html.
Vòng lặp này sẽ thực hiện khối mã lệnh cho đến khi x>10.
3.1.2. while
Vòng lặp while lặp khối lệnh chừng nào còn đợc đánh giá là đúng
Cú pháp:
while ()
{
//Các câu lệnh thực hiện trong khi lặp
}
Ví dụ:
x=1;
while (x<=10){
y=x*25;
document.write("x="+x +"; y = "+ y + "");
x++;
}
Kết quả của ví dụ này giống nh ví dụ trớc.
3.1.3. Break
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;
Khoa Toan tin, Đại học Quốc gia Hà Nội
Hình 5.1: Kết quả của lệnh for...loop
JavaScript 20
Đoạn mã sau lặp cho đến khi x lớn hơn hoặc bằng 100. Tuy nhiên nếu giá trị x đa vào 
vòng lặp nhỏ hơn 50, vòng lặp sẽ kết thúc
Ví dụ:
while (x<100)
{
if (x<50) break;
x++;
}
3.1.4. continue
Lệnh continue giống lệnh break nhng khác ở chỗ việc lặp đợc kết thúc và bắt đầu từ đầu 
vòng lặp. Đối với vòng lặp while, lệnh continue điều khiển quay lại ; với for, 
lệnh continue điều khiển quay lại incrExpr.
Cú pháp
continue;
Ví dụ:
Đoạn mã sau tăng x từ 0 lên 5, nhảy lên 8 và tiếp tục tăng lên 10
x=0;
while (x<=10)
{
document.write(“Giá trị của x là:”+ x+””);
if (x=5)
{
x=8;
continue;
}
x++;
}
 Các câu lệnh thao tác trên đối tợng
JavaScript là một ngôn ngữ dựa trên đối tợng, do đó nó có một số câu lệnh làm việc với 
các đối tợng.
3.1.5. for...in
Câu lệnh này đợc sử dụng để lặp tất cả các thuộc tính (properties) của một đối tợng. Tên 
biến có thể là một giá trị bất kỳ, chỉ cần thiết khi bạn sử dụng các thuộc tính trong vòng 
lặp. Ví dụ sau sẽ minh hoạ điều này
Cú pháp
for ( in )
{
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 21
//Các câu lệnh
}
Ví dụ
Ví dụ sau sẽ lấy ra tất cả các thuộc tính của đối tợng Window và in ra tên của mỗi thuộc 
tính. Kết quả đợc minh hoạ trên hình 5.2.
For in Example 
document.write("The properties of the Window object are: 
");
for (var x in window)
document.write(" "+ x + ", ");
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 22
3.1.6. new
Biến new đợc thực hiện để tạo ra một thể hiện mới của một đối tợng
Cú pháp
objectvar = new object_type ( param1 
[,param2]... 
[,paramN])
Ví dụ sau tạo đối tợng person có các thuộc tính firstname, lastname, age, sex. Chú ý 
rằng từ khoá this đợc sử dụng để chỉ đối tợng trong hàm person. Sau đó ba thể hiện 
của đối tợng person đợc tạo ra bằng lệnh new
New Example 
function person(first_name, last_name, age, sex){
this.first_name=first_name;
this.last_name=last_name;
this.age=age;
this.sex=sex;
}
person1= new person("Thuy", "Dau Bich", "23", "Female");
person2= new person("Chung", "Nguyen Bao", "24", "Male");
person3= new person("Binh", "Nguyen Nhat", "24", "Male");
Khoa Toan tin, Đại học Quốc gia Hà Nội
Hình 5.2: Kết quả của lệnh for...in
JavaScript 23
person4= new person("Hoàn", "Đỗ Văn", "24", "Male");
document.write ("1. "+person1.last_name+" " + 
person1.first_name + "" );
document.write("2. "+person2.last_name +" "+ 
person2.first_name + "");
document.write("3. "+ person3.last_name +" "+ 
person3.first_name + "");
document.write("4. "+ person4.last_name +" "+ 
person4.first_name+"");
3.1.7. this
Từ khoá this đợc sử dụng để chỉ đối tợng hiện thời. Đối tợng đợc gọi thờng là đối tợng 
hiện thời trong phơng thức hoặc trong hàm.
Cú pháp
this [.property]
Có thể xem ví dụ của lệnh new.
Khoa Toan tin, Đại học Quốc gia Hà Nội
Hình 5.3: Kết quả của ví dụ lệnh New
JavaScript 24
3.1.8. with
Lệnh này đợc sử dụng để thiết lập đối tợng ngầm định cho một nhóm các lệnh, bạn có thể 
sử dụng các thuộc tính mà không đề cập đến đối tợng.
Cú pháp
with (object)
{
// statement
}
Ví dụ:
Ví dụ sau chỉ ra cách sử dụng lệnh with để thiết lập đối tợng ngầm định là document và có 
thể sử dụng phơng thức write mà không cần đề cập đến đối tợng document
With Example 
with (document){
write(“This is an exemple of the things that can be 
done ”);
write(“With the with statment. ”);
write(“This can really save some typing”);
}
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 25
Các hàm (Functions)
JavaScript cũg cho phép sử dụng các hàm. Mặc dù không nhất thiết phải có, song các hàm 
có thể có một hay nhiều tham số truyền vào và một giá trị trả về. Bởi vì JavaScript là ngôn 
ngữ có tính định kiểu thấp nên không cần định nghĩa kiểu tham số và giá trị trả về của 
hàm. Hàm có thể là thuộc tính của một đối tợng, trong trờng hợp này nó đợc xem nh là ph-
ơng thức của đối tợng đó.
Lệnh function đợc sử dụng để tạo ra hàm trong JavaScript.
Cú pháp
function fnName([param1],[param2],...,[paramN])
{
//function statement
}
Ví dụ:
Ví dụ sau minh hoạ cách thức tạo ra và sử dụng hàm nh là thành viên của một đối tợng. 
Hàm printStats đợc tạo ra là phơng thức của đối tợng person
Function Example 
function person(first_name, last_name, age, sex)
{
this.first_name=first_name;
Khoa Toan tin, Đại học Quốc gia Hà Nội
Hình 5.4: Kết quả của ví dụ lệnh with
JavaScript 26
this.last_name=last_name;
this.age=age;
this.sex=sex;
this.printStats=printStats;
}
function printStats() {
with (document) {
write (" Name :" + this.last_name + " " + 
this.first_name + "" );
write("Age :"+this.age+"");
write("Sex :"+this.sex+"");
}
}
person1= new person("Thuy", "Dau Bich", "23", "Female");
person2= new person("Chung", "Nguyen Bao", "24", "Male");
person3= new person("Binh", "Nguyen Nhat", "24", "Male");
person4= new person("Hoan", "Do Van", "23", "Male");
person1.printStats();
person2.printStats();
person3.printStats();
person4.printStats();
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 27
Các hàm có sẵn
JavaScript có một số hàm có sẵn, gắn trực tiếp vào chính ngôn ngữ và không nằm trong 
một đối tợng nào:
• eval
• parseInt
• parseFloat
3.1.9. eval
Hàm này đợc sử dụng để đánh giá các biểu thức hay lệnh. Biểu thức, lệnh hay các đối tợng 
của thuộc tính đều có thể đợc đánh giá. Đặc biệt hết sức hữu ích khi đánh giá các biểu 
thức do ngời dùng đa vào (ngợc lại có thể đánh giá trực tiếp).
Cú pháp:
returnval=eval (bất kỳ biểu thức hay lệnh hợp lệ trong Java)
Ví dụ:
Khoa Toan tin, Đại học Quốc gia Hà Nội
1.1.1.1.1. Hình 8: Ví dụ về hàm
Hình 5.5: Kết quả việc sử dụng hàm
JavaScript 28
Eval Example 
var string=”10+ Math.sqrt(64)”;
document.write(string+ “=”+ eval(string));
3.1.10. parseInt
Hàm này chuyển một chuỗi số thành số nguyên với cơ số là tham số thứ hai (tham số này 
không bắt buộc). Hàm này thờng đợc sử dụng để chuyển các số nguyên sang cơ số 10 và 
đảm bảo rằng các dữ liệu đọc nhập dới dạng ký tự đợc chuyển thành số trớc khi tính toán. 
Trong trờng hợp dữ liệu vào không hợp lệ, hàm parseInt sẽ đọc và chuyển dạng chuỗi đến 
vị trí nó tìm thấy ký tự không phải là số. Ngoài ra hàm này còn cắt dấu phẩy động.
Cú pháp
parseInt (string, [, radix])
Ví dụ:
 perseInt Exemple 
Khoa Toan tin, Đại học Quốc gia Hà Nội
 Hình 5.6 Ví dụ hàm Eval
JavaScript 29
document.write("Converting 0xC hex to base-10: " + 
parseInt(0xC,10) + "");
document.write("Converting 1100 binary to base-10: " + 
parseInt(1100,2) + "");
Hình 5.7: Ví dụ parInt
3.1.11. parseFloat
Hàm này giống hàm parseInt nhng nó chuyển chuỗi thành số biểu diễn dới dạng dấu phẩy 
động.
Cú pháp
parseFloat (string)
Ví dụ:
Ví dụ sau minh hoạ cách thức xử lý của parseFloat với các kiểu chuỗi khác nhau. Hình 5.8 
minh họa kết quả
 perseFload Exemple 
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 30
document.write("This script will show how diffrent strings 
are ");
document.write("Converted using parseFloat");
document.write("137= " + parseFloat("137") + "");
document.write("137abc= " + parseFloat("137abc") + "");
document.write("abc137= " + parseFloat("abc137") + "");
document.write("1abc37= " + parseFloat("1abc37") + "");
Mảng (Array)
Mặc dù JavaScript không hỗ trợ cấu trúc dữ liệu mảng nhng Netscape tạo ra phơng thức 
cho phép bạn tự tạo ra các hàm khởi tạo mảng nh sau:
function InitArray(NumElements){
this.length = numElements;
for (var x=1; x<=numElements; x++){
this[x]=0
}
return this;
}
Nó tạo ra một mảng với kích thớc xác định trớc và điền các giá trị 0. Chú ý rằng thành 
phần đầu tiên trong mảng là độ dài mảng và không đợc sử dụng.
Để tạo ra một mảng, khai báo nh sau:
Khoa Toan tin, Đại học Quốc gia Hà Nội
Hình 5.8 : Kết quả của ví dụ parseFloat
JavaScript 31
myArray = new InitArray (10)
Nó tạo ra các thành phần từ myArray[1] đến myArray[10] với giá trị là 0. Giá trị các thành 
phần trong mảng có thể đợc thay đổi nh sau:
myArray[1] = "Nghệ An"
myArray[2] = "Lào"
Sau đây là ví dụ đầy đủ:
 Array Exemple 
function InitArray(numElements) {
this.length = numElements;
for (var x=1; x<=numElements; x++){
this[x]=0
}
return this;
}
myArray = new InitArray(10);
myArray[1] = "Nghệ An";
myArray[2] = "Hà Nội";
document.write(myArray[1] + "");
document.write(myArray[2] + "");
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 32
Hình 5.9: Ví dụ mảng
Sự kiện
JavaScript là ngôn ngữ định hớng sự kiện, nghĩa là sẽ phản ứng trớc các sự kiện xác định 
trớc nh kích chuột hay tải một văn bản. Một sự kiện có thể gây ra việc thực hiện một đoạn 
mã lệnh (gọi là các chơng triình xử lý sự kiện) giúp cho chơng trình có thể phản ứng một 
cách thích hợp.
Chơng trình xử lý sự kiện (Event handler): Một đoạn mã hay một hàm đ-
ợc thực hiện để phản ứng trớc một sự kiện gọi là chơng trình xử lý sự kiện. Chơng trình xử 
lý sự kiện đợc xác định là một thuộc tính của một thẻ HTML:
Ví dụ sau gọi hàm CheckAge() mỗi khi giá trị của trờng văn bản thay đổi:
Đoạn mã của chơng trình xử lý sự kiện không là một hàm; nó là các lệnh của JavaScript 
cách nhau bằng dấu chấm phẩy. Tuy nhiên cho mục đích viết thành các module nên viết 
dới dạng các hàm.
Một số chơng trình xử lý sự kiện trong JavaScript:
onBlur Xảy ra khi input focus bị xoá từ thành phần form
onClick Xảy ra khi ngời dùng kích vào các thành phần hay liên 
kết của form.
onChange Xảy ra khi giá trị của thành phần đợc chọn thay đổi
onFocus Xảy ra khi thành phần của form đợc focus(làm nổi lên).
onLoad Xảy ra trang Web đợc tải.
onMouseOver Xảy ra khi di chuyển chuột qua kết nối hay anchor.
onSelect Xảy ra khi ngời sử dụng lựa chọn một trờng nhập dữ liệu 
trên form.
onSubmit Xảy ra khi ngời dùng đa ra một form.
onUnLoad Xảy ra khi ngời dùng đóng một trang
Sau đây là bảng các chơng trình xử lý sự kiện có sẵn của một số đối tợng. Các đối tợng 
này sẽ đợc trình bày kỹ hơn trong phần sau.
Đối tợng Chơng trình xử lý sự kiện có sẵn
Selection list onBlur, onChange, onFocus
Text onBlur, onChange, onFocus, onSelect
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 33
Textarea onBlur, onChange, onFocus, onSelect
Button onClick
Checkbox onClick
Radio button onClick
Hypertext link onClick, onMouseOver, onMouseOut
Clickable Imagemap area onMouseOver, onMouseOut
Reset button onClick
Submit button onClick
Document onLoad, onUnload, onError
Window onLoad, onUnload, onBlur, onFocus
Framesets onBlur, onFocus
Form onSubmit, onReset
Image onLoad, onError, onAbort
Ví dụ sau là một đoạn mã script đơn giản của chơng trình xử lý sự kiện thẩm định giá trị 
đa vào trong trờng text. Tuổi của ngời sử dụng đợc nhập vào trong trờng này và chơng 
trình xử lý sự kiện sẽ thẩm định tính hợp lệ của dữ liệu đa vào. Nếu không hợp lệ sẽ xuất 
hiện một thông báo yêu cầu nhập lại. Chơng trình xử lý sự kiện đợc gọi mỗi khi trờng 
AGE bị thay đổi và focus chuyển sang trờng khác. Hình 5.10 minh hoạ kết quả của ví dụ 
này
 An Event Handler Exemple 
function CheckAge(form) {
if ( (form.AGE.value120) )
{
alert("Tuổi nhập vào không hợp lệ! Mời bạn nhập 
lại");
form.AGE.value=0;
}
}
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 34
Nhập vào tên của bạn:
Tên 
Đệm 
Họ 
Age <INPUT TYPE=TEXT NAME="AGE" MAXLENGTH=3 SIZE=2 
onChange="CheckAge(PHIEU_DIEU_TRA)">
Bạn thích mùa nào nhất:
Mùa xuân
Mùa hạ
Mùa thu
Mùa đông
Hãy chọn những hoạt động ngoài trời mà bạn yêu thích:
Đi bộ
Trợt tuyết<INPUT TYPE=CHECKBOX NAME="HOAT_DONG" VALUE="Truot 
tuyet">
Thể thao dới nớc<INPUT TYPE=CHECKBOX NAME="HOAT_DONG" 
VALUE="Duoi nuoc">
Đạp xe
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 35
 Hình 5.10: Minh hoạ cho ví dụ Event Handler
Bài tập
3.1.12. Câu hỏi
1. Viết một đoạn lệnh JavaScript sử dụng cách thức confirm() và câu lệnh if...then để thực 
hiện:
Hỏi ngời sử dụng có muốn nhận đợc một lời chào không
Nếu có thì hiện ảnh wellcome.jpg và một lời chào.
Nếu không thì viết ra một lời thông báo
2. Viết một đoạn lệnh JavaScript để thực hiện:
• Hỏi ngời sử dụng: "10+10 bằng bao nhiêu?"
• Nếu đúng thì hỏi tiếp: Có muốn trả lời câu thứ hai không?"
• Nếu muốn thì hỏi: "10*10 bằng bao nhiêu?"
• Đánh giá kết quả bằng biểu thức logic sau đó viết ra màn hình:
Đúng: "CORRECT"; Sai: "INCORRECT"
Gợi ý: Sử dụng biến toàn cục lu kết quả đúng để so sánh với kết qủa đa vào. 
3. Câu lệnh nào trong các câu sau đây sử dụng sai thẻ sự kiện
a. 
b. 
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 36
c. 
d. 
e. 
f. 
4. Điều gì xảy ra khi thực hiện script sau:
 Exercise 5.4
 <!-- HIDE FROM OTHER BROWSERS
 var name = "";
 function welcome() {
 name = prompt("Welcome to my page! What's Your 
Name?","name");
 }
 function farewell() {
 alert("Goodbye " + name + ". Thanks for visiting my 
page.");
 }
 // STOP HIDING FROM OTHER BROWSERS -->
This is my page!
5. Sử dụng vòng lặp while để mô phỏng các vòng lặp for sau:
a.
 for (j = 4; j > 0; j --) {
 document.writeln(j + ""); 
 }
b.
 for (k = 1; k <= 99; k = k*2) {
 k = k/1.5;
 }
c.
 for (num = 0; num <= 10; num ++) { 
 if (num == 8)
 break;
 }
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 37
3.1.13. Trả lời
1. Sử dụng cách thức confirm() và cấu trúc if...then:
Execise 5.1
var conf=confirm("Click OK to see a wellcome 
message!")
if (conf){
document.write("");
document.write("Wellcome you come to CSE's 
class");
}
else
document.write("What a pity! You have just click 
Cancel button");
2. Thực hiện hỏi ngời sử dụng:
Exercise 3.3
<!-- HIDE FROM OTHER BROWSERS
// DEFINE VARIABLES FOR REST OF SCRIPT
var question="What is 10+10?";
var answer=20;
var correct='CORRECT';
var incorrect='INCORRECT';
// ASK THE QUESTION
var response = prompt(question,"0");
// chECK THE ANSWER THE FIRST TIME
if (response != answer) {
// THE ANSWER WAS WRONG: OFFER A SECOND chAncE
if (confirm("Wrong! Press OK for a second chance."))
 response = prompt(question,"0");
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 38
 } else {
 // THE ANSWER WAS RIGHT: OFFER A SECOND QUESTION
 if (confirm("Correct! Press OK for a second 
question.")) {
 question = "What is 10*10?";
 answer = 100;
 response = prompt (question,"0");
 }
 }
 // chECK THE ANSWER
 var output = (response == answer) ? correct : 
incorrect;
 // STOP HIDING FROM OTHER BROWSERS -->
 <!-- HIDE FROM OTHER BROWSERS
 // OUTPUT RESULT
 document.write(output);
 // STOP HIDING FROM OTHER BROWSERS -->
3. Các câu sai: a, c, e. Các câu đúng: b, d, f
4. Khi chơng trình đợc chạy (load), hàm wellcome sẽ thực hiện hỏi tên ngời sử 
dụng, lu tên đó vào biến toàn cục name. Khi ngời sử dụng sang một địa chỉ URL 
khác, hàm farewell() sẽ thực hiện gửi một lời cảm ơn tới ngời sử dụng.
5. Sử dụng vòng lặp while nh sau:
a.
 j = 5;
 while (--j > 0) {
 document.writeln(j + ""); 
 }
 b.
 k = 1;
 while (k <= 99) {
 k = k * 2 / 1.5;
 }
c.
 num = 0;
Khoa Toan tin, Đại học Quốc gia Hà Nội
JavaScript 39
 while (num <= 10) {
 if (num++ == 8)
 break;
 }
Khoa Toan tin, Đại học Quốc gia Hà Nội

File đính kèm:

  • pdfgiao_trinh_javascript_phan_1.pdf