Từ khóa và định nghĩa JavaScript
Trang này mô tả ngữ pháp từ vựng của JavaScript. Văn bản nguồn JavaScript chỉ là một chuỗi các ký tự — để trình thông dịch hiểu được, chuỗi phải được phân tích cú pháp thành một biểu diễn có cấu trúc hơn. Bước đầu tiên của quá trình phân tích cú pháp được gọi là phân tích từ vựng, trong đó văn bản được quét từ trái sang phải và được chuyển đổi thành một chuỗi các phần tử đầu vào nguyên tử, riêng lẻ. Một số phần tử đầu vào không quan trọng đối với trình thông dịch và sẽ bị loại bỏ sau bước này — chúng bao gồm và. Những cái khác, bao gồm , , và dấu chấm câu (hầu hết là toán tử), sẽ được sử dụng để phân tích cú pháp sâu hơn. và các nhận xét nhiều dòng cũng không quan trọng về mặt cú pháp, nhưng chúng hướng dẫn quy trình để làm cho các chuỗi mã thông báo không hợp lệ nhất định trở thành hợp lệ Show Các ký tự kiểm soát định dạng không có biểu diễn trực quan nhưng được sử dụng để kiểm soát việc diễn giải văn bản Code pointNameAbbreviationDescriptionU+200CZero width non-joinerIn JavaScript source text, Các ký tự khoảng trắng cải thiện khả năng đọc của văn bản nguồn và các mã thông báo riêng biệt với nhau. Những ký tự này thường không cần thiết cho chức năng của mã. Các công cụ thu nhỏ thường được sử dụng để loại bỏ khoảng trắng nhằm giảm lượng dữ liệu cần truyền Code pointNameAbbreviationDescriptionEscape sequenceU+0009Character tabulationGhi chú. Trong số những ký tự có thuộc tính "White_Space" nhưng không thuộc danh mục chung "Space_Separator", U+0009, U+000B và U+000C vẫn được coi là khoảng trắng trong JavaScript; Ghi chú. Các thay đổi đối với tiêu chuẩn Unicode được sử dụng bởi công cụ JavaScript có thể ảnh hưởng đến hành vi của chương trình. Ví dụ: ES2016 đã nâng cấp chuẩn Unicode tham chiếu từ 5. 1 đến 8. 0. 0, khiến cho BỘ PHÂN PHỐI NGUYÊN NGỮ MÔNG CỔ U+180E được chuyển từ danh mục "Dấu cách_Dấu_cách" sang danh mục "Định dạng (Cf)" và làm cho nó không phải là khoảng trắng. Sau đó, kết quả của 1 thay đổi từ 2 thành 3Ngoài các ký tự, các ký tự kết thúc dòng được sử dụng để cải thiện khả năng đọc của văn bản nguồn. Tuy nhiên, trong một số trường hợp, các dấu kết thúc dòng có thể ảnh hưởng đến việc thực thi mã JavaScript vì có một số chỗ chúng bị cấm. Bộ kết thúc dòng cũng ảnh hưởng đến quá trình Bên ngoài ngữ cảnh ngữ pháp từ vựng, khoảng trắng và các dấu kết thúc dòng thường được kết hợp với nhau. Ví dụ: 4 loại bỏ tất cả khoảng trắng và dấu kết thúc dòng ở đầu và cuối chuỗi. Thoát khỏi lớp ký tự 5 trong biểu thức chính quy khớp với tất cả khoảng trắng và dấu đầu dòngChỉ các điểm mã Unicode sau đây được coi là dấu kết thúc dòng trong ECMAScript, các ký tự ngắt dòng khác được coi là khoảng trắng (ví dụ: Dòng tiếp theo, NEL, U+0085 được coi là khoảng trắng) Code pointNameAbbreviationDescriptionEscape sequenceU+000ALine FeedNhận xét được sử dụng để thêm gợi ý, ghi chú, đề xuất hoặc cảnh báo vào mã JavaScript. Điều này có thể làm cho nó dễ đọc và dễ hiểu hơn. Chúng cũng có thể được sử dụng để vô hiệu hóa mã để ngăn mã được thực thi; JavaScript có hai cách lâu đời để thêm nhận xét vào mã. bình luận dòng và bình luận khối. Ngoài ra, có một cú pháp bình luận hashbang đặc biệt Cách thứ nhất là bình luận 6; . Ví dụ
Cách thứ hai là kiểu 7, linh hoạt hơn nhiềuVí dụ: bạn có thể sử dụng nó trên một dòng ________số 8 Bạn cũng có thể tạo nhận xét nhiều dòng, như thế này
Bạn cũng có thể sử dụng nó ở giữa dòng, nếu muốn, mặc dù điều này có thể làm cho mã của bạn khó đọc hơn, vì vậy bạn nên thận trọng khi sử dụng nó 0Ngoài ra, bạn có thể sử dụng nó để vô hiệu hóa mã để ngăn mã chạy bằng cách gói mã trong nhận xét, như thế này
Trong trường hợp này, lệnh gọi 8 không bao giờ được thực hiện, vì nó nằm trong một nhận xét. Bất kỳ số dòng mã nào cũng có thể bị vô hiệu hóa theo cách nàyChặn các nhận xét chứa ít nhất một dấu kết thúc dòng hoạt động như trong Có một cú pháp bình luận thứ ba đặc biệt, bình luận hashbang. Nhận xét hashbang hoạt động chính xác như nhận xét chỉ có một dòng ( 6), ngoại trừ việc nó bắt đầu bằng 40 và chỉ hợp lệ khi bắt đầu tuyệt đối tập lệnh hoặc mô-đun. Cũng lưu ý rằng không có bất kỳ khoảng trắng nào được phép trước 40. Nhận xét bao gồm tất cả các ký tự sau 40 cho đến hết dòng đầu tiên; Nhận xét Hashbang trong JavaScript giống với shebang trong Unix cung cấp đường dẫn đến trình thông dịch JavaScript cụ thể mà bạn muốn sử dụng để thực thi tập lệnh. Trước khi bình luận hashbang được chuẩn hóa, nó đã được triển khai trên thực tế trong các máy chủ không có trình duyệt như Node. js, nơi nó đã bị xóa khỏi văn bản nguồn trước khi được chuyển đến công cụ. Một ví dụ như sau 4Trình thông dịch JavaScript sẽ coi nó như một bình luận bình thường — nó chỉ có ý nghĩa ngữ nghĩa đối với trình bao nếu tập lệnh được chạy trực tiếp trong trình bao Cảnh báo. Nếu bạn muốn các tập lệnh có thể chạy trực tiếp trong môi trường trình bao, hãy mã hóa chúng theo UTF-8 mà không cần BOM. Mặc dù BOM sẽ không gây ra bất kỳ sự cố nào đối với mã đang chạy trong trình duyệt — bởi vì nó bị loại bỏ trong quá trình giải mã UTF-8, trước khi văn bản nguồn được phân tích — trình bao Unix/Linux sẽ không nhận ra hàm băm nếu nó đứng trước ký tự BOM Bạn chỉ được sử dụng kiểu nhận xét 40 để chỉ định trình thông dịch JavaScript. Trong tất cả các trường hợp khác, chỉ cần sử dụng nhận xét 6 (hoặc nhận xét nhiều dòng)Một mã định danh được sử dụng để liên kết một giá trị với một tên. Định danh có thể được sử dụng ở những nơi khác nhau 0Trong JavaScript, mã định danh thường được tạo bằng các ký tự chữ và số, dấu gạch dưới ( 45) và ký hiệu đô la (_______146). Mã định danh không được phép bắt đầu bằng số. Tuy nhiên, mã định danh JavaScript không chỉ giới hạn ở ASCII — nhiều điểm mã Unicode cũng được cho phép. Cụ thể, bất kỳ ký tự nào trong danh mục ID_Start đều có thể bắt đầu mã định danh, trong khi bất kỳ ký tự nào trong danh mục ID_Continue có thể xuất hiện sau ký tự đầu tiênGhi chú. Nếu vì lý do nào đó, bạn cần tự mình phân tích cú pháp một số nguồn JavaScript, đừng cho rằng tất cả các mã định danh đều tuân theo mẫu 47 (i. e. chỉ ASCII). Phạm vi của số nhận dạng có thể được mô tả bằng biểu thức chính quy 48 (không bao gồm các chuỗi thoát unicode)Ngoài ra, JavaScript cho phép sử dụng ở dạng 49 hoặc 00 trong mã định danh, mã hóa giá trị chuỗi giống như các ký tự Unicode thực tế. Ví dụ: 01 và 02 là các mã định danh giống nhau 9Không phải tất cả các địa điểm đều chấp nhận đầy đủ các số nhận dạng. Một số cú pháp, chẳng hạn như khai báo hàm, biểu thức hàm và khai báo biến yêu cầu sử dụng các tên định danh không phải là 0Đáng chú ý nhất, thuộc tính riêng tư và thuộc tính đối tượng cho phép các từ dành riêng 1Từ khóa là mã thông báo trông giống như số nhận dạng nhưng có ý nghĩa đặc biệt trong JavaScript. Ví dụ: từ khóa 03 trước khai báo hàm cho biết hàm không đồng bộMột số từ khóa được dành riêng, nghĩa là không thể được sử dụng làm định danh cho khai báo biến, khai báo hàm, v.v. Chúng thường được gọi là từ dành riêng. được cung cấp dưới đây. Không phải tất cả các từ khóa đều được dành riêng — ví dụ: 03 có thể được sử dụng làm mã định danh ở mọi nơi. Một số từ khóa chỉ được bảo lưu theo ngữ cảnh — ví dụ: 05 chỉ được bảo lưu trong phần thân của hàm không đồng bộ và 06 chỉ được bảo lưu trong mã chế độ nghiêm ngặt hoặc khai báo 07 và 06Các mã định danh luôn được so sánh theo giá trị chuỗi, vì vậy các chuỗi thoát được diễn giải. Ví dụ, đây vẫn là một lỗi cú pháp 0Những từ khóa này không thể được sử dụng làm định danh cho các biến, hàm, lớp, v.v. bất cứ nơi nào trong nguồn JavaScript
Những điều sau đây chỉ được bảo lưu khi chúng được tìm thấy trong mã chế độ nghiêm ngặt
Những điều sau đây chỉ được bảo lưu khi chúng được tìm thấy trong mã mô-đun hoặc thân hàm không đồng bộ
Các mục sau đây được dành riêng làm từ khóa trong tương lai theo đặc tả ECMAScript. Hiện tại chúng không có chức năng đặc biệt, nhưng chúng có thể có trong tương lai, vì vậy chúng không thể được sử dụng làm định danh Chúng luôn được bảo lưu
Những điều sau đây chỉ được bảo lưu khi chúng được tìm thấy trong mã chế độ nghiêm ngặt
Các từ dành riêng trong tương lai trong các tiêu chuẩn cũ hơnCác mục sau đây được dành riêng làm từ khóa trong tương lai theo thông số kỹ thuật ECMAScript cũ hơn (ECMAScript 1 đến 3)
Một số định danh có ý nghĩa đặc biệt trong một số ngữ cảnh mà không phải là từ dành riêng dưới bất kỳ hình thức nào. Chúng bao gồm
Ghi chú. Phần này thảo luận về nghĩa đen là mã thông báo nguyên tử. Đối tượng chữ và là các biểu thức bao gồm một loạt các mã thông báo Xem thêm 11 để biết thêm thông tin 1Xem thêm để biết thêm thông tin 2Các và các loại sử dụng chữ số Số thập phân 3Các chữ số thập phân có thể bắt đầu bằng số 0 (_______02) theo sau là một chữ số thập phân khác, nhưng nếu tất cả các chữ số sau số đầu tiên 2 nhỏ hơn 8, thì số đó được hiểu là số bát phân. Đây được coi là một cú pháp kế thừa và các chữ số có tiền tố là 2, cho dù được hiểu là bát phân hay thập phân, đều gây ra lỗi cú pháp — vì vậy, hãy sử dụng tiền tố 47 để thay thế 4số mũChữ số mũ thập phân được chỉ định theo định dạng sau. 48; 5nhị phânCú pháp số nhị phân sử dụng số 0 đứng đầu, theo sau là chữ cái Latinh viết thường hoặc viết hoa "B" ( 53 hoặc 54). Bất kỳ ký tự nào sau 53 không phải là 0 hoặc 1 sẽ chấm dứt chuỗi ký tự 6bát phânCú pháp số bát phân sử dụng số 0 đứng đầu, theo sau là chữ cái Latinh viết thường hoặc viết hoa "O" ( 47 hoặc 57. Bất kỳ ký tự nào sau 47 nằm ngoài phạm vi (01234567) sẽ chấm dứt chuỗi ký tự 7thập lục phânCú pháp số thập lục phân sử dụng số 0 đứng đầu, theo sau là chữ cái Latinh viết thường hoặc viết hoa "X" ( 59 hoặc 60). Bất kỳ ký tự nào sau 59 nằm ngoài phạm vi (0123456789ABCDEF) sẽ chấm dứt chuỗi ký tự 8BigInt theo nghĩa đenLoại này là một số nguyên thủy trong JavaScript có thể biểu thị các số nguyên với độ chính xác tùy ý. Chữ BigInt được tạo bằng cách nối thêm 62 vào cuối một số nguyên 9Chữ BigInt không thể bắt đầu bằng 2 để tránh nhầm lẫn với chữ bát phân kế thừa 0Đối với số bát phân 64, luôn sử dụng số 0 theo sau là chữ cái "o" (chữ hoa hoặc chữ thường) 1Để biết thêm thông tin về 64, xem thêmDấu tách sốĐể cải thiện khả năng đọc cho các chữ số, dấu gạch dưới ( 45, 67) có thể được sử dụng làm dấu phân cách 2Lưu ý những hạn chế này 3Một chữ là 0 hoặc nhiều điểm mã Unicode được đặt trong dấu ngoặc đơn hoặc dấu ngoặc kép. Các điểm mã Unicode cũng có thể được biểu thị bằng một chuỗi thoát. Tất cả các điểm mã có thể xuất hiện theo nghĩa đen trong một chuỗi ký tự ngoại trừ các điểm mã trích dẫn đóng này
Bất kỳ điểm mã nào cũng có thể xuất hiện dưới dạng chuỗi thoát. Các chuỗi ký tự đánh giá các giá trị Chuỗi ECMAScript. Khi tạo các giá trị Chuỗi này, các điểm mã Unicode được mã hóa UTF-16 4Trình tự thoát thập lục phânCác chuỗi thoát thập lục phân bao gồm 68 theo sau chính xác là hai chữ số thập lục phân đại diện cho một đơn vị mã hoặc điểm mã trong phạm vi 0x0000 đến 0x00FF 5Trình tự thoát UnicodeChuỗi thoát Unicode bao gồm chính xác bốn chữ số thập lục phân sau 69. Nó đại diện cho một đơn vị mã trong bảng mã UTF-16. Đối với các điểm mã U+0000 đến U+FFFF, đơn vị mã bằng với điểm mã. Các điểm mã U+10000 đến U+10FFFF yêu cầu hai chuỗi thoát đại diện cho hai đơn vị mã (một cặp thay thế) được sử dụng để mã hóa ký tự; Xem thêm 70 và 71 6Thoát điểm mã UnicodeMột thoát điểm mã Unicode bao gồm 72, tiếp theo là một điểm mã trong cơ sở thập lục phân, tiếp theo là 73. Giá trị của các chữ số thập lục phân phải nằm trong phạm vi bao gồm 0 và 0x10FFFF. Các điểm mã trong phạm vi U+10000 đến U+10FFFF không cần phải được biểu diễn dưới dạng một cặp thay thếXem thêm 74 và 75 7Các ký tự biểu thức chính quy được bao quanh bởi hai dấu gạch chéo về phía trước ( 76). Từ vựng sử dụng tất cả các ký tự cho đến dấu gạch chéo lên phía trước không thoát tiếp theo hoặc đến cuối dòng, trừ khi dấu gạch chéo lên xuất hiện trong một lớp ký tự ( 77). Một số ký tự (cụ thể là những ký tự ) có thể xuất hiện sau dấu gạch chéo đóng, biểu thị các cờNgữ pháp từ vựng rất khoan dung. không phải tất cả các ký tự biểu thức chính quy được xác định là một mã thông báo đều là biểu thức chính quy hợp lệ Xem thêm 78 để biết thêm thông tin 8Một biểu thức chính quy không thể bắt đầu bằng hai dấu gạch chéo về phía trước ( 6), bởi vì đó sẽ là một chú thích dòng. Để chỉ định một biểu thức chính quy trống, hãy sử dụng 80Một mẫu chữ bao gồm một số mã thông báo. 81 (đầu mẫu), 82 (giữa mẫu) và 83(đuôi mẫu) là các mã thông báo riêng lẻ, trong khi bất kỳ biểu thức nào cũng có thể xuất hiện giữa chúngXem thêm chữ mẫu để biết thêm thông tin 9Một số định nghĩa cú pháp của câu lệnh JavaScript yêu cầu dấu chấm phẩy ( 84) ở cuối. Chúng bao gồm
Tuy nhiên, để làm cho ngôn ngữ trở nên dễ tiếp cận và thuận tiện hơn, JavaScript có thể tự động chèn dấu chấm phẩy khi sử dụng luồng mã thông báo, để một số chuỗi mã thông báo không hợp lệ có thể được "sửa" thành cú pháp hợp lệ. Bước này xảy ra sau khi văn bản chương trình đã được phân tích cú pháp thành các mã thông báo theo ngữ pháp từ vựng. Có ba trường hợp khi dấu chấm phẩy được chèn tự động 1. Khi gặp phải mã thông báo không được phép theo ngữ pháp và mã thông báo này được phân tách khỏi mã thông báo trước đó ít nhất một dấu (bao gồm nhận xét khối bao gồm ít nhất một dấu kết thúc dòng) hoặc mã thông báo là "}", thì dấu chấm phẩy sẽ được chèn trước đó 00Kết thúc ")" của 88 cũng được coi là trường hợp đặc biệt theo quy tắc này 01Tuy nhiên, dấu chấm phẩy không được chèn nếu sau đó dấu chấm phẩy sẽ trở thành dấu phân cách trong phần đầu của câu lệnh 04 02Dấu chấm phẩy cũng không bao giờ được chèn dưới dạng câu lệnh trống. Ví dụ: trong mã bên dưới, nếu dấu chấm phẩy được chèn sau ")", thì mã sẽ hợp lệ, với một câu lệnh trống là phần thân của 06 và phần khai báo 07 là một câu lệnh riêng biệt. Tuy nhiên, vì dấu chấm phẩy được chèn tự động không thể trở thành câu lệnh trống, điều này khiến a trở thành phần thân của câu lệnh 06, điều này không hợp lệ 032. Khi kết thúc luồng mã thông báo đầu vào và trình phân tích cú pháp không thể phân tích cú pháp luồng đầu vào đơn lẻ thành một chương trình hoàn chỉnh, dấu chấm phẩy sẽ được chèn vào cuối 04Quy tắc này là phần bổ sung cho quy tắc trước đó, đặc biệt đối với trường hợp không có "mã thông báo vi phạm" nhưng kết thúc luồng đầu vào 3. Khi ngữ pháp cấm các dấu kết thúc dòng ở một số nơi nhưng tìm thấy dấu kết thúc dòng, dấu chấm phẩy sẽ được chèn vào. Những nơi này bao gồm
Ở đây, 15 không được coi là toán tử hậu tố áp dụng cho biến 49, bởi vì dấu kết thúc dòng xảy ra giữa 49 và 15 05Ở đây, câu lệnh 12 trả về 20 và 21 trở thành câu lệnh không thể truy cập 06Lưu ý rằng ASI sẽ chỉ được kích hoạt nếu ngắt dòng phân tách các mã thông báo sẽ tạo ra cú pháp không hợp lệ. Nếu mã thông báo tiếp theo có thể được phân tích cú pháp như một phần của cấu trúc hợp lệ, thì dấu chấm phẩy sẽ không được chèn. Ví dụ 07Bởi vì 22 có thể được xem như một lệnh gọi hàm, nên nó thường không kích hoạt ASI. Tương tự, 77 có thể là thành viên truy cập. Đoạn mã trên tương đương với 08Điều này xảy ra là cú pháp hợp lệ. 24 là một trình truy cập thuộc tính có biểu thức được nối bằng dấu phẩy. Do đó, bạn sẽ gặp các lỗi như "1 không phải là hàm" và "Không thể đọc các thuộc tính của không xác định (đọc 'forEach')" khi chạy mãTrong các lớp, các trường lớp và các phương thức tạo cũng có thể là một cạm bẫy 09Nó được xem như 0Và do đó sẽ có một lỗi cú pháp khoảng 25Có các quy tắc chung sau đây để xử lý ASI, nếu bạn muốn thực thi kiểu không có dấu chấm phẩy Các từ khóa trong JavaScript là gì?Từ khóa là mã thông báo có ý nghĩa đặc biệt trong JavaScript. break , case , catch , continue , debugger , default , delete , do , other , finally , for , function , if , in , instanceof , new , return , switch , this , throw , try . .
Có bao nhiêu từ khóa được sử dụng trong JavaScript?> ba từ khóa var , let và const hoạt động xung quanh các phạm vi này. Vì vậy, hãy hiểu làm thế nào mọi thứ phù hợp với nhau.
Từ khóa này trong JavaScript giải thích bằng ví dụ là gì?Trong JavaScript, từ khóa this dùng để chỉ một đối tượng . Đối tượng nào phụ thuộc vào cách đối tượng này được gọi (được sử dụng hoặc được gọi). Từ khóa này đề cập đến các đối tượng khác nhau tùy thuộc vào cách nó được sử dụng. Trong một phương thức đối tượng, điều này đề cập đến đối tượng.
Định nghĩa cơ bản về JavaScript là gì?JavaScript là ngôn ngữ lập trình bổ sung tính tương tác cho trang web của bạn . Điều này xảy ra trong trò chơi, trong hành vi phản hồi khi nhấn nút hoặc nhập dữ liệu trên biểu mẫu; . |