CÁC CÂU LỆNH CỦA JAVASCRIPT

Một phần của tài liệu Kỹ năng lập trình web bct (Trang 61 - 67)

III.1. Câu lệnh

Các câu lệnh trong JavaScript cách nhau bằng dấu chấm phẩy (;), câu lệnh được chia ra hai loại: câu lệnh đơn giản và câu lệnh có cấu trúc.

Câu lệnh đơn giản gồm có : phép gán, lời gọi hàm. Ví dụ:

x = 7; // phép gán

count++; // thực hiện toán tử increment

xInt = Math.round(y); // gọi hàm round của đối tượng Math và gán giá trị cho biến xInt

window.alert("Kinh chao"); // gọi hàm alert của đối tượng window

Câu lệnh có cấu trúc gồm có : khối lệnh và các câu lệnh điều khiển (control statements), lệnh with (dùng cho kiểu Object)

Khối lệnh được bao bởi cặp ký hiệu { và }. Ví dụ: {

x1 = (b + Math.sqrt(delta))/2*a; x1 = (b - Math.sqrt(delta))/2*a;

window.document.write("Nghiệm là:" + x1 +"," + x2); }

III.2. Câu lệnh điều kiện

Trong JavaScript có hai câu lệnh điều kiện: câu lệnh if cho phép chương trình chọn một trong hai lựa chọn và câu lệnh swich cho phép chương trình chọn một trong nhiều lựa chọn.

III.2.1. Câu lệnh if

 Cú pháp : câu lệnh if được viết theo một trong bốn dạng sau:

 if (biểu thức logic) câu lệnh ;

 if (biểu thức logic)  câu lệnh ;  if (biểu thức logic) { khối lệnh }  if (biểu thức logic) {  khối lệnh  } Ví dụ : if isNaN(x){

window.alert(x+" khong phai la mot so");

}

( Hàm isNaN kiểm tra một giá trị và trả về true nếu đó là một số, ngược lại trả về false nếu không phải là một số)

 Mệnh đềelse : dùng trong trường hợp có hai sự lựa chọn tùy theo giá trị của biểu thức logic. Dạng câu lệnh này được gọi là câu lệnh if-else. Cú pháp:

if (biểu thức logic) { khối lệnh 1; } else {khối lệnh 2;}

 Cấu trúc elseif: ta thường gọi các câu lệnh if lồng nhau, dùng để chọn một lựa chọn trong nhiều lựa chon. Có bốn cách viết câu lệnh if lồng nhau, ta thường sử dụng hai cách viết sau:

if (biểu thức logic 1) { khối lệnh 1; } else { if (biểu thức logic 2) {khối lệnh 21;} else {khối lệnh 22;} } if (biểu thức logic 1) { khối lệnh 1;} else if(biểu thức logic 2;) { khối lệnh 21; } else {khối lệnh 22; } Ví dụ : Giải phương trình bậc nhất một ẩn ax + b = 0 <HTML><BODY> <SCRIPT language="JavaScript"> var x;

var a = window.prompt("Nhap a:"); var b = window.prompt("Nhap b:"); if (a!=0){ x=(-b/a); window.alert("Nghiem la "+x); } else { if (b!=0){

window.alert("Phuong trinh vo nghiem"); }

else {

window.alert("Phuong trinh co vo so nghiem); }

}

</SCRIPT>

</BODY></HTML>

Đọan script trên có thể thay bằng đọan mã sau, đơn giản và trong sáng hơn: if (a!=0){

window.alert("Nghiem la "+x); }

else if (b!=0) window.alert("Phuong trinh vo nghiem"); else window.alert("Phuong trinh co vo so nghiem);

III.2.1. Câu lệnh switch

Câu lệnh switch có vai trò giống như câu lệnh if-else, câu lệnh switch lượng giá của một biểu thức và so sánh giá trị này với một trong nhiều giá trị trong mệnh đềcaseđể thực hiện lệnh và thóat khỏi câu lệnh switch với câu lệnh break. Cú pháp:

switch(biểu thức) { case gtrị1 : nhóm lệnh 1; break; . . . case gtrịN : nhóm lệnh N; break; default : nhóm lệnh N+1; }

Từ khóa case là một nhãn, nó đánh dấu một điểm trong mã script để thực hiện một lệnh.

Ví dụ : Nhập vào một mã số tỉnh / thành phố và in ra tên của tỉnh / thành phốđó. <HTML><BODY>

<SCRIPT language="JavaScript">

var bc = window.prompt("Nhap ma tinh/thanh pho: ");

// Lưu ý: hàm prompt trả về giá trị kiểu chuổi. switch (bc){

case "04":

alert("Ha Noi"); break; case "08":

alert("Tp Ho Chi Minh"); break; case "0511":

alert("Da Nanng"); break; default:

alert("Chua xac dinh duoc"); }

</SCRIPT> </BODY></HTML>

III.3. Lệnh lặp

JavaScript có các câu lệnh lặp: câu lệnh while, câu lệnh do ...while,câu lệnh for và câu lệnh for ... in.

Để thoát ra khỏi một vòng lặp ta sử dụng lệnh break, để tiếp tục thực hiện vòng lặp dùng lệnh continue.

III.3.1. Câu lệnh while

Cú pháp :

while( biểu thức logic) { các lệnh; } Ví dụ : Tính tổng các số nguyên nhập từ bàn phím, nhập 0 để kết thúc. <SCRIPT language="JavaScript"> var sum = 0; while (true){

i= parseInt(prompt("Nhap mot so nguyen, nhap 0 de ket thuc",0)); if (i==0) break;

sum+=i; }

alert("Ket qua: "+sum); </SCRIPT>

III.3.2. Câu lệnh do ... while

Cú pháp: do {

các lệnh;

} while (biểu thức logic);

Ví dụ 1 : In ra màn hình các dòng tiêu đề từ 1 đến 6 (H1-H6) var i =1;

do {

document.write("<H"+i+">"+"Tieu de thu "+i+"</H"+i+">"); i++;

}while (i<=6);

III.3.3. Câu lệnh for

Cú pháp :

for(khởi tạo; biểu thức điều kiện;thay đổi giá trị) {câu lệnh;}

Phần khởi tạo dùng để khai báo các biến và gán giá trị khởi đầu.Phần biểu thức điều kiện để

lượng giá trước mỗi lần lặp. Phần thay đổi giá trị chứa mã lệnh sẽđược thực hiện sau mỗi lần lặp. Các thành phần của lệnh for là tùy chọn, lệnh sau đây thực hiện vòng lặp vô tận : for( ; ; ){ // không thực hiện gì }

Ví dụ: Tính tổng từ 1 đếm 100. Ta có thể thực hiện bằng các script như sau.  Câu lệnh for đầy đủ các khai báo.

var sum = 0;

for(i=1; i<=100; i++)

{document.write(i+"<br>"); sum+=i;} alert(sum);

 Câu lệnh for thiếu khai báo về thay đổi giá trị var sum = 0;

for(i=1; i<=100;)

{document.write(i+"<br>"); sum+=i++;} alert(sum);

 Câu lệnh for với các khai báo có nhiều biểu thức, các biểu thức cách nhau dấu phẩy (,) var sum = 0;

for(i=1, j=100; i<=50, j>50; i++, j--)

{document.write(i+"-"+j+"<br>"); sum+=i+j;} alert(sum);

 Câu lệnh for sử dụng với lệnh continue

In ra màn hình các số trong phạm vi từ 1 đến 100 chia hết cho 17 for(var i=1; i<=100; i++){

if (i % 17 !=0) continue; document.write(i+"<br>"); }

III.3.3. Câu lệnh for .. in

Cú pháp : for (biến in đối tượng) { lệnh ; }

Đây là câu lệnh thường được dùng để truy xuất các thuộc tính của một đối tượng mà chúng ta sẽ

nghiên cứu ở chương sau. Ví dụ

var sinhVien={

Hoten: "Nguyen Van Long", Lop: "03CTT01",

DiChi: "Da Nang" };

// định nghĩa một đối tượng; for(var i in sinhVien){

document.write(sinhVien[i]+"<br>");}

III.3.4. Câu with

Câu lệnh with chi phép ta truy xuất các thuộc tính và các phương thức một đối tượng mà không cần xác định tên đối tượng trong các dòng lệnh.

Cú pháp : with(tên đối tượng) { lệnh;} Ví dụ

var sinhVien={

Hoten: "Nguyen Van Long", Lop: "03CTT01",

DiChi: "Da Nang" }; // định nghĩa một đối tượng; with(sinhVien){ document.write(Hoten+"<br>"); document.write(Lop+"<br>"); document.write(DiaChi); }

III.4. Câu lệnh try-catch

Câu lệnh try-catch dùng để cho phép script xử lý lỗi thay vì trình duyệt. Nó thường được dùng

để thông báo một câu lệnh có xác suất lỗi cao. Cú pháp: try{ khối lệnh;} catch{ khối lệnh xử lý lỗi;}

Ví dụ: đọan mã sau đây cố gắng in ra giá trị của một biến chưa được khai báo và gán giá trị, không thành công sẽ thông báo lỗi.

<HTML> <BODY>

<SCRIPT language="javascript">

try {document.write(unknownVariable);} catch(e){alert(e.message);}

finally{document.write("This is the finally message.");} // đọan mã này chỉ phù hợp với JavaScript 1.4 trở lên

</SCRIPT> </BODY> </HTML>

III.5. Câu lệnh throw

Câu lệnh throw cho phép một script khai báo một lỗi và có thể chặn bắt bằng cách dùng câu lệnh try-catch. Ví dụ: <HTML> <BODY> <SCRIPT language="javascript"> try { var i = 0;

if(i != 1) { throw "Loi nang"; }

} catch(error)

{ if(error == "Loi nang") document.write("This is a thrown error message:"+ " i is not one.<br/>";

} finally

{ document.write("This is the finally message.");} </SCRIPT>

</BODY> </HTML>

IV. CĂN BẢN VỀ HÀM TRONG JAVASCRIPT

IV.1. Định nghĩa hàm

Hàm là một khối lệnh và được gán bởi một tên. Các hàm được định nghĩa bằng từ khóa function. Cú pháp như sau:

function tênHàm( danh sách các tham số){ khối lệnh;

return [giá trị trả về của hàm]; }

- Các tham số cách nhau bởi dấu phẩy (,), một hàm có thể không có tham số nào. Một hàm có thểđịnh nghĩa mà không có tham số nào nhưng các dấu ngoặc đơn là bắt buộc.

- Trong khối lệnh, hàm có thể gọi một hàm khác và có thể gọi lại chính nó , ta gọi hàm được

định nghĩa đệ quy.

- Câu lệnh return có hai mục đích là : nó buộc thoát ra khỏi một hàm và truyền lại một giá trị

cho dòng lệnh đã gọi hàm.Nếu hàm trả về một giá trị thì nó có thể tham gia trong các biểu thức.

Ví dụ: Định nghĩa hàm sum trả về tổng hai số. function tong(a,b){

return a+b; }

Có những hàm không trả về giá trị, chúng chỉ thực hiện một lọat các lệnh như các Procedure của Pascal. Hàm sau đây in ra màn hình ngày tháng của hệ thống.

function inNgay(){ var homNay = new Date(); var ngay = homNay.getDate(); var thang = homNay.getMonth(); var nam =homNay.getYear();

document.write("Hom nay ngay: "+ngay+"-"+thang+"-"+nam); return;

}

Trong trường hợp này hàm trả về giá trịundefined.

IV.2. Lời gọi hàm

Gọi hàm là thi hành các mã lệnh được chỉđịnh và các tham số được chỉ ra. Nếu hàm không trả về giá trị, ta có lời gọi : tênHàm(danh sách tham số);

Ví dụ hàm inNgayở trên có lời gọi hàm: inNgay();

Nếu hàm trả về giá trị ta có thể sử dụng như một thành phần của biểu thức, được sử dụng trong các hàm khác như một giá trị, hay một giá trị trong phép gán cho biến.

Ví dụ hàm sum(a,b)ở trên : var x = tong(5,6);

var i = 4; var j+=i;

var ketqua = 8+tong(i,j);

JavaScript truyền tham số (nếu tham số không phải là một đối tượng, chúng ta sẽ nghiên cứu

ở chương sau) theo giá trị, có nghĩa một hàm không làm thay đổi giá trị của một biến toàn cục làm tham số của hàm. Ví dụ : var a = 10; var b = 20; function lamGi(bien){ bien++; b*=2;

document.write("Gia tri moi cua tham so "+bien"+"<br">); document.write("Gia tri moi bien toan cuc b "+b"+"<br">); }

lamGi(a); // lời gọi hàm

document.write("Gia tri moi bien toan cuc a "+a); document.write("Gia tri moi bien toan cuc b "+b); Sau khi thực hiện script chỉ có giá trị của biến b thay đổi, còn a giữ nguyên.

IV.3. Những tính chất của hàm

IV.3.1. Function Constructor

Function Constructor (trong thuật ngữ Tiếng Việt không có từ nào dịch rõ nghĩa) trong JavaScript cho phép ta tạo ra một biến và gán nó cho biến như là một giá trị. Ví dụ:

var q = new Function('a','b', 'return a*b;');

Một hàm được định nghĩa theo cách này kéo theo bởi biến được gán, có nghĩa là q bây giờ có thể họat động như một hàm với hai tham sốa, b và trả về giá trịa+b.

var x = q(2,3); // kết quả trả về là một giá trị kiểu số

Hàm được xây dựng như vậy được gọi là hàm ẩn danh, bởi ta không thể tham chiếu đến tên hàm. Ta có thể sử dụng lại hàm ẩn danh này theo một ngữ cảnh khác mà không cần xây dựng lại hàm. var str = q("Dai hoc ","Su phạm"); //kết quả trả về là một giá trị kiểu chuổi

IV.3.2. Tính đệ quy của hàm

JavaScript cho phép một hàm có thểđịnh nghĩa đệ quy, xét ví dụ sau đây:

Ví dụ 1: Tính giai thừa của n, n∈N function giaiThua(n){ if((n= =0)||(n= =1)) return 1 else { var gt = (n*giaiThua(n-1)); return gt; } }

IV.3.3. Đối tượng Arguments

Tất cả hàm của JavaScript dều có thuộc tính gọi là đối tượng Arguments, chứa danh sách các tham sốđược thực sự truyền cho hàm, ta dùng thuộc tính Argumnets. lenght chỉ số tham số đã truyền cho hàm để kiểm tra tính đầy đủ của các tham số.

Ví dụ :

function strangeEquation(x, y, q) { if (arguments.length != 3) {

return "Invalid number of arguments"; }

var z = x * y; var p = q - 7;

return (z * x % (y + 1)) / p; }

Trong phần trên ta nghiên cứu về các hàm do người dùng định nghĩa, chương sau ta sẽ nghiên cứu về các đặc điểm mạnh nhất của JavaScript :các đối tượng (của JavaScrip và của BOM- mô hình

đối tượng trình duyệt) và các hàm dựng sẵn (mà bản chất là các phương thức của các đối tượng).

Một phần của tài liệu Kỹ năng lập trình web bct (Trang 61 - 67)