Data types trong JavaScript

Data types trong JavaScript

Việc học ngôn ngữ mới như JavaScript sẽ là đơn giản đối với những người đã học một ngôn ngữ lập trình trước đo. Nhưng đối với những người mới làm quen với ngôn ngữ lập trình thì điều này không đơn giản tí nào. Hôm nay, hãy cùng chúng tôi Websitehcm tìm hiểu cách sử dụng data types(kiểu dữ liệu) trong JavaScript.

Các bài viết liên quan:

Những lưu ý sử dụng data types trong JavaScript

  1. Giá trị trong JavaScript luôn thuộc một loại nhất định. Ví dụ, một chuỗi hoặc một số.

Có tám kiểu dữ liệu cơ bản trong JavaScript. Ở đây, chúng tôi sẽ trình bày chung về chúng và trong các chương tiếp theo, chúng tôi sẽ nói chi tiết về từng chúng.

Chúng ta có thể đặt bất kỳ kiểu nào trong một biến. Ví dụ, một biến tại một thời điểm có thể là một chuỗi và sau đó lưu trữ một số:

let message = “xin chào”;

message = 123456;

khai báo chữ và số trong javascript

Các ngôn ngữ lập trình cho phép những thứ như vậy, chẳng hạn như JavaScript, được gọi là “dynamically typed”, nghĩa là tồn tại các kiểu dữ liệu, nhưng các biến không bị ràng buộc với bất kỳ kiểu nào trong số đó.

let n = 123;

n = 12,345;

khai báo số javascript
  1. Kiểu number đại diện cho cả số nguyên và số dấu phẩy động.
  1. Có nhiều phép toán cho các số, ví dụ: nhân *, chia /, cộng +, trừ -, v.v.

Bên cạnh các số thông thường, có những cái gọi là “giá trị số đặc biệt” cũng thuộc về kiểu dữ liệu này: Infinity, -InfinityNaN.

Infinity đại diện cho Infinity ∞ toán học. Đó là một giá trị đặc biệt lớn hơn bất kỳ số nào.

Chúng ta có thể lấy nó là kết quả của phép chia cho 0:

  • (1/0); // Infinity
  • Infinity; // Infinity
  1. NaN đại diện cho một lỗi tính toán.

Ví dụ: nó là kết quả của một phép toán không chính xác hoặc undefine:

alert (“not a number” / 2); // NaN, việc chia như vậy là sai

NaN dính. Bất kỳ thao tác nào khác trên NaN sẽ trả về NaN:

alert (“not a number” / 2 + 5); // NaN

Vì vậy, nếu có một NaN ở đâu đó trong một biểu thức toán học, thì nó sẽ truyền đến toàn bộ kết quả.

  1. Các phép toán an toàn

Làm toán là “safe” trong JavaScript. Chúng ta có thể làm bất cứ điều gì: chia cho không, coi các chuỗi không phải số là số, v.v.

Tập lệnh sẽ không bao giờ dừng lại với một lỗi nghiêm trọng (“die”). Tệ nhất, kết quả là chúng tôi sẽ nhận được NaN.

Các giá trị số đặc biệt chính thức thuộc về kiểu “số”. Tất nhiên chúng không phải là những con số theo nghĩa thông thường của từ này.

Chúng ta sẽ xem thêm về cách làm việc với các con số trong chương Số.

  1. BigInt

Trong JavaScript, biến kiểu “number” không thể có giá trị số nguyên lớn hơn (2^53-1) ( 9007199254740991) hoặc nhỏ hơn – (2^53-1) đối với số nguyên âm. Đó là hạn chế về mặt kỹ thuật của kiểu number.

Đối với hầu hết các mục đích là đủ, nhưng đôi khi chúng ta cần những con số thực sự lớn, ví dụ: cho mật mã hoặc dấu thời gian chính xác đến micro giây.

Kiểu BigInt gần đây đã được thêm vào ngôn ngữ để biểu diễn các số nguyên có độ dài tùy ý.

Giá trị BigInt được khai báo bằng cách thêm n vào cuối một số nguyên:

// chữ “n” ở cuối nghĩa là nó là BigInt

const bigInt = 1234567890123456789012345678901234567890n;

khai báo BigInt

Vì con số BigInt hiếm khi cần thiết, chúng tôi không đề cập đến chúng ở đây mà dành cho chúng một chương BigInt riêng biệt. Hãy đọc nó khi bạn cần những con số lớn như vậy.

  1. Những vấn đề tương thích

Hiện tại, BigInt được hỗ trợ trong Firefox / Chrome / Edge / Safari, nhưng không được hỗ trợ trong IE.

Bạn có thể kiểm tra bảng tương thích MDN BigInt để biết phiên bản trình duyệt nào được hỗ trợ.

  1. Một chuỗi trong JavaScript phải được bao quanh bởi dấu ngoặc kép.

let str = “Xin chào”;

let str2 = ‘Dấu nháy đơn cũng được’;

let Str3 = `có thể nhúng $ {str}` khác;

Trong JavaScript, có 3 loại dấu ngoặc kép.

  • Dấu ngoặc kép: “Xin chào”.
  • Dấu ngoặc kép: ‘Xin chào’.
  • Gậy ngược: `Xin chào`.

Dấu ngoặc kép và dấu nháy đơn là những dấu ngoặc kép “simple”. Thực tế không có sự khác biệt giữa chúng trong JavaScript.

  1. Backticks là dấu ngoặc kép “extended functionality”. Chúng cho phép chúng tôi nhúng các biến và biểu thức vào một chuỗi bằng cách gói chúng trong $ {…}

let name= “John”;

// nhúng một biến

alert (`Hello, $ {name}!`); // Hello, John!

// nhúng một biểu thức

alert (`kết quả là $ {1 + 2}`); // kết quả là 3

Biểu thức bên trong $ {…} được đánh giá và kết quả trở thành một phần của chuỗi. Chúng ta có thể đặt bất cứ thứ gì vào đó: một biến như tên hoặc một biểu thức số học như 1 + 2 hoặc một cái gì đó phức tạp hơn.

Xin lưu ý rằng điều này chỉ có thể được thực hiện trong backticks. Các trích dẫn khác không có chức năng nhúng này!

alert (“kết quả là $ {1 + 2}”); // kết quả là $ {1 + 2} (dấu ngoặc kép không có tác dụng gì)

Chúng tôi sẽ trình bày kỹ hơn về các chuỗi trong chương Chuỗi.

  1. Không có kiểu character.

Trong một số ngôn ngữ, có một loại “character” đặc biệt cho một ký tự. Ví dụ, trong ngôn ngữ C và trong Java, nó được gọi là “char”.

Trong JavaScript, không có kiểu như vậy. Chỉ có một loại: chuỗi. Một chuỗi có thể bao gồm 0 ký tự (để trống), một ký tự hoặc nhiều ký tự trong số đó.

  1. Boolean (kiểu logic)

Kiểu boolean chỉ có hai giá trị: true và false.

Loại này thường được sử dụng để lưu trữ các giá trị có / không: true có nghĩa là “có, đúng” và false nghĩa là “không, không chính xác”.

Ví dụ:

let nameFieldChecked = true; // vâng, trường tên được chọn

let ageFieldChecked = false; // không, trường tuổi không được kiểm tra

Các giá trị Boolean cũng là kết quả của các phép so sánh:

let isGreater = 4> 1;

alert (isGreater); // true (kết quả so sánh là “yes”)

Chúng tôi sẽ trình bày sâu hơn về boolean trong chương Các toán tử logic.

  1. Giá trị “null”

Giá trị null đặc biệt không thuộc bất kỳ kiểu nào được mô tả ở trên.

Nó tạo thành một kiểu riêng biệt chỉ chứa giá trị null:

let age = null;

Trong JavaScript, null không phải là “tham chiếu đến object không tồn tại” hoặc “con trỏ null” như trong một số ngôn ngữ khác.

Nó chỉ là một giá trị đặc biệt đại diện cho “không có gì”, “trống” hoặc “giá trị undefine”.

Đoạn mã trên nói rằng tuổi chưa được biết.

  1. Giá trị “undefined”

Giá trị đặc biệt undefined cũng khác nhau. Nó tạo ra một loại của riêng nó, giống như null.

Ý nghĩa của undefined là “giá trị không được gán”.

Nếu một biến được khai báo, nhưng không được gán, thì giá trị của nó là undefined:

let age;

alert(age); // hiển thị “undefined”

Về mặt kỹ thuật, có thể chỉ định rõ ràng undefined cho một biến:

let age = 100;

// thay đổi giá trị thành undefined

age= undefine;

alert (age); // “undefine”

… Nhưng chúng tôi không khuyên bạn nên làm điều đó. Thông thường, người ta sử dụng null để gán giá trị “trống” hoặc “undefined” cho một biến, trong khi undefined được dành riêng làm giá trị ban đầu mặc định cho những thứ chưa được gán.

  1. Object và Symbol

Loại object là đặc biệt.

Tất cả các kiểu khác được gọi là “primitive” vì giá trị của chúng chỉ có thể chứa một thứ duy nhất (có thể là một chuỗi hoặc một số hoặc bất cứ thứ gì). Ngược lại, các object được sử dụng để lưu trữ các bộ sưu tập dữ liệu và các thực thể phức tạp hơn.

Là quan trọng như vậy, các object xứng đáng được đối xử đặc biệt. Chúng ta sẽ giải quyết chúng ở phần sau trong chương object, sau khi chúng ta tìm hiểu thêm về nguyên thủy.

Loại ký hiệu được sử dụng để tạo mã nhận dạng duy nhất cho các object. Chúng ta phải đề cập đến nó ở đây vì lợi ích của sự đầy đủ, nhưng cũng hoãn lại các chi tiết cho đến khi chúng ta biết các object.

  1. Toán tử typeof

Toán tử typeof cho ta biết kiểu dữ liệu. Nó hữu ích chúng ta xử lý các loại dữ liệu khác nhau.

Nó hỗ trợ hai dạng cú pháp:

  • Là một toán tử: typeof x.
  • Dưới dạng một hàm: typeof (x).

Nói cách khác, nó hoạt động với dấu ngoặc đơn hoặc không có dấu ngoặc đơn. Kết quả là như nhau.

Lệnh gọi tới typeof x trả về một chuỗi có tên kiểu:

typeof undefined // “undefined”

typeof 0 // “number”

typeof 10n // “bigint”

typeof true // “boolean”

typeof “foo” // “string”

typeof Symbol(“id”) // “symbol”

typeof Math // “object”  (1)

typeof null // “object”  (2)

typeof alert // “function”  (3)

Ba dòng cuối cùng có thể cần giải thích thêm:

  1. Math là một object cài sẵn cung cấp các phép toán. Chúng ta sẽ tìm hiểu nó trong chương Các con số. Ở đây, nó chỉ đóng vai trò là một ví dụ về một object.
  2. Kết quả của typeof null là “object”. Đó là một lỗi được chính thức công nhận trong hành vi kiểu chữ, xuất hiện từ những ngày đầu của JavaScript và được giữ lại để tương thích. Chắc chắn, null không phải là một object. Đó là một giá trị đặc biệt với một loại riêng biệt của riêng nó.
  3. Kết quả của kiểu cảnh báo là “function”, bởi vì alert là một chức năng. Chúng ta sẽ nghiên cứu các hàm trong các chương tiếp theo, nơi chúng ta cũng sẽ thấy rằng không có loại “function” đặc biệt nào trong JavaScript. Các hàm thuộc kiểu object. Nhưng typeof xử lý chúng theo cách khác, trả về “function”. Điều đó cũng đến từ những ngày đầu của JavaScript. Về mặt kỹ thuật, hành vi như vậy là không đúng, nhưng có thể thuận tiện trong thực tế.

Tóm lược

Có 8 kiểu dữ liệu cơ bản trong JavaScript.

  • number cho các số thuộc bất kỳ loại nào: số nguyên hoặc dấu phẩy động, số nguyên được giới hạn bởi ± (253-1).
  • bigint dành cho các số nguyên có độ dài tùy ý.
  • string . Một chuỗi có thể không có hoặc nhiều ký tự, không có loại ký tự đơn riêng biệt.
  • boolean cho true / false.
  • null cho các giá trị undefine – kiểu độc lập có một giá trị null.
  • undefined cho các giá trị chưa được gán – một kiểu độc lập có một giá trị duy nhất không được xác định.
  • object cho các cấu trúc dữ liệu phức tạp hơn.
  • symbol  cho số nhận dạng duy nhất.

Toán tử typeof cho phép chúng ta xem kiểu nào được lưu trữ trong một biến.

  • Hai dạng: typeof x hoặc typeof (x).
  • Trả về một chuỗi có tên của kiểu, như “string”.
  • Đối với “object” trả về null – đây là một lỗi trong ngôn ngữ, nó không thực sự là một object.

Trong các chương tiếp theo, chúng ta sẽ tập trung vào các giá trị nguyên thủy và khi chúng ta đã quen thuộc với chúng, chúng ta sẽ chuyển sang các object.

Quý khách có thể tham khảo hơn ở các dịch vụ do websitehcm.com cung cấp như: dịch vụ seo, dịch vụ viết content , dịch vụ chăm sóc website, dịch vụ thiết kế website 

Leave a Reply