Trong phần tìm hiểu về các cấu trúc điều khiển lệnh với Javascript như: Khối lệnh Lệnh if Lệnh switch vòng lặp for vòng lặp while vòng lặp do ... while lệnh continue, break Show Khối lệnh trong JavascriptNhiều câu lệnh Javascript có thể nhóm với nhau tạo ra khối lệnh, các khối lệnh được nhóm bằng cặp dấu ngoặc nhọn var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);4, các khối thường sử dụng trong các câu lệnh điều khiển rẽ nhánh, vòng lặp ... { //Các dòng lệnh trong khối } Khối lệnh cũng có thể dán nhãn cho nó, để sau này từ vị trí khác, bạn có thể nhảy đến thi hành các lệnh trong khối (với lệnh var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);5, var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);6) labelexamp : { //Các dòng lệnh trong khối có nhãn labelexamp } Chú ý khai báo biến với var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);7 thì nó không bị giới hạn trong khối, khai báo biến với var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);8 thì phạm vị hiệu lực chỉ trong khối khai báo var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b); Lệnh if, if ... elseLệnh if : nếu điều kiện là đúng ( var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);9) thì thi hành các lệnh trong khối - nếu điều khiện sai if (điều_kiện) { //Các dòng lệnh trong khối }0 thì khối lệnh sau nó bị bỏ qua, cú pháp là: if (điều_kiện) { //Các dòng lệnh trong khối } Ví dụ: var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); } Thi hành đoạn mã trên sẽ hiện thị hộp thoại thông báo: JavaScript rất dễ học. vì điều kiện là var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);9 nên lệnh alert thi hành if ... else ...Nếu biểu thức logic là var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);9 thi hành các lệnh trong khối if (điều_kiện) { //Các dòng lệnh trong khối }3, nếu if (điều_kiện) { //Các dòng lệnh trong khối }0 thì thi hành khối lệnh if (điều_kiện) { //Các dòng lệnh trong khối }5 if (expression) { // thi hành các lênh ở đây (khối if) nếu true } else { // thi hành các lệnh (khối else) nếu điều kiện false } Ví dụ var myNum1 = 7; var myNum2 = 10; if (myNum1 > myNum2) { alert("Đây là khối lệnh 1"); } else { alert("Đây là khối lệnh 2"); } Chạy code trên hiện thị thông báo: if (điều_kiện) { //Các dòng lệnh trong khối }6 vì if (điều_kiện) { //Các dòng lệnh trong khối }7 là if (điều_kiện) { //Các dòng lệnh trong khối }0 khối lệnh else ifif (điều_kiện) { //Các dòng lệnh trong khối }9 sẽ tạo ra câu lệnh điều kiện if (điều_kiện) { //Các dòng lệnh trong khối }3 mới nếu điều kiện trước đó if (điều_kiện) { //Các dòng lệnh trong khối }0 var course = 1; if (course == 1) { document.write("HTML Tutorial"); } else if (course == 2) { document.write("CSS Tutorial"); } else { document.write("JavaScript Tutorial"); } Chạy code trên, trình duyệt sẽ hiện thị var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); }2, nếu bạn gán biến var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); }3 thì hiện thị var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); }4, nếu gán var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); }3 khác với 1 và 2 thì sẽ hiện thị var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); }6 Lệnh switchTrong trường hợp bạn có rẽ nhánh (nhiều điều kiện) khác nhau thay vì sử dụng nhiều if (điều_kiện) { //Các dòng lệnh trong khối }9 hãy dùng var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); }8 với cú pháp switch (expression) { case n1: //.. thi hành nếu expression bằng n1 break; case n2: //.. thi hành nếu expression bằng n2 break; default: //.. mặc định thi hành nếu expression không bằng giá trị nào ở trên } Ví dụ: var day = 2; switch (day) { case 1: document.write("Monday"); break; case 2: document.write("Tuesday"); break; case 3: document.write("Wednesday"); break; default: document.write("Another day"); } // Outputs "Tuesday" Lưu ý từ khóa var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); }9 để điều hướng ra khỏi khối. Thường bạn cần có var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); }9 ở cuối mỗi khối của lệnh var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); }8, nếu thiếu var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);6 thì sẽ không thoát lệnh mà sẽ thi hành khối tiếp theo. Ở ví dụ trên, nếu bỏ đi var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);6, thì script sẽ chạy từ điểm rẽ nhánh if (expression) { // thi hành các lênh ở đây (khối if) nếu true } else { // thi hành các lệnh (khối else) nếu điều kiện false }4 cho đến cuối (xuất ra: Tuesday, Wednesday, Another day) Từ khóa if (expression) { // thi hành các lênh ở đây (khối if) nếu true } else { // thi hành các lệnh (khối else) nếu điều kiện false }5 định nghĩa khối mặc định, khối này thi hành nếu tất cả các điều kiện rẽ nhánh không thỏa mãn. Vòng lặp forCú pháp: labelexamp : { //Các dòng lệnh trong khối có nhãn labelexamp }0
Ví dụ: labelexamp : { //Các dòng lệnh trong khối có nhãn labelexamp }1 Có thể bỏ qua if (expression) { // thi hành các lênh ở đây (khối if) nếu true } else { // thi hành các lệnh (khối else) nếu điều kiện false }6 (vẫn giữ lại dấu var myNum1 = 7; var myNum2 = 10; if (myNum1 > myNum2) { alert("Đây là khối lệnh 1"); } else { alert("Đây là khối lệnh 2"); }4) labelexamp : { //Các dòng lệnh trong khối có nhãn labelexamp }2 Tương tự bạn có thể bỏ qua var myNum1 = 7; var myNum2 = 10; if (myNum1 > myNum2) { alert("Đây là khối lệnh 1"); } else { alert("Đây là khối lệnh 2"); }2 và if (expression) { // thi hành các lênh ở đây (khối if) nếu true } else { // thi hành các lệnh (khối else) nếu điều kiện false }8 (vẫn giữ var myNum1 = 7; var myNum2 = 10; if (myNum1 > myNum2) { alert("Đây là khối lệnh 1"); } else { alert("Đây là khối lệnh 2"); }4), lưu ý bạn cũng có thể sử dụng lệnh var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); }9 để thoát vòng lặp. labelexamp : { //Các dòng lệnh trong khối có nhãn labelexamp }3 for ... infor ... in duyệt qua các key của đối tượng đếm được (không dùng cho mảng) labelexamp : { //Các dòng lệnh trong khối có nhãn labelexamp }4 for ... ofLệnh for ... of duyệt qua các đối tượng. labelexamp : { //Các dòng lệnh trong khối có nhãn labelexamp }5 Vòng lặp whileThi hành khối lệnh khi mà điều kiện kiểm tra vẫn là var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);9 labelexamp : { //Các dòng lệnh trong khối có nhãn labelexamp }6 Đầu tiên nó kiểm tra điều kiện, nếu var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);9 sẽ thi hành khối lệnh. Đến cuỗi khối lại kiểm tra điều kiện, nếu điều kiện vẫn là var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);9 thì lại tiếp tục thì hành vòng mới của khối lệnh. Ví dụ labelexamp : { //Các dòng lệnh trong khối có nhãn labelexamp }7 Lưu ý về việc sau một số vòng thì điều kiện phải là if (điều_kiện) { //Các dòng lệnh trong khối }0 nếu không vòng lặp sẽ lặp lại vô tận. Vòng lặp do whileGiống với vòng lặp var course = 1; if (course == 1) { document.write("HTML Tutorial"); } else if (course == 2) { document.write("CSS Tutorial"); } else { document.write("JavaScript Tutorial"); }3 nhưng khối lệnh thi hành luôn mà không kiểm tra điều kiện trước, khi khối lệnh thi hành xong mới kiểm tra điều kiện để xem có lặp lại hay không Cú pháp labelexamp : { //Các dòng lệnh trong khối có nhãn labelexamp }8 Ví dụ labelexamp : { //Các dòng lệnh trong khối có nhãn labelexamp }9 Vòng lặp do ... while khối lệnh luôn được thi hành ít nhất một lần Lệnh continue và breakTrong vòng lặp khi gặp var course = 1; if (course == 1) { document.write("HTML Tutorial"); } else if (course == 2) { document.write("CSS Tutorial"); } else { document.write("JavaScript Tutorial"); }4 nó sẽ bỏ qua các lệnh còn lại và khởi tạo vòng lặp mới luôn. Còn nếu gặp var myNum1 = 7; var myNum2 = 10; if (myNum1 < myNum2) { alert("JavaScript rất dễ học."); }9 thì bỏ qua các lệnh còn lại đồng thời thoát khỏi vòng lặp. var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);0 var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);1 Lệnh var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);5 còn dùng để nhảy đến một khối lệnh có nhãn bằng cú pháp var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);2 Lệnh var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);6 còn dùng để hủy thi hành khối lệnh bên ngoài có nhãn, với cú pháp: var a = 5; { var a = 2; } console.log(a); //Xuất ra là 2 => biến a trong và ngoài khối là 1 let b = 10; { let b = 20; } //Xuất ra là 10 => biến b trong và ngoài khối là khác nhau alert(b);3 Phần nói về các đối tượng có kiểu liệt kê được (ví dụ như mảng, danh sách ...), còn có các lệnh duyệt qua từng phần tử liệt kê được đó với các lệnh var course = 1; if (course == 1) { document.write("HTML Tutorial"); } else if (course == 2) { document.write("CSS Tutorial"); } else { document.write("JavaScript Tutorial"); }8, var course = 1; if (course == 1) { document.write("HTML Tutorial"); } else if (course == 2) { document.write("CSS Tutorial"); } else { document.write("JavaScript Tutorial"); }9. |