Primitive và Non-Primitive Data Types trong JavaScript

Ấy từ từ, thằng admin viết bài ngu rồi, vậy tại sao nói string là bất biến mà tôi vẫn thay đổi được giá trị của nó đây này bạn. Cùng tìm hiểu các kiểu dữ liệu Primitive và Non-Primitive trong JavaScript để xem cách sử dụng cũng như ứng dụng của nó nhé.

Primitive và Non-Primitive Data Types

Như chúng ta đã biết:

Mutable values là những giá trị có thể được sửa đổi sau khi tạo.

Immutable values là những giá trị không thể sửa đổi sau khi tạo.

Sự khác biệt cơ bản giữa Primitive Non-Primitive Data Types:

Các giá trị nguyên thủy (Primitive) là bất biến và được lưu trữ theo giá trị thực của nó lúc khởi tạo.

Các giá trị Non-Primitive có thể thay đổi được và lưu trữ bằng tham chiếu (con trỏ).

 

Ấy ấy, từ từ, thằng admin viết bài ngu rồi, vậy tại sao tôi vẫn thay đổi được giá trị của biến "profile" đây này bạn

let profile= 'tôi có ông anh 96 học bách khoa...'
profile= 'Tôi có ông anh 96 học bách khoa...';
console.log(profile) // Output ->'Tôi có ông anh 96 học bách khoa...'

 

Biến trong giá trị nguyên thủy được lưu trữ vẫn có thể được gán lại một giá trị mới, nhưng không thể thay đổi giá trị hiện tại như bên dưới. Có thể thay thế giá trị nguyên thủy, nhưng nó không thể được thay đổi trực tiếp.

let profile= 'tôi có ông anh 96 học bách khoa...'
profile[0]= 'T';
console.log(profile) // Output ->'tôi có ông anh 96 học bách khoa...'

 

JavaScript cung cấp cho chúng ta 7 kiểu dữ liệu nguyên thủy

  • String
  • Number
  • Boolean
  • Undefined
  • Null
  • Symbol
  • BigInt

1. String

Là một chuỗi các ký tự, có thể được tạo trực tiếp bằng cách đặt chuỗi các ký tự vào giữa cặp dấu ngoặc đơn ' ' hoặc ngoặc kép " "

var str1 = "Hello, World!";
var str2 = 'satdevelop.com';

 

2. Number

Chỉ có một loại số. Không có kiểu cụ thể cho số nguyên như Float hay Double hay Integer như bên Java. Số có thể được viết với hoặc không có dấu thập phân. Và đặc biệt ngoài ra kiểu Number còn có 3 giá trị tượng trưng là + Infinity, - Infinity và NaN (Not A Number).

var num1 = 10;
var num2 = 12;

var num3 = 10 / +0;
console.log(num3); // Output: Infinity

var num4 = 12 / -0;
console.log(num4); //  Output: -Infinity

 

3. Boolean

Nó là một kiểu dữ liệu logic và chỉ có thể có 2 giá trị true hoặc false

var isActive = true;
var isDisabled = false;

 

4. Undefined

Một biến chưa được gán giá trị thì sẽ hold giá trị undefined.

var Luong100Trieu;
console.log(Luong100Trieu); //Output: undefined

 

5. Null

Một biến được khởi tạo với giá trị null, tương tự undefined, nó không lưu gì cả.

var Luong100Trieu; // undefined value
var Luong200Trieu= null; // null value

console.log(Luong100Trieu == Luong200Trieu); // Output: true
console.log(Luong100Trieu === Luong200Trieu); // Output: false

//Giải thích: Value giống nhau, Datatype khác nhau

 

6. Symbol

Hàng nóng hổi chỉ có từ ECMAScript6. Nó có 2 tính chất chính là unique and immutable.

let noob1= Symbol("id");
let noob2= Symbol("id");

console.log(noob1 == noob2); //Output: false
console.log(noob1 === noob2); // Output: false

 

7. BigInt

Lại là một con hàng ung thư chỉ có tại phiên bản ES2020 trở đi

Kiểu BigInt đặc biệt ở chỗ nó có thể biểu diễn các số nguyên với độ chính xác tùy ý. Với BigInt, bạn có thể lưu trữ các số nguyên lớn thậm chí vượt quá giới hạn số nguyên cho kiểu Number.

Tạo nó bằng cách thêm n vào cuối một số hoặc bằng cách gọi constructor.

var TienHocPhi = 1JF8rz8awGTotHg3aYoGa2gy7zAy6Rd1WU
console.log(TienHocPhi );
//Hoặc
var TienHocPhi = BigInt("1JF8rz8awGTotHg3aYoGa2gy7zAy6Rd1WU");
console.log(TienHocPhi );

 

Non-Primitive Data Type JavaScript

Các kiểu không nguyên thủy của JavaScript là các đối tượng (Objects).

Một đối tượng chứa một tham chiếu / địa chỉ của một cặp (key - value) khóa - giá trị đơn lẻ hoặc nhiều cặp khóa - giá trị.

Bất cứ khi nào chúng ta tham chiếu đến một đối tượng, đồng nghĩa với việc chúng ta muốn truy cập đến một địa chỉ trong bộ nhớ chứa cặp khóa - giá trị.

Nếu chúng ta gán một đối tượng ‘object1’ cho một đối tượng khác ‘object2’, chúng ta thực sự đang gán địa chỉ của ‘object1’ cho ‘object2’, xem ví dụ.

var object1= {Master:0, Noobs:1};
var object2 = object1;

console.log(object2); 
//Output: {Master: 0, Noobs: 1}

Vì vậy, khi chúng ta thay đổi giá trị của object2, đồng nghĩa chúng ta thay đổi giá trị của object nằm tại địa chỉ đó, vì vậy giá trị của object1 cũng thay đổi

var object1= {Master:0, Noobs:1};
var object2 = object1;
object2.Master=10;

console.log(object1.Master); 
//Output: 10

  RATE: 4.4 

  4021 VIEW


none
 GUEST 2021-07-04 13:04:24.0
Sao mình search có trang bảo 6 type thôi á bạn
none
 GUEST 2021-07-04 14:05:36.0
Có khi mấy trang đó viết trước khi có es2015 hoặc es2020 nah bạn https://www.freecodecamp.org/news/javascript-new-features-es2020/
xem trả lời (0)
BÀI VIẾT LIÊN QUAN
Coding Skill: The KISS Principle and Why It is Important

How to adapt a design principle that suggests software should be kept as simple as possible? The main idea behind this is to make code easy to understand, read, and maintain for us.

BÀI VIẾT LIÊN QUAN
Primitive và Non-Primitive Data Types trong JavaScript

Ấy từ từ, thằng admin viết bài ngu rồi, vậy tại sao nói string là bất biến mà tôi vẫn thay đổi được giá trị của nó đây này bạn. Cùng tìm hiểu các kiểu dữ liệu Primitive và Non-Primitive trong JavaScript để xem cách sử dụng cũng như ứng dụng của nó nhé.

BÀI VIẾT LIÊN QUAN
Google Drive API with Spring Boot - Gradle Project

Blog này mình sẽ hướng dẫn mọi người tạo 1 web app sửa dụng Google Drive API để thêm/sửa/xoá và lấy toàn bộ dữ liệu từ Google Drive bằng Spring Boot cực đơn giản :D