Chi tiết rule tham khảo tại sonarsource rules for typescript - code smell.
Các rule này thuộc loại code thối - code không ngon - code smell.
Function returns should not be invariant
What the hell! Lại có thể loại function trả về giá trị bất biến, thế thì cũng không cần function để làm gì cả!
À khoan, đây có thế là 1 lỗi ngây ngô, không có chủ đính của developer.
Ta thấy dù có input là gì thì function này vẫn trả về b
. Thế thì nên dẹp tiệm function ngay và luôn, lấy luôn giá trị b
cho xong.
b
ở đây không nhất thiết là 1 giá trị bất biến (ở ví dụ trên b = 12
).
Octal values should not be used
Bát phần hay hệ cơ số 8 khác với hệ cơ số 10 mà ta hay dùng, đếm từ 0 đến 7 thì thêm 1 chữ số vào bên trái.
Còn hệ thập phân thì đếm đến 9 mới thêm 1 số vào bên trái.
Mở console của trình duyệt gõ:
Output là 8. What the hell! Do đó, 2 số ở 2 hệ này rất dễ nhầm lẫn.
Có thể developer cố tình gõ như vậy thì không sao, nhưng cũng có thể là “lỗi đánh máy” thì có trời mà biết ý nó là hệ nào.
May là từ chuẩn ES6 trở đi, ta có cách viết mới dành cho hệ cơ số 8. Đó là thêm 0o
vào trước số hệ bát phần.
0o
là số không với chữ o tròn như quả trứng gà bên cạnh!
Mở console của trình duyệt gõ:
Output vẫn là 1, vì 1 là 1 trong hệ bát phân (hơi lú).
Output là 8, vì đếm quá 7 thì thêm 1 số về phía bên trái.
Output là Uncaught SyntaxError: Invalid or unexpected token
, vì trong hệ này không tồn lại cách viết số 8.
Đối với hệ cơ số 10 đơn giản là:
Đối với hệ cơ số 8:
Photo by NeONBRAND on Unsplash
Đây là bài viết trên blog cá nhân của tôi.
Quick Links
Social Media