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...
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:
giao_trinh_javascript_phan_1.pdf



