JavaScript là một ngôn ngữ đa hình, động lực với các loại và toán tử, các đối tượng tích hợp tiêu chuẩn và phương pháp. Cú pháp của nó dựa trên các ngôn ngữ Java và C - nhiều cấu trúc từ các ngôn ngữ đó cũng áp dụng cho JavaScript. JavaScript hỗ trợ lập trình hướng đối tượng với các nguyên mẫu và lớp đối tượng. Nó cũng hỗ trợ lập trình chức năng vì các chức năng là hạng nhất có thể dễ dàng tạo thông qua các biểu thức và được truyền xung quanh như bất kỳ đối tượng nào khác. Trang này đóng vai trò là tổng quan nhanh về các tính năng ngôn ngữ JavaScript khác nhau, được viết cho người đọc có nền bằng các ngôn ngữ khác, chẳng hạn như C hoặc Java. Hãy bắt đầu bằng cách nhìn vào các khối xây dựng của bất kỳ ngôn ngữ nào: các loại. Các chương trình JavaScript thao tác các giá trị và tất cả các giá trị đó thuộc về một loại. JavaScript cung cấp bảy loại nguyên thủy: Mọi thứ khác được gọi là một đối tượng. Các loại đối tượng phổ biến bao gồm: Các chức năng không phải là cấu trúc dữ liệu đặc biệt trong JavaScript - chúng chỉ là một loại đối tượng đặc biệt có thể được gọi. JavaScript có hai loại số tích hợp: số và bigint. Loại số là giá trị điểm nổi độ chính xác kép của IEEE 754 64 bit, có nghĩa là số nguyên có thể được biểu diễn một cách an toàn giữa-[253-1] và 253-1 mà không bị mất độ chính xác và số điểm nổi có thể được lưu trữ trong suốt thời gian Lên đến 1,79 × 10308. Trong các số, JavaScript không phân biệt giữa số điểm nổi và số nguyên.Loại dữ liệu
6 và console.log["Hello, world"];
console.log["你好,世界!"]; // Nearly all Unicode characters can be written literally in string literals
7 - thường được sử dụng cho logic có điều kiện.console.log["Hello, world"];
console.log["你好,世界!"]; // Nearly all Unicode characters can be written literally in string literals
8console.log["Hello, world"];
console.log["你好,世界!"]; // Nearly all Unicode characters can be written literally in string literals
9console.log["Hello, world"];
console.log["你好,世界!"]; // Nearly all Unicode characters can be written literally in string literals
0console.log["Hello"[1] === "e"]; // true
1console.log["Hello"[1] === "e"]; // true
2console.log["Hello"[1] === "e"]; // true
Số
console.log[3 / 2]; // 1.5, not 1
Vì vậy, một số nguyên rõ ràng trong thực tế là một chiếc phao. Do mã hóa IEEE 754, đôi khi số học điểm nổi có thể không chính xác.
console.log[0.1 + 0.2]; // 0.30000000000000004
Đối với các hoạt động mong đợi các số nguyên, chẳng hạn như các hoạt động bitwise, số lượng sẽ được chuyển đổi thành số nguyên 32 bit.
Số chữ số cũng có thể có tiền tố để chỉ ra cơ sở [nhị phân, bát phân, thập phân hoặc thập lục phân] hoặc hậu tố số mũ.
console.log[0b111110111]; // 503
console.log[0o767]; // 503
console.log[0x1f7]; // 503
console.log[5.03e2]; // 503
Loại lớn là một số nguyên chiều dài tùy ý. Hành vi của nó tương tự như các loại số nguyên của C. Bigint được chỉ định với một số theo nghĩa đen và hậu tố
console.log["Hello"[1] === "e"]; // true
3.console.log[-3n / 2n]; // -1n
Các toán tử số học tiêu chuẩn được hỗ trợ, bao gồm bổ sung, trừ, số học còn lại, v.v ... Bigint và số không thể được trộn lẫn trong các hoạt động số học.
Đối tượng
console.log["Hello"[1] === "e"]; // true
4 cung cấp các hàm và hằng số toán học tiêu chuẩn.Math.sin[3.5];
const circumference = 2 * Math.PI * r;
Có ba cách để chuyển đổi một chuỗi thành một số:
5, phân tích chuỗi cho một số nguyên.console.log["Hello"[1] === "e"]; // true
6, phân tích chuỗi cho một số điểm nổi.console.log["Hello"[1] === "e"]; // true
- Hàm
7, phân tích một chuỗi như thể đó là một số theo nghĩa đen và hỗ trợ nhiều biểu diễn số khác nhau.console.log["Hello"[1] === "e"]; // true
Bạn cũng có thể sử dụng Unary Plus
console.log["Hello"[1] === "e"]; // true
8 làm tốc ký cho console.log["Hello"[1] === "e"]; // true
7.Giá trị số cũng bao gồm
const age = 25;
console.log["I am " + age + " years old."]; // String concatenation
console.log[`I am ${age} years old.`]; // Template literal
0 [viết tắt cho "không phải số"] và const age = 25;
console.log["I am " + age + " years old."]; // String concatenation
console.log[`I am ${age} years old.`]; // Template literal
1. Nhiều hoạt động "Toán học không hợp lệ" sẽ trả về const age = 25;
console.log["I am " + age + " years old."]; // String concatenation
console.log[`I am ${age} years old.`]; // Template literal
0-ví dụ: nếu cố gắng phân tích chuỗi không phải là Numeric hoặc sử dụng const age = 25;
console.log["I am " + age + " years old."]; // String concatenation
console.log[`I am ${age} years old.`]; // Template literal
3 trên một giá trị âm. Phân chia theo 0 tạo ra const age = 25;
console.log["I am " + age + " years old."]; // String concatenation
console.log[`I am ${age} years old.`]; // Template literal
1 [tích cực hoặc tiêu cực].const age = 25;
console.log["I am " + age + " years old."]; // String concatenation
console.log[`I am ${age} years old.`]; // Template literal
0 rất dễ lây lan: Nếu bạn cung cấp nó như một toán hạng cho bất kỳ hoạt động toán học nào, kết quả cũng sẽ là const age = 25;
console.log["I am " + age + " years old."]; // String concatenation
console.log[`I am ${age} years old.`]; // Template literal
0. const age = 25;
console.log["I am " + age + " years old."]; // String concatenation
console.log[`I am ${age} years old.`]; // Template literal
0 là giá trị duy nhất trong JavaScript không bằng chính nó [theo thông số kỹ thuật của IEEE 754].Dây
Các chuỗi trong JavaScript là chuỗi các ký tự Unicode. Đây nên là tin tức đáng hoan nghênh cho bất cứ ai đã phải đối phó với quốc tế hóa. Chính xác hơn, chúng được mã hóa UTF-16.
console.log["Hello, world"];
console.log["你好,世界!"]; // Nearly all Unicode characters can be written literally in string literals
Chuỗi có thể được viết bằng trích dẫn đơn hoặc đôi - JavaScript không có sự khác biệt giữa các ký tự và chuỗi. Nếu bạn muốn đại diện cho một ký tự duy nhất, bạn chỉ cần sử dụng một chuỗi bao gồm một ký tự duy nhất đó.
console.log["Hello"[1] === "e"]; // true
Để tìm độ dài của một chuỗi [trong các đơn vị mã], hãy truy cập thuộc tính
const age = 25;
console.log["I am " + age + " years old."]; // String concatenation
console.log[`I am ${age} years old.`]; // Template literal
8 của nó.Chuỗi có các phương thức tiện ích để thao tác chuỗi và truy cập thông tin về chuỗi. Bởi vì tất cả các nguyên thủy là bất biến theo thiết kế, các phương pháp này trả về các chuỗi mới.
Toán tử
console.log["Hello"[1] === "e"]; // true
8 bị quá tải cho các chuỗi: khi một trong các toán hạng là một chuỗi, nó thực hiện kết hợp chuỗi thay vì bổ sung số. Một cú pháp theo nghĩa đen của mẫu đặc biệt cho phép bạn viết các chuỗi với các biểu thức nhúng ngắn gọn hơn. Không giống như các chuỗi được nội suy của Python hoặc các chuỗi được nội suy của C#, các chữ cái mẫu sử dụng backticks [không phải là trích dẫn đơn hoặc kép].const age = 25;
console.log["I am " + age + " years old."]; // String concatenation
console.log[`I am ${age} years old.`]; // Template literal
Các loại khác
JavaScript phân biệt giữa
Boolean[""]; // false
Boolean[234]; // true
0, cho thấy một giá trị không có giá trị có chủ ý [và chỉ có thể truy cập được thông qua từ khóa Boolean[""]; // false
Boolean[234]; // true
0] và Boolean[""]; // false
Boolean[234]; // true
2, cho thấy sự vắng mặt của giá trị. Có nhiều cách để có được Boolean[""]; // false
Boolean[234]; // true
2:- Một câu lệnh
4 không có giá trị [Boolean[""]; // false Boolean[234]; // true
5] ngầm trả vềBoolean[""]; // false Boolean[234]; // true
2.Boolean[""]; // false Boolean[234]; // true
- Truy cập thuộc tính đối tượng không tồn tại [
7] trả vềBoolean[""]; // false Boolean[234]; // true
2.Boolean[""]; // false Boolean[234]; // true
- Một khai báo biến mà không cần khởi tạo [
9] sẽ ngầm khởi tạo biến thànhBoolean[""]; // false Boolean[234]; // true
2.Boolean[""]; // false Boolean[234]; // true
JavaScript có loại boolean, với các giá trị có thể
console.log["Hello, world"];
console.log["你好,世界!"]; // Nearly all Unicode characters can be written literally in string literals
6 và console.log["Hello, world"];
console.log["你好,世界!"]; // Nearly all Unicode characters can be written literally in string literals
7 - cả hai đều là từ khóa. Bất kỳ giá trị nào cũng có thể được chuyển đổi thành Boolean theo các quy tắc sau:
7,console.log["Hello, world"]; console.log["你好,世界!"]; // Nearly all Unicode characters can be written literally in string literals
let a; let name = "Simon"; // myLetVariable is *not* visible out here for [let myLetVariable = 0; myLetVariable