/codegym.vn/ - 34
Lưu ý: Các ràng buộc được nhắc tới ở đây là Quy tắc (rules), có nghĩa là nếu bạn
không tuân thủ, trình phiên dịch và thực thi JavaScript sẽ báo lỗi. Bạn phân biệt Quy
tắc với các Quy ước (convention) - là những ràng buộc mà nếu tuân thủ thì sẽ rất tốt
chứ không phải là bắt buộc. Chúng ta có thể vi phạm các Quy ước mà không ảnh
hưởng trực tiếp tới kết quả thực thi của chương trình.
4. Kiểu dữ liệu
Trong máy tính, một giá trị sẽ được thể hiện bằng dữ liệu đi kèm với kiểu giữ liệu.
Cùng một vùng nhớ nhưng nếu được nhìn nhận dưới kiểu dữ liệu khác nhau thì sẽ
thể hiện cho những giá trị khác nhau, chẳng hạn, trong một số trường hợp, ký tự 'A'
nếu được nhìn nhận dưới kiểu dữ liệu số thì sẽ thể hiện cho số 65. Kiểu dữ liệu sẽ
ảnh hưởng tới các toán tử có thể sử dụng lên dữ liệu (chẳng hạn, kiểu dữ liệu ký tự
thì không thể áp dụng phép chia được) cũng như cách hành xử của mỗi toán tử.
Chẳng hạn hai giá trị số là 1 và 2 khi được áp dụng phép tính cộng sẽ cho kết quả là
3, nhưng hai ký tự “1” và “2” cộng lại sẽ cho kết quả “12”.
Định kiểu động
JavaScript là một ngôn ngữ định kiểu động. Chúng ta không cần phải khai báo kiểu
của các biến, thay vào đó, trình thực thi sẽ suy đoán kiểu của biến thông qua giá trị
của nó. Nhờ đó mà đoạn mã sau cho chúng ta kết quả là 3 chứ không phải là “12”:
1.
let
foo
=
1
;
2.
let
bar
=
2
;
3. console
.
log
(
foo
+
bar
);
// 3
Hai nhóm Kiểu dữ liệu
Trình thực thi JavaScript nhìn dữ liệu thành hai dạng: dữ liệu dạng nguyên thủy và dữ
liệu dạng đối tượng. Trong khuôn khổ cuốn sách này chúng ta sẽ chỉ tập trung thao
tác với kiểu dữ liệu nguyên thủy.
Kiểu dữ liệu nguyên thủy là kiểu dữ liệu được xây dựng sẵn trong ngôn ngữ
JavaScript. Theo đó, hầu hết các toán tử được xây dựng để hỗ trợ xoay quanh các
kiểu dữ liệu này.
Các kiểu dữ liệu nguyên thuỷ
Có các loại dữ liệu nguyên thủy khác nhau, trong đó kiểu Symbol mới được bổ sung
gần đây. Kiểu Symbol có mục đích sử dụng khá đặc thù và chúng ta sẽ không bàn tới
nó trong cuốn sách này. Các kiểu dữ liệu nguyên thủy còn lại là:
● boolean
● undefined
● number
● string