Hướng dẫn basic data types in javascript - các kiểu dữ liệu cơ bản trong javascript

Tất cả các ngôn ngữ lập trình đều có cấu trúc dữ liệu tích hợp, nhưng chúng thường khác nhau từ ngôn ngữ này sang ngôn ngữ khác. Bài viết này cố gắng liệt kê các cấu trúc dữ liệu tích hợp có sẵn trong JavaScript và những thuộc tính nào chúng có. Chúng có thể được sử dụng để xây dựng các cấu trúc dữ liệu khác. Bất cứ nơi nào có thể, so sánh với các ngôn ngữ khác được rút ra.

Gõ động và yếu

JavaScript là một ngôn ngữ động với các loại động. Các biến trong JavaScript không được liên kết trực tiếp với bất kỳ loại giá trị cụ thể nào và bất kỳ biến nào cũng có thể được gán [và được gán lại] của tất cả các loại:

let foo = 42; // foo is now a number
foo = "bar"; // foo is now a string
foo = true; // foo is now a boolean

JavaScript cũng là một ngôn ngữ được đánh máy yếu, có nghĩa là nó cho phép chuyển đổi loại ẩn khi một thao tác liên quan đến các loại không khớp, thay vì ném các lỗi loại.

const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421

Sự ép buộc ngầm rất thuận tiện, nhưng có thể là một bước chân tiềm năng nếu các nhà phát triển không có ý định thực hiện chuyển đổi hoặc có ý định chuyển đổi theo hướng khác [ví dụ: chuỗi thành số thay vì số thành chuỗi]. Đối với các biểu tượng và lớn, JavaScript đã cố tình không cho phép chuyển đổi loại ngầm định.

Các loại JavaScript

Tập hợp các loại trong ngôn ngữ JavaScript bao gồm các giá trị và đối tượng nguyên thủy.

  • Các giá trị nguyên thủy [mốc dữ liệu bất biến được biểu thị trực tiếp ở mức thấp nhất của ngôn ngữ]
    • Loại boolean
    • Loại null
    • Loại không xác định
    • Loại số
    • Loại lớn
    • Loại chuỗi
    • Loại ký hiệu
  • Đối tượng [Bộ sưu tập thuộc tính]

Giá trị nguyên thủy

Tất cả các loại ngoại trừ các đối tượng xác định các giá trị bất biến [nghĩa là các giá trị không thể thay đổi]. Ví dụ, chuỗi là bất biến. Chúng tôi đề cập đến các giá trị của các loại này là "giá trị nguyên thủy".

Loại boolean

Loại null

Loại null

Loại không xác định

Loại không xác định

Loại số

Loại lớn

Loại chuỗi

Loại số

Loại lớn

Loại chuỗi You can check if a number is within the range of safe integers using

const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
5. Outside the range from
const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
3 to
const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
4, JavaScript can no longer safely represent integers; they will instead be represented by a double-precision floating point approximation.

Loại ký hiệu

  • Đối tượng [Bộ sưu tập thuộc tính]
  • Giá trị nguyên thủy
  • Tất cả các loại ngoại trừ các đối tượng xác định các giá trị bất biến [nghĩa là các giá trị không thể thay đổi]. Ví dụ, chuỗi là bất biến. Chúng tôi đề cập đến các giá trị của các loại này là "giá trị nguyên thủy".
  • Boolean đại diện cho một thực thể logic và có thể có hai giá trị: truefalse. Xem Boolean và Boolean để biết thêm chi tiết.

Loại null có chính xác một giá trị: null. Xem null và NULL để biết thêm chi tiết.

Một biến chưa được gán một giá trị có giá trị undefined. Xem undefined và không xác định để biết thêm chi tiết.

console.log[42 / +0]; // Infinity
console.log[42 / -0]; // -Infinity

Các loại số

Ecmascript có hai loại số tích hợp: số và bigint-cùng với giá trị nan liên quan. Although bitwise operators can be used to represent several Boolean values within a single number using bit masking, this is usually considered a bad practice. JavaScript offers other means to represent a set of Booleans [like an array of Booleans, or an object with Boolean values assigned to named properties]. Bit masking also tends to make the code more difficult to read, understand, and maintain.

Loại số là định dạng nhị phân 64 bit chính xác kép IEEE 754 giá trị. Nó có khả năng lưu trữ các số điểm nổi tích cực giữa 2^-1074 [

const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
1] và 2^1024 [
const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
2] cũng như các số điểm nổi âm giữa-[2^-1074] và-[2^1024], nhưng Nó chỉ có thể lưu trữ các số nguyên một cách an toàn trong phạm vi -[2^53 -1] [
const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
3] đến 2^53 -1 [
const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
4].

Loại lớn

Loại chuỗi

Một bigint được tạo ra bằng cách nối thêm

// BigInt
const x = BigInt[Number.MAX_SAFE_INTEGER]; // 9007199254740991n
x + 1n === x + 2n; // false because 9007199254740992n and 9007199254740993n are unequal

// Number
Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2; // true because both are 9007199254740992
7 đến cuối số nguyên hoặc bằng cách gọi hàm tạo.

Bạn có thể có được giá trị an toàn lớn nhất có thể được tăng lên với các số bằng cách sử dụng hằng số

const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
4. Với việc giới thiệu Bigint, bạn có thể hoạt động với các số ngoài
const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
4.

Ví dụ này cho thấy, trong đó việc tăng

const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
4 trả về kết quả dự kiến:

// BigInt
const x = BigInt[Number.MAX_SAFE_INTEGER]; // 9007199254740991n
x + 1n === x + 2n; // false because 9007199254740992n and 9007199254740993n are unequal

// Number
Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2; // true because both are 9007199254740992

Bạn có thể sử dụng các nhà khai thác true1, true2, true3, true4 và true5 với Bigints, giống như với các số. Một Bigint không hoàn toàn bằng một số, nhưng nó là một cách lỏng lẻo như vậy.

Một con lớn hoạt động giống như một số trong trường hợp nó được chuyển đổi thành Boolean: true6, true7, true8, Boolean, false0.

false1s không thể được vận hành trên các số có thể thay thế với các số. Thay vào đó, false2 sẽ bị ném.

Nan

false3 ["không phải là một số"] thường gặp phải khi kết quả của một hoạt động số học không thể được biểu thị dưới dạng một số. Nó cũng là giá trị duy nhất trong JavaScript không bằng chính nó.Not a Number"] is typically encountered when the result of an arithmetic operation cannot be expressed as a number. It is also the only value in JavaScript that is not equal to itself.

Loại chuỗi

Loại chuỗi của JavaScript được sử dụng để biểu diễn dữ liệu văn bản. Đây là một tập hợp các "phần tử" của các giá trị số nguyên không dấu 16 bit. Mỗi phần tử trong chuỗi chiếm một vị trí trong chuỗi. Phần tử đầu tiên là tại Index

// BigInt
const x = BigInt[Number.MAX_SAFE_INTEGER]; // 9007199254740991n
x + 1n === x + 2n; // false because 9007199254740992n and 9007199254740993n are unequal

// Number
Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2; // true because both are 9007199254740992
0, phần tiếp theo tại Index false5, v.v. Độ dài của một chuỗi là số lượng các phần tử trong đó.

Chuỗi JavaScript là bất biến. Điều này có nghĩa là một khi một chuỗi được tạo ra, không thể sửa đổi nó.

Tuy nhiên, vẫn có thể tạo một chuỗi khác dựa trên một thao tác trên chuỗi gốc. Ví dụ:

  • Một nền tảng của bản gốc bằng cách chọn các chữ cái riêng lẻ hoặc sử dụng false6.
  • Một sự kết hợp của hai chuỗi sử dụng toán tử nối [true1] hoặc false8.

Coi chừng "Tách gõ" mã của bạn!

Nó có thể hấp dẫn để sử dụng các chuỗi để thể hiện dữ liệu phức tạp. Làm điều này đi kèm với lợi ích ngắn hạn:

  • Thật dễ dàng để xây dựng các chuỗi phức tạp với sự kết hợp.
  • Chuỗi rất dễ gỡ lỗi [những gì bạn thấy in luôn là những gì có trong chuỗi].
  • Các chuỗi là mẫu số chung của rất nhiều API [trường đầu vào, giá trị lưu trữ cục bộ, phản hồi false9 khi sử dụng Boolean0, v.v.] và nó có thể hấp dẫn chỉ hoạt động với các chuỗi.

Với các quy ước, có thể đại diện cho bất kỳ cấu trúc dữ liệu nào trong một chuỗi. Điều này không làm cho nó một ý tưởng tốt. Chẳng hạn, với một dấu phân cách, người ta có thể mô phỏng một danh sách [trong khi một mảng JavaScript sẽ phù hợp hơn]. Thật không may, khi dấu phân cách được sử dụng trong một trong các yếu tố "danh sách", thì danh sách bị phá vỡ. Một nhân vật thoát có thể được chọn, v.v ... Tất cả điều này đòi hỏi các quy ước và tạo ra gánh nặng bảo trì không cần thiết.

Sử dụng chuỗi cho dữ liệu văn bản. Khi đại diện cho dữ liệu phức tạp, các chuỗi phân tích cú pháp và sử dụng sự trừu tượng phù hợp.

Loại ký hiệu

Một biểu tượng là một giá trị nguyên thủy độc đáo và bất biến và có thể được sử dụng làm khóa của một thuộc tính đối tượng [xem bên dưới]. Trong một số ngôn ngữ lập trình, các biểu tượng được gọi là "nguyên tử".unique and immutable primitive value and may be used as the key of an Object property [see below]. In some programming languages, Symbols are called "atoms".

Để biết thêm chi tiết, xem trang tham chiếu Boolean1.

Các đối tượng

Trong khoa học máy tính, một đối tượng là một giá trị trong bộ nhớ có thể được tham chiếu bởi một định danh.

Đặc tính

Trong JavaScript, các đối tượng có thể được coi là một tập hợp các thuộc tính. Với cú pháp theo nghĩa đen của đối tượng, một tập hợp các thuộc tính giới hạn được khởi tạo; sau đó các thuộc tính có thể được thêm và loại bỏ. Giá trị thuộc tính có thể là giá trị của bất kỳ loại nào, bao gồm các đối tượng khác, cho phép xây dựng các cấu trúc dữ liệu phức tạp. Các thuộc tính được xác định bằng cách sử dụng các giá trị chính. Giá trị khóa là giá trị chuỗi hoặc giá trị ký hiệu.

Có hai loại thuộc tính đối tượng: thuộc tính dữ liệu và thuộc tính của người truy cập. Mỗi thuộc tính có các thuộc tính tương ứng. Mỗi thuộc tính được truy cập nội bộ bởi công cụ JavaScript, nhưng bạn có thể đặt chúng thông qua Boolean2 hoặc đọc chúng thông qua Boolean3. Bạn có thể đọc thêm về các sắc thái khác nhau trên trang Boolean2.

Thuộc tính dữ liệu

Thuộc tính dữ liệu liên kết một khóa với một giá trị. Nó có thể được mô tả bằng các thuộc tính sau:

Boolean5

Giá trị được lấy bằng cách truy cập tài sản. Có thể là bất kỳ giá trị JavaScript.

Boolean6

Một giá trị boolean cho biết nếu thuộc tính có thể được thay đổi với một gán.

Boolean7

Một giá trị boolean cho biết nếu thuộc tính có thể được liệt kê bằng một vòng Boolean8. Xem thêm Khả năng và quyền sở hữu các thuộc tính để biết cách tính khả năng tương tác với các chức năng và cú pháp khác.

Boolean9

Một giá trị boolean cho biết nếu thuộc tính có thể bị xóa, có thể được thay đổi thành thuộc tính accessor và có thể thay đổi thuộc tính của nó.

Tài sản của người truy cập

Liên kết một khóa với một trong hai hàm truy cập [null0 và null1] để truy xuất hoặc lưu trữ một giá trị.

Lưu ý: Điều quan trọng là phải nhận ra thuộc tính của nó - không phải phương thức excessor. Chúng ta có thể cung cấp cho một trình truy cập giống như lớp đối tượng JavaScript bằng cách sử dụng hàm làm giá trị-nhưng điều đó không làm cho đối tượng trở thành một lớp. It's important to recognize it's accessor property — not accessor method. We can give a JavaScript object class-like accessors by using a function as a value — but that doesn't make the object a class.

Thuộc tính Accessor có các thuộc tính sau:

null0

Một hàm được gọi với một danh sách đối số trống để truy xuất giá trị thuộc tính bất cứ khi nào nhận được quyền truy cập vào giá trị được thực hiện. Xem thêm Getters. Có thể là undefined.

null1

Một hàm được gọi với một đối số chứa giá trị được gán. Được thực hiện bất cứ khi nào một thuộc tính được chỉ định được cố gắng thay đổi. Xem thêm Setters. Có thể là undefined.

Boolean7

Một giá trị boolean cho biết nếu thuộc tính có thể được liệt kê bằng một vòng Boolean8. Xem thêm Khả năng và quyền sở hữu các thuộc tính để biết cách tính khả năng tương tác với các chức năng và cú pháp khác.

Boolean9

Giá trị boolean cho biết nếu thuộc tính có thể bị xóa, có thể được thay đổi thành thuộc tính dữ liệu và có thể thay đổi thuộc tính của nó.

Các đối tượng và chức năng "bình thường"

Một đối tượng JavaScript là một ánh xạ giữa các khóa và giá trị. Các phím là chuỗi [hoặc ký hiệu] và các giá trị có thể là bất cứ điều gì. Điều này làm cho các đối tượng phù hợp tự nhiên cho các hashmap.

Các chức năng là các đối tượng thường xuyên với khả năng bổ sung có thể gọi được.

ngày

Khi đại diện cho ngày, lựa chọn tốt nhất là sử dụng tiện ích null9 tích hợp trong JavaScript.

Bộ sưu tập được lập chỉ mục: Mảng và mảng được đánh máy

Các mảng là các đối tượng thường xuyên có mối quan hệ cụ thể giữa các thuộc tính được khóa nguyên và thuộc tính null0.

Ngoài ra, các mảng kế thừa từ null1, cung cấp cho họ một số phương pháp thuận tiện để thao tác các mảng. Ví dụ: null2 [tìm kiếm một giá trị trong mảng] hoặc null3 [thêm một phần tử vào mảng], v.v. Điều này làm cho mảng một ứng cử viên hoàn hảo để đại diện cho danh sách hoặc bộ.

Các mảng được đánh máy trình bày một chế độ xem giống như mảng của bộ đệm dữ liệu nhị phân cơ bản và cung cấp nhiều phương pháp có ngữ nghĩa tương tự với các đối tác mảng. "Mảng gõ" là một thuật ngữ ô cho một loạt các cấu trúc dữ liệu, bao gồm null4, null5, v.v. Kiểm tra trang mảng được đánh máy để biết thêm thông tin.

Bộ sưu tập khóa: Bản đồ, bộ, yếu, yếu

Các cấu trúc dữ liệu này lấy tài liệu tham khảo đối tượng làm khóa. null6 và null7 đại diện cho một tập hợp các đối tượng, trong khi null8 và null9 liên kết một giá trị với một đối tượng.

Sự khác biệt giữa null8S và null9S là ở trước đây, các phím đối tượng có thể được liệt kê. Điều này cho phép tối ưu hóa bộ sưu tập rác trong trường hợp sau.

Bạn có thể tự mình thực hiện ____888 và null6s. Tuy nhiên, vì các đối tượng không thể được so sánh [theo nghĩa của undefined4 "ít hơn", ví dụ], thì động cơ cũng không làm lộ hàm băm của nó cho các đối tượng, hiệu suất tra cứu sẽ nhất thiết phải là tuyến tính. Việc triển khai bản địa của chúng [bao gồm null9] có thể có hiệu suất tra cứu xấp xỉ logarit đến không đổi.

Thông thường, để liên kết dữ liệu với một nút DOM, người ta có thể đặt các thuộc tính trực tiếp trên đối tượng hoặc sử dụng các thuộc tính undefined6. Điều này có nhược điểm là dữ liệu có sẵn cho bất kỳ tập lệnh nào chạy trong cùng một bối cảnh. null8S và null9s giúp dễ dàng liên kết dữ liệu với một đối tượng.

Dữ liệu có cấu trúc: JSON

JSON [ký hiệu đối tượng JavaScript] là một định dạng giữa các dữ liệu nhẹ, có nguồn gốc từ JavaScript, nhưng được sử dụng bởi nhiều ngôn ngữ lập trình. JSON xây dựng cấu trúc dữ liệu phổ quát.JavaScript Object Notation] is a lightweight data-interchange format, derived from JavaScript, but used by many programming languages. JSON builds universal data structures.

Xem JSON và undefined9 để biết thêm chi tiết.

Nhiều đối tượng hơn trong thư viện tiêu chuẩn

JavaScript có một thư viện tiêu chuẩn của các đối tượng tích hợp.

Xin vui lòng xem tài liệu tham khảo để tìm hiểu về nhiều đối tượng hơn.

Xác định các loại bằng toán tử
const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
00

Toán tử

const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log[result]; // 421
00 có thể giúp bạn tìm loại biến của bạn.

Vui lòng đọc trang tham chiếu để biết thêm chi tiết và các trường hợp cạnh.

Xem thêm

7 loại dữ liệu trong JavaScript là gì?

Có bảy loại dữ liệu nguyên thủy, số, chuỗi, boolean, null, không xác định và ký hiệu và một loại dữ liệu không định tuyến 'đối tượng'.Có sự khác biệt giữa các loại dữ liệu NULL và không xác định mặc dù cả hai đều chứa cùng một giá trị.

Ba loại dữ liệu cơ bản trong JavaScript là gì?

JavaScript cho phép bạn làm việc với ba loại dữ liệu nguyên thủy: số, chuỗi văn bản [được gọi là chuỗi chuỗi] và các giá trị sự thật Boolean [được gọi là Boo Booeans Hồi].JavaScript cũng xác định hai loại dữ liệu tầm thường, null và không xác định, mỗi loại chỉ xác định một giá trị duy nhất.numbers, strings of text [known as “strings”], and boolean truth values [known as “booleans”]. JavaScript also defines two trivial data types, null and undefined, each of which defines only a single value.

5 loại dữ liệu cơ bản là gì?

Hầu hết các ngôn ngữ máy tính hiện đại nhận ra năm loại cơ bản của các loại dữ liệu: tích phân, điểm nổi, ký tự, chuỗi ký tự và các loại tổng hợp, với các kiểu con cụ thể khác nhau được xác định trong mỗi loại rộng.Integral, Floating Point, Character, Character String, and composite types, with various specific subtypes defined within each broad category.

Các loại dữ liệu cơ bản là gì?

Các loại dữ liệu cơ bản..
Integer..
Gấp đôi hoặc thực ..
String..
Boolean..
Date/Time..
Object..
Variant..

Bài Viết Liên Quan

Chủ Đề