Bài 13:
Toán tử và Câu lệnh
NexTGen Web
Toán tử và Câu lệnh rẽ nhánh
Mc tiêu bài hc
!
"#$%&'(')
Khái niệm toán tử
*+#,-./012*+*23245-67
2082294
:;%28<8= >-.;?;68@=84
A/BC*+#,-D#.;6<2E48F8.
;2G;6<2E08
5=>H
•
/IH2J/=4
•
IH2J=4
•
IH2J=4
Các loại toán tử
:;%28<8/=*+K2*98F8.=/ 4
2:;%28*+86=#.2J=6/6E.2J=
•
BL
•
•
•
•
0
•
A@*MJ
Toán tử số học
B6I.?2J2B0NH
•
/O!
•
2P!
•
QR!
•
&!
•
S<8T#*U!
VW#,
<SCRIPT>
var loanAmount = 34500;
var interest = 8;
var interestAmount, totalAmount;
interestAmount = loanAmount * (interest / 100);
totalAmount = loanAmount + interestAmount;
document.write("<B>Total amount to be paid ($):</B>" +
totalAmount + "<BR />");
</SCRIPT>
Toán tử số học
X
•
OO
•
Biểu thức Loại
numTwo = ++numOne; Tăng trước
numTwo = numOne++; Tăng sau
numTwo = numOne; Giảm trước
numTwo = numOne ; Giảm sau
VW#,
<SCRIPT>
var number = 3;
alert('Number after increment = ' + ++number);
alert('Number after decrement = ' + number );
</SCRIPT>
Toán tử quan hệ
S6I#Y-3=;62;12#.2J.5E I4
ZH
•
%[\\!
•
% ]\!
•
%9^!
•
%90[^\!
•
%_`!
•
%_0[`\!
•
\\\#Y-DD=5[;6Y - I
Các toán tử logic
#Y- +82/-@1 4
"ZH
VW#,
<SCRIPT>
var name = "John";
var age = 23;
alert('John\'s age is greater than or equal to 23 years : ' + ((name=="John") && (age >= 23)));
</SCRIPT>
Toán tử ghép chuỗi
N<N*=;6=/N9a 6/N +8N4
VW#,H
x = 'yellow';
y = 'green';
z = x + y + 'white'; //which means z is
"yellowgreenwhite"
w = y + 9; //which means w is "green9"
Toán tử gán
*+65
•
H6b\b#Y-2-@4
•
8@+8H6Y;9/L4S<2>2?2Z2c=54
VW#,
Biểu thức Mô tả
numOne += 6; numOne = numOne + 6
numOne -= 6; numOne = numOne – 6
numOne *= 6; numOne = numOne * 6
numOne %= 6;
numOne = numOne % 6
numOne /= 6; numOne = numOne / 6
Toán tử Bitwise
-=6d0e!;6.2JE4
E2;1284
Các toán tử bit Mô tả
& (Bitwise AND) So sánh 2 bit, trả về 1 nếu cả hai là 1 ngược lại trả về 0
~ (Bitwise NOT) Đảo ngược một bit
| (Bitwise OR) So sánh 2 bit, trả về 1 nếu một trong 2 là 1 hoặc cả 2 là 1, còn lại trả về 0
VW#,
//(56 = 00111000 and 28 = 00011100)
alert("56" + ' & ' + "28" + ' = ' + (56 & 28));
//(56 = 00111000 and 28 = 00011100)
alert("56" + ' | ' + "28" + ' = ' + (56 | 28));
Toán tử đặc biệt
1
(condition) ? trueVal : falseVal
f/2D;6/1 Ea2*g+8h=i;6h=4
;W#,4
status = (age >= 18) ? "adult" : "minor"
8(
8(2;1/N ->=4
;W#,4
var x = 5;
document.write(typeof(x));
Mức ưu tiên của toán tử
j51*+?2/-@a@*MJ>D@..>
2-@54
" J@*MJ>P<8H
Các câu lệnh điều kiện
1 *+#Y- -21 4jD0 B*+.
4
1 ZH
•
(
•
(k
•
(k(k
•
l
Lệnh if
E88
if (điều_kiện)
{
//Một hoặc nhiều câu lệnh
}
Lệnh if – else
E88
if (điều_kiện) {
//Một hoặc nhiều câu lệnh;
}
else {
//Một hoặc nhiều câu lệnh;
}
<SCRIPT>
var firstNumber = prompt(‘Enter first number:’,0);
var secondNumber = prompt(‘Enter second number’,0);
var result = 0;
if (secondNumber == 0)
{
alert(‘ERROR Message: Cannot divide by zero.’);
}
else
{
result = firstNumber/secondNumber;
alert(“Result: “ + result);
}
</SCRIPT>
Lệnh if – else – if
E88
if (điều_kiện_1)
{
câu lệnh_1;
}
else if (điều_kiện_2)
{
câu lệnh_2;
}
else
{
câu_lệnh_n+1;
}
Lệnh if – else – if
VW#,
<SCRIPT>
var percentage = prompt(‘Enter percentage:’,0);
if (percentage >= 60)
{
alert (‘You have obtained the A grade.’);
}
else if (percentage >= 35 && percentage < 60)
{
alert (‘You have obtained the B class.’);
}
else
{
alert (‘You have failed’);
}
mASn&;6&eo(')
Lệnh if lồng nhau
if (điều_kiện_1) {
câu lệnh;
if (điều_kiện)
{
câu lệnh;
if (điều_kiện)
{
câu lệnh;
}
}
}
<SCRIPT>
var username = prompt(‘Enter Username:’);
var password = prompt(‘Enter Password:’);
if (username != “” && password != “”)
{
if (username == “admin” && password == “admin123”)
{
alert(‘Login Successful’);
}
else
{
alert (‘Login Failed’);
}
}
</SCRIPT>
Lệnh switch
E88
VW#,
<SCRIPT>
var designation = prompt(‘Enter designation:’);
switch (designation)
{
case ‘Manager’:
alert (‘Salary: $21000’);
break;
case ‘Developer’:
alert (‘Salary: $16000’);
break;
default:
alert(‘Enter proper designation.’);
break;
}
</SCRIPT>
Biểu thức quy tắc
S6/pZNa*+#Y- 98;9//#;X,-4
-@q*+#Y-r p s.2/N*+t8;6P*g#Y4
"-@qZH
•
p
•
s.;6 s.0
var re =/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,5})$/gi;
Sử dụng biểu thức quy tắc
-@q5-*+=[/2H
•
%#, c=B*+
•
fL6 c=>B*+uvD8!
8*@#,2-@qZH
•
test(string)%/N 98;9/p;62;1/2"20(4w*886*g*+#,-Dt4
•
exec(string)./Nr p8Y+8;9J254w*@2;1/2ap I86*+r<422*g+8512 98a5G2
;1t8 984
var tên_biến=/mẫu_biểu_thức/bổ_từ;
var tên_biến=new RegExp("mẫu_biểu_thức",bổ_từ)
Bổ từ Mô tả
i Không phân biệt chữ hoa chữ thường
g Thực hiện tìm tất cả các chuỗi con thỏa mãn mẫu_biểu_thức
m Thực hiện tìm trên nhiều dòng
Khớp theo vị trí
js.0 s2-=68F8 98;9/NZ=c/;2W,-2/N4
" J s 98;9;2W 4
Kí hiệu Mô tả Ví d
^ Biểu thị sự bắt đầu của một chuỗi
/^Good/ khớp với chuỗi con “Good” trong chuỗi “Good night”, nhưng
không khớp với chuỗi “A Good Eyesight”
$ Biểu thị kết thúc của một chuỗi
/art$/ khớp với “art” trong chuỗi “Cart” nhưng không khớp với chuỗi
“artist”
\b
Khớp với một ranh giới từ(word boundary). Một
từ ranh giới bao gồm vị trí giữa một từ và
khoảng trống
/ry\b/ khớp với chuỗi “ry” trong chuỗi “She is very good”
\B Ngược lại so với \b
/\Ban/ khớp với “an” trong chuỗi “operand” khung không khớp trong
chuỗi “anomaly”
Character Classes 1-2
js.0 s2,6*+ +8-=698 s.;Dp4
986*+i6[0/t8+8 s.2#<0;I4
Kí hiệu Mô tả Ví d
[…]
Khớp với một trong những ký tự được chỉ ra trong bộ ký tự được liệt
kê cặp [ ]
/[AN]BC/ khớp với các chuỗi “ABC” và “NBC” nhưng
không khớp với “BBC”
[^…]
Khớp với một những ký tự không được chỉ ra trong bộ ký tự được
liệt kê cặp [ ]
/[^BC]RT/ khớp với chuỗi “RRT”, nhưng không khớp
với các chuỗi “BRT” hoặc “CRT”
.
Đại diện cho một ký tự bất kỳ, ngoại trừ kí tự xuống dòng mới và ký
tự ngắt dòng.
/s.t/ khớp với “sat”, “sit”, “set”, …
\w khớp với các kí tự chữ cái, chữ số và kí tự gạch dưới /\w/ khớp với “600” trong “600%”
Character Classes 2-2
mASn&;6&'n(')
Kí hiệu Mô tả Ví d
\W Khớp các kí tự không phải là kí tự chữ, số, gạch dưới.
/\W/
Matches “%” in “800%”
\d Khớp với các kí tự chữ số từ 0-9
/\d/
Matches “4” in “A4”
\D Khớp các kí tự không phải là kí tự số 0-9
/\D/
Matches “ID” in “ID 2246”
\s Khớp với một ký tự trắng đơn bao gồm cả khoảng trắng, tab,…
/\s\w*/
Matches “ bar” in “scroll bar”
\S Ngược lại với \s
/\S\w*/
Matches “scroll” in “scroll bar”