1

Primitive data types trong JavaScript

Primitive data types là gì ?

Primitive data types là kiểu dữ liệu cơ sở. Trong javascript primive data là những kiểu dữ liệu không phải là object và không có các phương thức.

Có 7 kiểu dữ liệu cơ sở trong javascript là string, number, bigint, boolean, null, undefined,  và symbol.

Tất cả các kiểu dữ liệu cơ sở này đều không thể thay đổi được (immutable).  

Như ví dụ ở trên kiểu dữ liệu của biến a là string, mình cố gán lại phần tử thứ a[0] bằng một kí tự mới nhưng không được. Vì string là kiểu dữ liệu cơ sở nên không thể thay đổi được.

Hồi xưa lúc mới đi phỏng vấn, mình có nhận được một bài toán đó là đảo ngược lại một chuỗi, lúc đó mình cố tìm ra một phương án tối ưu đó là chạy tới s.length/2 rồi swap vị trí a[i] với a[s.length-1-i] và viết bằng javascript như sau: 

Sau khi hoàn thành đoạn code của mình trên bảng, mình hí hửng chốt câu trả lời. Anh techlead phỏng vấn mình lúc đó hỏi lại xem mình có muốn chỉnh sửa gì câu trả lời không, mình bảo " dạ không "

RIP luôn ông Giáo ạ, anh techlead chỉ ra chỗ sai  của mình, lúc này mới nhận ra là mình hụt mất kiến thức rất là cơ bản của javascript. Rất may là anh techlead cho mình cho hội sửa sai.

Primitive wrapper object

Ủa primitive không có methods thì tai sao trong javascript, bạn vẫn có thể xài được những methods như "a".toUpperCase() 

Lý do là ngoại trừ nullundefined, 5 primitive values còn lại là stringnumberbigintbooleansymbol đều được wrap lại với một object chứa những phương thức đặc trưng của kiểu dữ liệu đó.

Các phương thức được wrap lại kiểu số :

number primative wrapper object number primative wrapper object

Các phương thức wrap lại kiểu chuỗi:

string primative wrapper object string primative wrapper object
✧ ✧ ✧

Trong trường hợp mình không khai báo biến cho kiểu số, mà mình cố để truy suất đến methods của nó:

number primative wrapper object number primative wrapper object
✧ ✧ ✧

Kết luận:

Với bất kì ngôn ngữ nào cũng có kiểu dữ liệu cơ sở của nó, việc nắm kĩ tính chất đặc điểm của các kiểu dữ liệu sẽ giúp bạn hiểu sâu và thiết kế code hiệu quả hơn.

Tham khảo:

#primitive#javascript
1
0
...