Hiểu thêm về biến trong javascript

Khẳng định từ bài trước đó là trong javascript chỉ có kiểu của giá trị không có kiểu của biến. Ví dụ let a = 2 . Với ví dụ rất đơn giản này chúng ta hay hiểu là biến a bằng 2. Chúng ta hiểu cách này không có gì sai cả, nhưng mình nghĩ còn đang thiếu, theo cách hiểu của mình và cách suy nghĩ của mình về ví dụ này là biến a tại thời điểm này đang lưu trữ giá trị là 2. tại sao mình lại suy nghĩ như vậy vì biến mình dùng đang lưu trữ kiểu dữ liệu là số, và tại thời điểm thì nó bằng 2, ít ai khai báo biến xong rồi để đấy mà không làm gì với biến đó cả . Vì vậy biến sẽ thay đổi và việc mình quan tâm đó là giá trị của biến sẽ thay đổi như nào ra sao khi mình chạy chương trình.

Bên trên chúng ta bắt gặp 2 khái niệm kiểu dữ liệu và giá trị chúng ta hãy đi phân biệt và hiểu rõ 2 khái niệm này nhé. Lưu ý khi chúng ta đặt tên biến trong javascript khi đặt tên biến thì không được bắt đầu bằng số, và các từ keyword như : true, false, boolean... các từ này javascript dùng rồi chúng ta không được dùng nữa.

Kiểu dữ liệu và giá trị

Nếu dữ liệu không được phân loại ra thì chúng ta không thể nào quản lý được, trong javascript chúng ta có 2 nhóm dữ liệu, dù phân chia như thế nào thì điều mà chúng ta quan tâm nhất vẫn là giá trị của dữ liệu đó nhé các bạn.

Dữ liệu nguyên thủy

  • Kiểu dữ liệu dạng Number có vô số giá trị vì số là vô hạn
  • Kiểu dữ liệu dạng String (bao gồm các ký tự văn bản, câu chữ, khái báo biến giữ giá trị loại này chúng ta để trong dấu nháy đơn hoặc nháy đôi .) số lượng cũng rất là nhiều
  • Kiểu dữ liệu dạng Boolean: chỉ có 2 giá trị đúng (true) và (false).
  • Kiểu dữ liệu undefined là trường hợp mà biến được khai báo mà không cho giữ 1 giá trị nào cả có 1 giá trị duy nhất cũng là undefined
  • Kiểu dữ liệu null là không có gì cả, giá trị là null cái này khá là phức tạp và người ta coi đây là lỗi ngôn ngữ.

Dữ liệu không nguyên thủy

  • Object : Thể hiện 1 đối tượng và các thuộc tính của nó
  • Symbol : Kiểu này mỗi giá trị là duy nhất và không thể bị sửa đổi

Kiểu dữ liệu không nguyên thủy thường khá phức tạp chúng ta sẽ nghiên cứu dần trong các bài tiếp theo.

Biến

Chuyển kiểu và so sánh

Trong thực tế để linh hoạt trong sử dụng tính toán chúng ta hoàn toàn có thể chuyển đối các kiểu dữ liệu 1 cách linh hoạt , cách mà mình thấy hay dùng nhất đó là chuyển đổi qua lại giữa kiểu Số Chuỗi ví dụ let a = '69' biến a có giá trị là 69 là thuộc kiểu chuỗi . Để chuyển biến a sang kiểu Số trong javascript người ta cung cấp nhiều cách để làm việc này, ở đây mình sẽ dùng hàm Number có sắn để chuyển biến a sang kiểu Number let b = Number(a) lúc này biến b sẽ có giá trị là 69 và kiểu dữ liệu là số. Việc làm này của chúng ta gọi là ép kiểu rõ ràng, minh bạch

So sánh '==' và '===' trong javascript

Nếu học javascript đủ lâu chắc chắn rồi bạn cũng sẽ phải sử dụng 2 phép so sánh này, và rồi khi chưa hiểu kỹ về chúng nó sẽ làm bạn thật sự hoang mang và không biết chuyện gì đang xảy ra, tại sao nó lại ra như vậy. Ví dụ bạn so sánh chuỗi "6969" với dãy số 6969. Đầu tiên ta thấy nó không sai mà cũng không đúng. Nó đúng về giá trị nhưng sai về kiểu dữ liệu. Khi đặt "69696" == 6969 trong javascript có nghĩa là chúng ta đang so sánh tương đối javascript tự động ép kiểu ngầm chuyển "6969" thành Number vậy nên kết quả so sánh tương đối này sẽ cho kết quả là đúng. Trong trường hợp bạn đặt "6969" === 6969 đây là so sánh tuyệt đối , không cho phép ép kiểu nên kết quả là sai là vì giá trị thì đúng, nhưng kiểu thì sai. Vậy nên nếu chúng ta biết giá trị của 2 bên phép so sánh thì có thể yên tâm dùng == và nếu không chắc về giá trị 2 bên phép so sánh thì chúng ta dùng ===

Cô đọng lại

Việc xác định biến đang cầm giá trị nào là việc quan trọng để chúng ta hiểu, kiểm soát và theo dõi sự thay đổi giá trị của biến khi chương trình thực thi. Bài khá dài và hơi miên man nếu bạn thấy phần nào cần sửa chữa, hãy góp ý với mình ở phần liên hệ nhé. Cảm ơn bạn.