[ JS ] Bài 8 : XÂY DỰNG CÁC BIỂU THỨC TRONG JAVASCRIPT
ĐỊNH NGHĨA VÀ
PHÂN LOẠI BIỂU THỨC
Tập hợp
các literal, biến và các toán tử nhằm đánh giá một giá trị nào đó được gọi là một
biểu thức (expression). Về cơ bản có ba kiểu biểu thức trong JavaScript:
·
Số học: Nhằm để lượng giá giá trị số. Ví
dụ (3+4)+(84.5/3) được đánh giá bằng 197.1666666667.
·
Chuỗi:
Nhằm để đánh giá chuỗi. Ví dụ "The
dog barked" + barktone + "!" là The dog barked ferociously!.
·
Logic: Nhằm đánh giá giá trị logic. Ví dụ temp>32 có thể nhận giá trị sai.
JavaScript cũng hỗ trợ biểu thức điều kiện, cú pháp như sau:
(condition)
? valTrue : valFalse
Nếu
điều kiện condition được đánh giá là đúng,
biểu thức nhận giá trị valTrue, ngược
lại nhận giá trị valFalse. Ví dụ:
state = (temp>32) ?
"liquid" : "solid"
Trong
ví dụ này biến state được gán giá trị "liquid"
nếu giá trị của biến temp lớn hơn 32;
trong trường hợp ngược lại nó nhận giá trị "solid".
CÁC TOÁN TỬ
(OPERATOR)
Toán tử được
sử dụng để thực hiện một phép toán nào đó trên dữ liệu. Một toán tử có thể trả
lại một giá trị kiểu số, kiểu chuỗi hay kiểu logic. Các toán tử trong
JavaScript có thể được nhóm thành các loại sau đây: gán, so sánh, số học, chuỗi, logic và logic bitwise.
1. GÁN
Toán tử
gán là dấu bằng (=) nhằm thực hiện việc gán giá trị của toán hạng bên phải cho
toán hạng bên trái. Bên cạnh đó JavaScript còn hỗ trợ một số kiểu toán tử gán rút
gọn.
Kiểu gán thông thường
|
Kiểu gán 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
|
2. SO SÁNH
Người ta
sử dụng toán tử so sánh để so sánh hai toán hạng và trả lại giá trị đúng hay
sai phụ thuộc vào kết quả so sánh. Sau đây là một số toán tử so sánh trong
JavaScript:
==
|
Trả lại
giá trị đúng nếu toán hạng bên trái bằng toán hạng bên phải
|
!=
|
Trả lại
giá trị đúng nếu toán hạng bên trái khác toán hạng bên phải
|
>
|
Trả lại
giá trị đúng nếu toán hạng bên trái lớn hơn toán hạng bên phải
|
>=
|
Trả lại
giá trị đúng nếu toán hạng bên trái lớn hơn hoặc bằng toán hạng bên phải
|
<
|
Trả lại
giá trị đúng nếu toán hạng bên trái nhỏ hơn toán hạng bên phải
|
<=
|
Trả lại
giá trị đúng nếu toán hạng bên trái nhỏ hơn hoặc bằng toán hạng bên phải
|
3. SỐ HỌC
Bên cạnh
các toán tử cộng (+), trừ (-), nhân (*), chia (/) thông thường, JavaScript còn
hỗ trợ các toán tử sau đây:
var1% var2
|
Toán tử
phần dư, trả lại phần dư khi chia var1 cho var2
|
-
|
Toán tử
phủ định, có giá trị phủ định toán hạng
|
var++
|
Toán tử
này tăng var lên 1 (có thể biểu diễn là ++var)
|
var--
|
Toán tử
này giảm var đi 1 (có thể biểu diễn là --var)
|
Chú ý
Nếu bạn gán giá trị của toán tử
++ hay
-- vào một biến, như y= x++, có thể 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.
4. CHUỖI
Khi được
sử dụng với chuỗi, toán tử + được coi là kết hợp hai chuỗi,
ví dụ:
"abc"
+ "xyz" được
"abcxyz"
5. LOGIC
JavaScript
hỗ trợ các toán tử logic sau đây:
expr1
&& expr2
|
Là
toán tử logic AND, trả lại giá trị đúng nếu cả expr1 và expr2 cùng đúng.
|
expr1
|| expr2
|
Là
toán tử logic OR, trả lại giá trị đúng nếu ít nhất một trong hai expr1 và
expr2 đúng.
|
!
expr
|
Là
toán tử logic NOT phủ định giá trị của expr.
|
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
|
[ JS ] Bài 8 : XÂY DỰNG CÁC BIỂU THỨC TRONG JAVASCRIPT
Reviewed by Nguyen Nam Hong
on
7:43 PM
Rating:

Bình luận