/codegym.vn/ - 48
1.
let
abc
;
// Không nên
2.
let
uName
;
// Không nên
Quy tắc #4: Mỗi biến khai báo trên một dòng
Khi khai báo biên nên tách mỗi dòng khai báo một biến.
Ví dụ:
1.
let
i
=
3
,
j
=
5
,
k
=
10
;
// Không nên
2.
let
i
=
3
;
// Nên
3.
let
j
=
5
;
// Nên
4.
let
k
=
10
;
// Nên
11. Các lỗi thường gặp
Các lỗi thường gặp #1: Toán tử “===”
Toán tử “===” so sánh đồng thời giá trị và kiểu dữ liệu. Ví dụ:
1.
let
x
=
5
;
2.
let
y
=
x
===
5
;
// y = true
3.
let
z
=
x
===
"5"
;
// z = false
Trong ví dụ trên, biến y có giá trị là true vì biến x và 5 có cùng giá trị và cùng kiểu dữ
liệu. Biến z có giá trị là false vì biến x và “5” có cùng giá trị nhưng khác nhau về kiểu
dữ liệu.
Các lỗi thường gặp #2: So sánh số thực
Trong lập trình, không phải bao giờ các phép tính toán trên số thực cũng cho kết quả
chính xác tuyệt đối. Việc so sánh bằng (==) giữa hai biểu thức số thực là không đáng
tin cậy.
Ví dụ, đoạn mã sau sẽ hiển thị kết quả là false thay vì true như chúng ta thường nghĩ
1.
let
x
=
1.0
-
0.1
-
0.1
-
0.1
-
0.1
-
0.1
;
2. console
.
log
(
x
==
0.5
);
// false
3. console
.
log
(
x
);
// 0.5000000000000001
Trong ví dụ trên, giá trị của biến x không phải là 0.5 mà là 0.5000000000000001
Giải pháp cho tình huống so sánh số thực:
Để xử lý tình huống so sách giữa các số thực, chúng ta sử dụng cách so sánh gần
đúng, dựa trên nguyên tắc: hiệu số của hai giá trị là một số rất nhỏ (epsilon), chẳng
hạn như 10
-7
hoặc 10
-14
.
Ví dụ:
1.
const
EPSILON
=
1E-14
;
2.
let
x
=
1.0
-
0.1
-
0.1
-
0.1
-
0.1
-
0.1
;
3. console
.
log
(
Math
.
abs
(
x
-
0.5
)
<
EPSILON
);
// true
Hàm Math.abs() trên đây cho chúng ta giá trị tuyệt đối của biểu thức x - 0.5. Kết quả
nhỏ hơn sai số cho phép và kết quả so sánh là true.