Có thể chuyển đổi giá trị thập lục phân sang ký tự ASCII tương ứng của nó, không sử dụng phương thức
char[0x61]; // a
9, trong JavaScript?Ví dụ:
JavaScript:
0x61 // 97
String.fromCharCode[0x61] // a
C-like:
[char]0x61 // a
có giá trị
1.8061 Huy hiệu vàng18 Huy hiệu bạc28 Huy hiệu đồng1 gold badge18 silver badges28 bronze badges
Hỏi ngày 12 tháng 10 năm 2011 lúc 20:23Oct 12, 2011 at 20:23
Mặt nạ mặt nạThe Mask
16.6K36 Huy hiệu vàng109 Huy hiệu bạc180 Huy hiệu đồng36 gold badges109 silver badges180 bronze badges
2
Bạn có thể sử dụng ký hiệu
var char = "\u0061";
0:var str = "\x61";
Đã trả lời ngày 12 tháng 10 năm 2011 lúc 20:26Oct 12, 2011 at 20:26
1
Không phải theo cách đó, bởi vì JavaScript được gõ lỏng lẻo và không cho phép người ta xác định loại dữ liệu của biến.
Tuy nhiên, những gì bạn có thể làm là tạo một lối tắt:
var char = String.fromCharCode; // copy the function into another variable
Sau đó, bạn có thể gọi
var char = "\u0061";
1 thay vì char[0x61]; // a
9:char[0x61]; // a
Điều này khá gần với những gì bạn muốn [và có lẽ dễ đọc hơn/yêu cầu gõ ít hơn].
Đã trả lời ngày 12 tháng 10 năm 2011 lúc 20:25Oct 12, 2011 at 20:25
PIMVDBPIMVDBpimvdb
Phù vàng 149K76 Huy hiệu vàng 303 Huy hiệu đồng76 gold badges303 silver badges351 bronze badges
Ngoài ra còn có Unicode tương đương với
var char = "\u0061";
3:var char = "\u0061";
thoát khỏi
59.2K31 Huy hiệu vàng146 Huy hiệu bạc190 Huy hiệu đồng31 gold badges146 silver badges190 bronze badges
Đã trả lời ngày 12 tháng 10 năm 2011 lúc 20:34Oct 12, 2011 at 20:34
Daviddaviddavid
17,5K4 Huy hiệu vàng42 Huy hiệu bạc57 Huy hiệu đồng4 gold badges42 silver badges57 bronze badges
Chuỗi được thể hiện như thế nào trong JS? Unicode trong JavaScript là gì? Unicode là một bộ ký tự phổ quát xác định danh sách các ký tự từ phần lớn các hệ thống viết và các cộng sự cho mỗi ký tự là một số duy nhất [điểm mã].case-sensitive and uses the Unicode character set. For example, the word Früh [which means "early" in German] could be used as a variable name. Các chuỗi được lưu trữ trong JavaScript như thế nào? Chúng được lưu trữ "về thể chất", chúng được lưu trữ kỹ thuật số rõ ràng. Mặc dù bạn có thể sử dụng truy cập mảng [] để lấy các ký tự riêng lẻ, các chuỗi không phải là mảng hoặc char trong javascript không có loại char và chuỗi không có các phương thức liên quan đến thao tác mảng. Những ký tự nào là biến JavaScript được phép bắt đầu? Các biến đặt tên bắt đầu chúng bằng một chữ cái, nhấn mạnh _ hoặc dấu hiệu đô la $. Sau chữ cái đầu tiên, bạn có thể sử dụng các số, cũng như các chữ cái, dấu gạch dưới hoặc dấu hiệu đô la. Không sử dụng bất kỳ từ khóa dành riêng của JavaScript nào. ECMAScript also has rules for automatic
insertion of semicolons [ASI] to end statements. [For more information, see the detailed reference about JavaScript's lexical grammar.] " Trước Chương này thảo luận về ngữ pháp cơ bản của JavaScript, khai báo biến, loại dữ liệu và chữ. Điều cơ bảncomments is the same as in C++ and in many other languages:Chuỗi có thể được đặt trong các trích dẫn đơn, dấu ngoặc kép hoặc backticks: hãy để đơn = 'được trích xuất đơn'; Đặt gấp đôi = "được trích dẫn đôi"; Đặt backticks = `backticks`; Trích dẫn đơn và đôi về cơ bản là giống nhau.
// a one line comment
/* this is a longer,
* multi-line comment
*/
JavaScript mượn hầu hết cú pháp của nó từ Java, C và C ++, nhưng nó cũng bị ảnh hưởng bởi AWK, Perl và Python.
/* You can't, however, /* nest comments */ SyntaxError */
JavaScript nhạy cảm trường hợp và sử dụng bộ ký tự Unicode. Ví dụ, từ früh [có nghĩa là "sớm" trong tiếng Đức] có thể được sử dụng như một tên biến.
/* You can /* nest comments *\/ by escaping slashes */
Nhưng, biến
var char = "\u0061";
4 không giống như var char = "\u0061";
5 vì JavaScript nhạy cảm trường hợp.Trong JavaScript, các hướng dẫn được gọi là câu lệnh và được phân tách bằng dấu chấm phẩy [;]. You might also see a third type of comment syntax at the start of some JavaScript files, which looks something like this:
var char = "\u0061";
8.Một dấu chấm phẩy là không cần thiết sau một tuyên bố nếu nó được viết trên dòng riêng của nó. Nhưng nếu có nhiều hơn một tuyên bố trên một dòng là mong muốn, thì chúng phải được phân tách bằng dấu chấm phẩy.hashbang comment syntax, and is a special comment used to specify the path to a particular JavaScript engine that should execute the script. See Hashbang comments for more details.
Tuyên bố
JavaScript có ba loại khai báo biến.
var char = "\u0061";
9Khai báo một biến, tùy chọn khởi tạo nó thành một giá trị.
// a one line comment
/* this is a longer,
* multi-line comment
*/
0Khai báo một biến cục bộ, biến khối, tùy chọn khởi tạo nó thành một giá trị.
// a one line comment
/* this is a longer,
* multi-line comment
*/
1Tuyên bố một hằng số có tên, chỉ đọc.
Biến
Bạn sử dụng các biến làm tên biểu tượng cho các giá trị trong ứng dụng của bạn. Tên của các biến, được gọi là định danh, phù hợp với các quy tắc nhất định.
Một định danh JavaScript thường bắt đầu bằng một chữ cái, nhấn mạnh [
// a one line comment
/* this is a longer,
* multi-line comment
*/
2] hoặc dấu hiệu đô la [// a one line comment
/* this is a longer,
* multi-line comment
*/
3]. Các ký tự tiếp theo cũng có thể là các chữ số [// a one line comment
/* this is a longer,
* multi-line comment
*/
4 - // a one line comment
/* this is a longer,
* multi-line comment
*/
5]. Bởi vì JavaScript nhạy cảm trường hợp, các chữ cái bao gồm các ký tự // a one line comment
/* this is a longer,
* multi-line comment
*/
6 đến // a one line comment
/* this is a longer,
* multi-line comment
*/
7 [chữ hoa] cũng như // a one line comment
/* this is a longer,
* multi-line comment
*/
8 đến // a one line comment
/* this is a longer,
* multi-line comment
*/
9 [chữ thường].Bạn có thể sử dụng hầu hết các chữ cái ISO 8859-1 hoặc Unicode như
/* You can't, however, /* nest comments */ SyntaxError */
0 và /* You can't, however, /* nest comments */ SyntaxError */
1 trong các định danh. .Một số ví dụ về tên hợp pháp là
/* You can't, however, /* nest comments */ SyntaxError */
2, /* You can't, however, /* nest comments */ SyntaxError */
3, /* You can't, however, /* nest comments */ SyntaxError */
4 và /* You can't, however, /* nest comments */ SyntaxError */
5.Khai báo các biến
Bạn có thể khai báo một biến theo hai cách:
- Với từ khóa
9. Ví dụ,var char = "\u0061";
7. Cú pháp này có thể được sử dụng để khai báo cả các biến cục bộ và toàn cầu, tùy thuộc vào bối cảnh thực thi.local and global variables, depending on the execution context./* You can't, however, /* nest comments */ SyntaxError */
- Với từ khóa
1 hoặc// a one line comment /* this is a longer, * multi-line comment */
0. Ví dụ,// a one line comment /* this is a longer, * multi-line comment */
0. Cú pháp này có thể được sử dụng để khai báo biến cục bộ khối khối. [Xem phạm vi biến bên dưới.]/* You can /* nest comments *\/ by escaping slashes */
Bạn có thể khai báo các biến để giải nén các giá trị bằng cách sử dụng cú pháp gán phá hủy. Ví dụ,
/* You can /* nest comments *\/ by escaping slashes */
1. Điều này sẽ tạo một biến có tên /* You can /* nest comments *\/ by escaping slashes */
2 và gán cho nó giá trị tương ứng với khóa của cùng tên từ đối tượng của chúng tôi /* You can /* nest comments *\/ by escaping slashes */
3.Các biến phải luôn được khai báo trước khi chúng được sử dụng. JavaScript được sử dụng để cho phép gán cho các biến không được khai báo, tạo ra một biến toàn cầu không được khai báo. Đây là một lỗi trong chế độ nghiêm ngặt và nên tránh hoàn toàn.undeclared global variable. This is an error in strict mode and should be avoided altogether.
Tuyên bố và khởi tạo
Trong một tuyên bố như
/* You can /* nest comments *\/ by escaping slashes */
4, phần /* You can /* nest comments *\/ by escaping slashes */
5 được gọi là tuyên bố và phần /* You can /* nest comments *\/ by escaping slashes */
6 được gọi là trình khởi tạo. Tuyên bố cho phép biến được truy cập sau trong mã mà không cần ném /* You can /* nest comments *\/ by escaping slashes */
7, trong khi trình khởi tạo gán giá trị cho biến. Trong các khai báo var char = "\u0061";
9 và // a one line comment
/* this is a longer,
* multi-line comment
*/
0, trình khởi tạo là tùy chọn. Nếu một biến được khai báo mà không có trình khởi tạo, nó được gán giá trị let x;
console.log[x]; // logs "undefined"
0.let x;
console.log[x]; // logs "undefined"
Về bản chất,
/* You can /* nest comments *\/ by escaping slashes */
4 tương đương với let x;
console.log[x]; // logs "undefined"
2.// a one line comment
/* this is a longer,
* multi-line comment
*/
1 Khai báo luôn cần một trình khởi tạo, bởi vì họ cấm bất kỳ loại gán nào sau khi khai báo, và hoàn toàn khởi tạo nó với let x;
console.log[x]; // logs "undefined"
0 có thể là một sai lầm của lập trình viên.[char]0x61 // a
0Phạm vi biến đổi
Một biến có thể thuộc về một trong các phạm vi sau:
- Phạm vi toàn cầu: Phạm vi mặc định cho tất cả các mã chạy ở chế độ tập lệnh.
- Phạm vi mô -đun: Phạm vi cho mã chạy ở chế độ mô -đun.
- Phạm vi chức năng: Phạm vi được tạo bằng một hàm.
Ngoài ra, các biến được khai báo với
// a one line comment
/* this is a longer,
* multi-line comment
*/
0 hoặc // a one line comment
/* this is a longer,
* multi-line comment
*/
1 có thể thuộc về một phạm vi bổ sung:- Phạm vi khối: Phạm vi được tạo bằng một cặp niềng răng xoăn [một khối].
Khi bạn khai báo một biến bên ngoài bất kỳ chức năng nào, nó được gọi là biến toàn cầu, bởi vì nó có sẵn cho bất kỳ mã nào khác trong tài liệu hiện tại. Khi bạn khai báo một biến trong một hàm, nó được gọi là biến cục bộ, bởi vì nó chỉ có sẵn trong hàm đó.
Tuyên bố
// a one line comment
/* this is a longer,
* multi-line comment
*/
0 và // a one line comment
/* this is a longer,
* multi-line comment
*/
1 cũng có thể được đưa vào câu lệnh khối mà chúng được khai báo.[char]0x61 // a
1Tuy nhiên, các biến được tạo bằng
var char = "\u0061";
9 không được bao gồm, mà chỉ cục bộ cho hàm [hoặc phạm vi toàn cầu] mà khối nằm bên trong.Ví dụ: mã sau đây sẽ đăng nhập
[char]0x61 // a
00, vì phạm vi của [char]0x61 // a
01 là bối cảnh toàn cầu [hoặc bối cảnh chức năng nếu mã là một phần của hàm]. Phạm vi của [char]0x61 // a
01 không giới hạn ở khối tuyên bố ____103 ngay lập tức.[char]0x61 // a
2
Tăng cường biến
________ 59 biến được tuyên bố được nâng lên, có nghĩa là bạn có thể tham khảo biến ở bất cứ đâu trong phạm vi của nó, ngay cả khi tuyên bố của nó chưa đạt được. Bạn có thể thấy các tuyên bố
var char = "\u0061";
9 là "nâng" lên đỉnh của chức năng hoặc phạm vi toàn cầu. Tuy nhiên, nếu bạn truy cập một biến trước khi được khai báo, giá trị luôn là let x;
console.log[x]; // logs "undefined"
0, bởi vì chỉ có tuyên bố của nó được nâng lên, nhưng không phải là khởi tạo của nó.[char]0x61 // a
3Các ví dụ trên sẽ được giải thích giống như:
[char]0x61 // a
4Do nâng cao, tất cả các câu lệnh
var char = "\u0061";
9 trong một hàm nên được đặt càng gần trên đỉnh của hàm càng tốt. Thực tiễn tốt nhất này làm tăng sự rõ ràng của mã.Liệu
// a one line comment
/* this is a longer,
* multi-line comment
*/
0 và // a one line comment
/* this is a longer,
* multi-line comment
*/
1 có được nâng lên hay không là vấn đề tranh luận về định nghĩa. Tham chiếu biến trong khối trước khi khai báo biến luôn dẫn đến /* You can /* nest comments *\/ by escaping slashes */
7, bởi vì biến nằm trong "vùng chết tạm thời" từ đầu khối cho đến khi khai báo được xử lý.[char]0x61 // a
5Không giống như các khai báo
var char = "\u0061";
9, chỉ nâng Tuyên bố nhưng không phải là giá trị của nó, các khai báo chức năng được nâng lên hoàn toàn - bạn có thể gọi một cách an toàn hàm ở bất cứ đâu trong phạm vi của nó. Xem mục Thuật ngữ nâng để thảo luận thêm.Biến toàn cầu
Các biến toàn cầu trên thực tế là các thuộc tính của đối tượng toàn cầu.
Trong các trang web, đối tượng toàn cầu là
[char]0x61 // a
12, do đó bạn có thể đặt và truy cập các biến toàn cầu bằng cú pháp [char]0x61 // a
13. Trong tất cả các môi trường, bạn có thể sử dụng biến [char]0x61 // a
14 [bản thân nó là biến toàn cầu] để truy cập các biến toàn cầu.Do đó, bạn có thể truy cập các biến toàn cầu được khai báo trong một cửa sổ hoặc khung từ một cửa sổ hoặc khung khác bằng cách chỉ định tên
[char]0x61 // a
12 hoặc [char]0x61 // a
16. Ví dụ: nếu một biến được gọi là [char]0x61 // a
17 được khai báo trong tài liệu, bạn có thể tham khảo biến này từ [char]0x61 // a
18 là [char]0x61 // a
19.Hằng số
Bạn có thể tạo một hằng số chỉ đọc, được đặt tên với từ khóa
// a one line comment
/* this is a longer,
* multi-line comment
*/
1. Cú pháp của một định danh không đổi giống như bất kỳ định danh biến nào: nó phải bắt đầu bằng một chữ cái, dấu gạch dưới hoặc dấu đô la [// a one line comment
/* this is a longer,
* multi-line comment
*/
3] và có thể chứa các ký tự chữ cái, số hoặc dấu gạch dưới.Một hằng số không thể thay đổi giá trị thông qua gán hoặc được khai báo lại trong khi tập lệnh đang chạy. Nó phải được khởi tạo thành một giá trị. Các quy tắc phạm vi cho các hằng số giống như các quy tắc cho các biến phạm vi khối
// a one line comment
/* this is a longer,
* multi-line comment
*/
0.Bạn không thể khai báo một hằng số có cùng tên với hàm hoặc biến trong cùng một phạm vi. Ví dụ:
[char]0x61 // a
6Tuy nhiên,
// a one line comment
/* this is a longer,
* multi-line comment
*/
1 chỉ ngăn chặn việc ký lại, nhưng không ngăn chặn đột biến. Các thuộc tính của các đối tượng được gán cho hằng số không được bảo vệ, vì vậy câu lệnh sau được thực thi mà không có vấn đề.[char]0x61 // a
7Ngoài ra, nội dung của một mảng không được bảo vệ, vì vậy câu lệnh sau được thực thi mà không có vấn đề.
[char]0x61 // a
8Cấu trúc và loại dữ liệu
Loại dữ liệu
Tiêu chuẩn Ecmascript mới nhất xác định tám loại dữ liệu:
- Bảy loại dữ liệu là nguyên thủy:
- Boolean.
24 và[char]0x61 // a
25.[char]0x61 // a
- vô giá trị. Một từ khóa đặc biệt biểu thị một giá trị null. .
- chưa xác định. Một thuộc tính cấp cao nhất có giá trị không được xác định.
- Con số. Một số nguyên hoặc số nổi. Ví dụ:
29 hoặc[char]0x61 // a
30.[char]0x61 // a
- Bigint. Một số nguyên với độ chính xác tùy ý. Ví dụ:
31.[char]0x61 // a
- Sợi dây. Một chuỗi các ký tự đại diện cho một giá trị văn bản. Ví dụ:
32.[char]0x61 // a
- Biểu tượng. Một kiểu dữ liệu có các trường hợp là duy nhất và bất biến.
- Boolean.
- và đối tượng
Mặc dù các loại dữ liệu này tương đối ít, nhưng chúng cho phép bạn thực hiện các hoạt động hữu ích với các ứng dụng của bạn. Các chức năng là các yếu tố cơ bản khác của ngôn ngữ. Mặc dù các chức năng về mặt kỹ thuật là một loại đối tượng, bạn có thể nghĩ về các đối tượng như các thùng chứa được đặt tên cho các giá trị và các chức năng như các quy trình mà tập lệnh của bạn có thể thực hiện.
Chuyển đổi kiểu dữ liệu
JavaScript là một ngôn ngữ được đánh máy động. Điều này có nghĩa là bạn không phải chỉ định loại dữ liệu của một biến khi bạn khai báo. Điều đó cũng có nghĩa là các loại dữ liệu được tự động chuyển đổi khi thực hiện trong quá trình thực thi tập lệnh.
Vì vậy, ví dụ, bạn có thể xác định một biến như sau:
Và sau đó, bạn có thể gán cùng một biến một giá trị chuỗi, ví dụ:
[char]0x61 // a
9Bởi vì JavaScript được gõ động, bài tập này không gây ra thông báo lỗi.
Số và toán tử '+'
Trong các biểu thức liên quan đến các giá trị số và chuỗi với toán tử
[char]0x61 // a
33, JavaScript chuyển đổi các giá trị số thành chuỗi. Ví dụ, hãy xem xét các tuyên bố sau:var str = "\x61";
0Với tất cả các toán tử khác, JavaScript không chuyển đổi các giá trị số thành chuỗi. Ví dụ:
var str = "\x61";
1Chuyển đổi chuỗi thành số
Trong trường hợp một giá trị đại diện cho một số nằm trong bộ nhớ dưới dạng chuỗi, có các phương thức để chuyển đổi.
34[char]0x61 // a
35[char]0x61 // a
[char]0x61 // a
36 chỉ trả về toàn bộ số, do đó việc sử dụng nó bị giảm cho số thập phân.Lưu ý: Ngoài ra, một thông lệ tốt nhất cho
36 là luôn bao gồm tham số radix. Tham số radix được sử dụng để chỉ định hệ thống số nào sẽ được sử dụng. Additionally, a best practice for [char]0x61 // a
[char]0x61 // a
36 is to always include the radix parameter. The radix parameter is used to specify which numerical system is to be used.Một phương pháp thay thế để truy xuất một số từ một chuỗi là với toán tử
[char]0x61 // a
33 [Unary Plus]:var str = "\x61";
2Nghĩa đen
Biết chữ đại diện cho các giá trị trong JavaScript. Đây là những giá trị cố định, không phải là các biến mà bạn thực sự cung cấp trong tập lệnh của mình. Phần này mô tả các loại nghĩa đen sau:
- Mảng nghĩa đen
- Boolean Biết chữ
- Chữ số
- Đối tượng chữ
- REGEXP LIÊN QUAN
- Chuỗi chữ
Mảng nghĩa đen
Một mảng theo nghĩa đen là một danh sách các biểu thức bằng 0 hoặc nhiều hơn, mỗi biểu thức đại diện cho một phần tử mảng, được đặt trong dấu ngoặc vuông [
[char]0x61 // a
39]. Khi bạn tạo một mảng bằng cách sử dụng một mảng theo nghĩa đen, nó sẽ được khởi tạo với các giá trị được chỉ định là các phần tử của nó và [char]0x61 // a
40 của nó được đặt thành số lượng đối số được chỉ định.Ví dụ sau đây tạo ra mảng
[char]0x61 // a
41 với ba phần tử và [char]0x61 // a
40 của ba:var str = "\x61";
3Nếu một mảng được tạo bằng cách sử dụng chữ theo chữ trong tập lệnh cấp cao nhất, JavaScript sẽ diễn giải mảng mỗi khi nó đánh giá biểu thức chứa theo nghĩa đen của mảng. Ngoài ra, một chữ được sử dụng trong một hàm được tạo mỗi khi hàm được gọi.
LƯU Ý: Các chữ cái tạo ra các đối tượng
43. Xem [char]0x61 // a
43 và các bộ sưu tập được lập chỉ mục để biết chi tiết về các đối tượng [char]0x61 // a
43. Array literals create [char]0x61 // a
[char]0x61 // a
43 objects. See
[char]0x61 // a
43 and Indexed collections for details on [char]0x61 // a
43 objects.Nếu bạn đặt hai dấu phẩy liên tiếp theo nghĩa đen, mảng sẽ để lại một khe trống cho phần tử không xác định. Ví dụ sau đây tạo ra mảng
[char]0x61 // a
46:var str = "\x61";
4Khi bạn đăng nhập mảng này, bạn sẽ thấy:
var str = "\x61";
5Lưu ý rằng mục thứ hai là "trống", không chính xác như giá trị
let x;
console.log[x]; // logs "undefined"
0 thực tế. Khi sử dụng các phương thức truy cập mảng như [char]0x61 // a
48, các khe trống được bỏ qua. Tuy nhiên, truy cập chỉ mục [char]0x61 // a
49 vẫn trả về let x;
console.log[x]; // logs "undefined"
0.Nếu bạn bao gồm một dấu phẩy kéo dài ở cuối danh sách các yếu tố, dấu phẩy sẽ bị bỏ qua.
Trong ví dụ sau,
[char]0x61 // a
40 của mảng là ba. Không có [char]0x61 // a
52. Tất cả các dấu phẩy khác trong danh sách chỉ ra một yếu tố mới.var str = "\x61";
6Trong ví dụ sau,
[char]0x61 // a
40 của mảng là bốn và [char]0x61 // a
54 và [char]0x61 // a
55 bị thiếu.var str = "\x61";
7Trong ví dụ sau,
[char]0x61 // a
40 của mảng là bốn và [char]0x61 // a
57 và [char]0x61 // a
52 bị thiếu. Chỉ có dấu phẩy cuối cùng bị bỏ qua.Only the last comma is ignored.var str = "\x61";
8Lưu ý: Dấu phẩy giúp giữ cho Git Diffs sạch sẽ khi bạn có một mảng nhiều dòng, bởi vì việc nối thêm một mục vào cuối chỉ thêm một dòng, nhưng không sửa đổi dòng trước đó. Trailing commas help keep git diffs clean when you have a multi-line array, because appending an item to the end only adds one line, but does not modify the previous line.
var str = "\x61";
9Hiểu hành vi của dấu phẩy thêm là quan trọng để hiểu JavaScript như một ngôn ngữ.
Tuy nhiên, khi viết mã của riêng bạn, bạn nên khai báo rõ ràng các yếu tố bị thiếu là
let x;
console.log[x]; // logs "undefined"
0 hoặc ít nhất là chèn một bình luận để làm nổi bật sự vắng mặt của nó. Làm điều này làm tăng tính rõ ràng và khả năng bảo trì của mã của bạn.var char = String.fromCharCode; // copy the function into another variable
0Boolean Biết chữ
Chữ số
Đối tượng chữ Do not confuse the primitive Boolean values
[char]0x61 // a
24 and [char]0x61 // a
25 with the true and false values of the [char]0x61 // a
64 object.REGEXP LIÊN QUAN
Chữ số
Đối tượng chữ
REGEXP LIÊN QUAN
Chuỗi chữ
Một mảng theo nghĩa đen là một danh sách các biểu thức bằng 0 hoặc nhiều hơn, mỗi biểu thức đại diện cho một phần tử mảng, được đặt trong dấu ngoặc vuông [
[char]0x61 // a
39]. Khi bạn tạo một mảng bằng cách sử dụng một mảng theo nghĩa đen, nó sẽ được khởi tạo với các giá trị được chỉ định là các phần tử của nó và [char]0x61 // a
40 của nó được đặt thành số lượng đối số được chỉ định.- Ví dụ sau đây tạo ra mảng
41 với ba phần tử và[char]0x61 // a
40 của ba:[char]0x61 // a
- Nếu một mảng được tạo bằng cách sử dụng chữ theo chữ trong tập lệnh cấp cao nhất, JavaScript sẽ diễn giải mảng mỗi khi nó đánh giá biểu thức chứa theo nghĩa đen của mảng. Ngoài ra, một chữ được sử dụng trong một hàm được tạo mỗi khi hàm được gọi.
- LƯU Ý: Các chữ cái tạo ra các đối tượng
43. Xem[char]0x61 // a
43 và các bộ sưu tập được lập chỉ mục để biết chi tiết về các đối tượng[char]0x61 // a
43.[char]0x61 // a
- Nếu bạn đặt hai dấu phẩy liên tiếp theo nghĩa đen, mảng sẽ để lại một khe trống cho phần tử không xác định. Ví dụ sau đây tạo ra mảng
46:[char]0x61 // a
- Khi bạn đăng nhập mảng này, bạn sẽ thấy:
Lưu ý rằng mục thứ hai là "trống", không chính xác như giá trị
let x;
console.log[x]; // logs "undefined"
0 thực tế. Khi sử dụng các phương thức truy cập mảng như [char]0x61 // a
48, các khe trống được bỏ qua. Tuy nhiên, truy cập chỉ mục [char]0x61 // a
49 vẫn trả về let x;
console.log[x]; // logs "undefined"
0.var char = String.fromCharCode; // copy the function into another variable
1Nếu bạn bao gồm một dấu phẩy kéo dài ở cuối danh sách các yếu tố, dấu phẩy sẽ bị bỏ qua.
Trong ví dụ sau, [char]0x61 // a
40 của mảng là ba. Không có [char]0x61 // a
52. Tất cả các dấu phẩy khác trong danh sách chỉ ra một yếu tố mới.
[char]0x61 // a
[char]0x61 // a
Trong ví dụ sau,
[char]0x61 // a
40 của mảng là bốn và [char]0x61 // a
54 và [char]0x61 // a
55 bị thiếu.- Trong ví dụ sau,
40 của mảng là bốn và[char]0x61 // a
57 và[char]0x61 // a
52 bị thiếu. Chỉ có dấu phẩy cuối cùng bị bỏ qua.[char]0x61 // a
- Lưu ý: Dấu phẩy giúp giữ cho Git Diffs sạch sẽ khi bạn có một mảng nhiều dòng, bởi vì việc nối thêm một mục vào cuối chỉ thêm một dòng, nhưng không sửa đổi dòng trước đó.
- Một phân số [một số thập phân khác],
- Một số mũ.
Phần số mũ là một
[char]0x61 // a
99 hoặc var str = "\x61";
00 theo sau là một số nguyên, có thể được ký [trước [char]0x61 // a
33 hoặc [char]0x61 // a
67]. Một chữ nổi theo nghĩa đen phải có ít nhất một chữ số và một dấu thập phân hoặc [char]0x61 // a
99 [hoặc var str = "\x61";
00].Ngắn gọn hơn, cú pháp là:
var char = String.fromCharCode; // copy the function into another variable
2Ví dụ:
var char = String.fromCharCode; // copy the function into another variable
3Đối tượng chữ
Một đối tượng theo nghĩa đen là một danh sách các cặp thuộc tính bằng 0 hoặc nhiều hơn và các giá trị liên quan của một đối tượng, được đặt trong niềng răng xoăn [
var str = "\x61";
05].Cảnh báo: Không sử dụng một đối tượng theo nghĩa đen khi bắt đầu một tuyên bố! Điều này sẽ dẫn đến một lỗi [hoặc không hoạt động như bạn mong đợi], bởi vì
06 sẽ được hiểu là khởi đầu của một khối. Do not use an object literal at the beginning of a statement! This will lead to an error [or not behave as you expect], because the var str = "\x61";
var str = "\x61";
06 will be interpreted as the
beginning of a block.Sau đây là một ví dụ về một đối tượng theo nghĩa đen. Phần tử đầu tiên của đối tượng
var str = "\x61";
07 xác định một thuộc tính, var str = "\x61";
08 và gán cho nó một chuỗi mới, var str = "\x61";
09; Phần tử thứ hai, thuộc tính var str = "\x61";
10, ngay lập tức được gán kết quả của việc gọi hàm var str = "\x61";
11; Phần tử thứ ba, thuộc tính var str = "\x61";
12, sử dụng một biến hiện có [var str = "\x61";
13].var char = String.fromCharCode; // copy the function into another variable
4Ngoài ra, bạn có thể sử dụng một chữ số hoặc chuỗi theo nghĩa đen cho tên của một thuộc tính hoặc làm tổ một đối tượng bên trong một đối tượng khác. Ví dụ sau sử dụng các tùy chọn này.
var char = String.fromCharCode; // copy the function into another variable
5Tên thuộc tính đối tượng có thể là bất kỳ chuỗi nào, bao gồm cả chuỗi trống. Nếu tên thuộc tính sẽ không phải là định danh hoặc số JavaScript hợp lệ, nó phải được đặt trong các trích dẫn.
Tên thuộc tính không phải là định danh hợp lệ không thể được truy cập dưới dạng thuộc tính DOT [
[char]0x61 // a
98].var char = String.fromCharCode; // copy the function into another variable
6Thay vào đó, chúng phải được truy cập với ký hiệu khung [
[char]0x61 // a
39].var char = String.fromCharCode; // copy the function into another variable
7Tăng cường đối tượng theo nghĩa đen
Đối tượng Hiểu biết hỗ trợ một loạt các cú pháp tốc ký bao gồm thiết lập nguyên mẫu khi xây dựng, tốc ký cho các bài tập
var str = "\x61";
16, định nghĩa các phương thức, thực hiện các cuộc gọi var str = "\x61";
17 và điện toán tên thuộc tính với các biểu thức.Cùng nhau, những điều này cũng mang lại các chữ cái và khai báo lớp học gần nhau hơn và cho phép thiết kế dựa trên đối tượng được hưởng lợi từ một số tiện ích tương tự.
var char = String.fromCharCode; // copy the function into another variable
8REGEXP LIÊN QUAN
Một chữ legex [được định nghĩa chi tiết sau] là một mô hình được bao quanh giữa các dấu gạch chéo. Sau đây là một ví dụ về một nghĩa đen.
Chuỗi chữ
Một chuỗi theo nghĩa đen bằng 0 hoặc nhiều ký tự được đặt trong các dấu ngoặc kép [
var str = "\x61";
18] hoặc đơn [var str = "\x61";
19]. Một chuỗi phải được phân tách bằng các dấu ngoặc kép cùng loại [nghĩa là cả hai dấu ngoặc kép đơn hoặc cả hai dấu ngoặc kép].Sau đây là các ví dụ về chữ viết:
var char = String.fromCharCode; // copy the function into another variable
9Bạn nên sử dụng chuỗi chữ trừ khi bạn cần sử dụng đối tượng
var str = "\x61";
20. Xem var str = "\x61";
20 để biết chi tiết về các đối tượng var str = "\x61";
20.Bạn có thể gọi bất kỳ phương thức nào của đối tượng
var str = "\x61";
20 trên một giá trị theo nghĩa đen. JavaScript tự động chuyển đổi chuỗi theo nghĩa đen thành một đối tượng chuỗi tạm thời, gọi phương thức, sau đó loại bỏ đối tượng chuỗi tạm thời. Bạn cũng có thể sử dụng thuộc tính [char]0x61 // a
40 với một chuỗi chữ:char[0x61]; // a
0Mẫu nghĩa đen cũng có sẵn. Các nghĩa đen được đặt trong ký tự-tick [
var str = "\x61";
25] [giọng nói nghiêm trọng] thay vì trích dẫn kép hoặc đơn.Mẫu nghĩa đen cung cấp đường cú pháp để xây dựng chuỗi. [Điều này tương tự như các tính năng nội suy chuỗi trong Perl, Python, v.v.]
char[0x61]; // a
1Các mẫu được gắn thẻ là một cú pháp nhỏ gọn để chỉ định một mẫu theo nghĩa đen cùng với một cuộc gọi đến hàm "thẻ" để phân tích cú pháp nó. Một mẫu được gắn thẻ chỉ là một cách ngắn gọn và ngữ nghĩa hơn để gọi một hàm xử lý một chuỗi và một tập hợp các giá trị liên quan. Tên của hàm thẻ mẫu đi trước mẫu theo nghĩa đen - như trong ví dụ sau, trong đó hàm thẻ mẫu được đặt tên
var str = "\x61";
26. Hàm var str = "\x61";
26 sẽ nội suy các đối số và tuần tự hóa bất kỳ đối tượng hoặc mảng nào có thể xuất hiện, tránh sự phiền phức var str = "\x61";
28.char[0x61]; // a
2Vì các mẫu mẫu được gắn thẻ chỉ là đường của các cuộc gọi chức năng, bạn có thể viết lại những điều trên như một cuộc gọi chức năng tương đương:
char[0x61]; // a
3Điều này có thể gợi nhớ đến phép nội suy kiểu ____ 229:
char[0x61]; // a
4Bạn có thể thấy cách mẫu được gắn thẻ đọc tự nhiên hơn là hàm "định dạng" truyền thống, trong đó các biến và chính mẫu phải được khai báo riêng.
Sử dụng các ký tự đặc biệt trong chuỗi
Ngoài các ký tự thông thường, bạn cũng có thể bao gồm các ký tự đặc biệt trong chuỗi, như được hiển thị trong ví dụ sau.
char[0x61]; // a
5Bảng sau liệt kê các ký tự đặc biệt mà bạn có thể sử dụng trong các chuỗi JavaScript.
30 | Null byte |
31 | Backspace |
32 | Thức ăn dạng |
33 | Dòng mới |
34 | Vận chuyển trở lại |
35 | Chuyển hướng |
36 | Tab dọc |
37 | Apostrophe hoặc trích dẫn đơn |
38 | Báo giá kép |
39 | Ký tự dấu vết |
40 | Ký tự với mã hóa Latin-1 được chỉ định bởi tối đa ba chữ số bát phân 41 giữa 4 và 43. Ví dụ, 44 là chuỗi octal cho biểu tượng bản quyền. |
45 | Ký tự với mã hóa Latin-1 được chỉ định bởi hai chữ số thập lục phân 46 giữa 47 và 48. Ví dụ, 49 là chuỗi thập lục phân cho biểu tượng bản quyền. |
50 | Ký tự unicode được chỉ định bởi bốn chữ số thập lục phân 51. Ví dụ, 52 là chuỗi Unicode cho biểu tượng bản quyền. Xem trình tự thoát Unicode. |
53 | Điểm Unicode Point thoát ra. Ví dụ, 54 giống như Unicode đơn giản thoát 55. |
Thoát khỏi các nhân vật
Đối với các ký tự không được liệt kê trong bảng, một dấu gạch chéo ngược trước đó bị bỏ qua, nhưng việc sử dụng này không được dùng và nên tránh.
Bạn có thể chèn một dấu ngoặc kép bên trong một chuỗi bằng cách đi trước nó bằng một dấu gạch chéo ngược. Điều này được gọi là thoát khỏi dấu ngoặc kép. Ví dụ:
char[0x61]; // a
6Kết quả của điều này sẽ là:
char[0x61]; // a
7Để bao gồm một dấu gạch chéo ngược theo nghĩa đen bên trong một chuỗi, bạn phải thoát khỏi ký tự dấu gạch chéo ngược. Ví dụ: để gán đường dẫn tệp
var str = "\x61";
56 cho một chuỗi, sử dụng các mục sau:Bạn cũng có thể thoát khỏi sự phá vỡ đường dây bằng cách trước chúng bằng dấu gạch chéo ngược. Backslash và ngắt dòng đều được loại bỏ khỏi giá trị của chuỗi.
char[0x61]; // a
8Thêm thông tin
Chương này tập trung vào cú pháp cơ bản để khai báo và loại. Để tìm hiểu thêm về các cấu trúc ngôn ngữ của JavaScript, hãy xem thêm các chương sau trong hướng dẫn này:
- Kiểm soát luồng và xử lý lỗi
- Vòng lặp và lặp lại
- Chức năng
- Biểu thức và toán tử
Trong chương tiếp theo, chúng ta sẽ xem xét các cấu trúc luồng điều khiển và xử lý lỗi.
- " Trước
- Tiếp theo "