Cập nhật cho năm 2017
"Ngôn ngữ kịch bản rất giống với sự tục tĩu. Tôi không thể định nghĩa nó, nhưng tôi sẽ biết nó khi tôi nhìn thấy nó." - Bức tường Larry
Đối với mục đích của câu trả lời này, hãy giả sử nó có nghĩa là một ngôn ngữ:
- Thiếu một số tính năng của ngôn ngữ "thực" [bất kể điều đó có nghĩa là gì] vì vậy là hữu ích nhất là "keo" giữa các thành phần khác trong hệ thống và
- được giải thích hơn là biên soạn.
JavaScript thực sự tại một thời điểm được coi là một ngôn ngữ kịch bản, với các tính năng cơ bản để thao túng DOM, thực hiện xác thực hình thức và làm cho Chúa Giêsu nhảy múa. Nó được thực hiện trực tiếp từ nguồn bởi một thông dịch viên.
Nhưng JS đã trưởng thành đáng kể trong vài năm qua, với các tính năng nâng cao như Lambdas, các lớp học [tốt hơn hoặc xấu hơn], phá hủy, trình lặp và mô -đun mang lại khả năng của nó ngang bằng với hầu hết các ngôn ngữ hiện đại khác. Không còn giới hạn trong trình duyệt, liệu nó cũng thường được tìm thấy chạy độc lập trên máy chủ dưới NodeJS.
JavaScript hiện được biên dịch toàn cầu, có thể được biên dịch byte [như Java và C#] hoặc trực tiếp với mã máy [như C và C ++]. Và các động cơ hiện đại cung cấp một giai đoạn tối ưu hóa, tương tự như hầu hết các ngôn ngữ được biên dịch truyền thống.
V8 [Chrome, Node]
V8 biên dịch JavaScript trực tiếp vào mã máy gốc trước khi thực thi nó.
Mã luân xa [cạnh]
Luân xa lõi [có thể] làm tổng hợp jit song song ...
Spidermonkey [Firefox]
Spidermonkey 38 bao gồm Trình biên dịch chỉ trong thời gian [JIT] biên dịch JavaScript với mã máy ...
Do đó, nếu JS hiện đại được coi là ngôn ngữ kịch bản thì điều tương tự cũng sẽ áp dụng cho hầu hết các ngôn ngữ "kịch bản" khác.
JavaScript [thường được rút ngắn thành JS] là ngôn ngữ nhẹ, được giải thích, hướng đối tượng với các hàm hạng nhất và được biết đến như là ngôn ngữ kịch bản cho các trang web, nhưng nó cũng được sử dụng trong nhiều môi trường không trình duyệt. Đây là một ngôn ngữ kịch bản dựa trên nguyên mẫu, đa Paradigm, động và hỗ trợ các phong cách lập trình định hướng đối tượng, bắt buộc và chức năng. [often shortened to JS] is a lightweight, interpreted, object-oriented language with
first-class functions, and is best known as the scripting language for Web pages, but it's used in many non-browser environments as well. It is a prototype-based, multi-paradigm scripting language
that is dynamic, and supports object-oriented, imperative, and functional programming styles. JavaScript chạy ở phía máy khách của web, có thể được sử dụng để thiết kế / lập trình cách các trang web hoạt động khi xảy ra sự kiện. JavaScript là một ngôn ngữ kịch bản dễ học và cũng mạnh mẽ, được sử dụng rộng rãi để kiểm soát hành vi trang web.JavaScript là gì?
Trái với quan niệm sai lầm phổ biến, JavaScript không phải là "giải thích Java". Tóm lại, JavaScript là một ngôn ngữ kịch bản động hỗ trợ xây dựng đối tượng dựa trên nguyên mẫu. Cú pháp cơ bản có chủ ý tương tự như cả Java và C ++ để giảm số lượng khái niệm mới cần thiết để học ngôn ngữ. Các cấu trúc ngôn ngữ, chẳng hạn như các câu lệnh if
, các vòng for
và while
và các khối switch
và try ... catch
có chức năng giống như trong các ngôn ngữ này [hoặc gần như vậy].JavaScript is not "Interpreted Java". In a nutshell, JavaScript is a dynamic
scripting language supporting prototype based object construction. The basic syntax is intentionally similar to both Java and C++ to reduce the number of new concepts required to learn the language. Language constructs, such as if
statements, for
and while
loops, and switch
and try ... catch
blocks function the same as in these languages [or nearly so].
JavaScript có thể hoạt động như một ngôn ngữ theo quy trình và đối tượng. Các đối tượng được tạo theo chương trình trong JavaScript, bằng cách gắn các phương thức và thuộc tính vào các đối tượng trống trong thời gian chạy, trái ngược với các định nghĩa lớp cú pháp phổ biến trong các ngôn ngữ được biên dịch như C ++ và Java. Khi một đối tượng đã được xây dựng, nó có thể được sử dụng như một bản thiết kế [hoặc nguyên mẫu] để tạo các đối tượng tương tự.at run time, as opposed to the syntactic class definitions common in compiled languages like C++ and Java. Once an object has been constructed it can be used as a blueprint [or prototype] for creating similar objects.
Khả năng động của JavaScript bao gồm xây dựng đối tượng thời gian chạy, danh sách tham số biến, biến chức năng, tạo tập lệnh động [thông qua eval
], hướng nội đối tượng [thông qua for ... in
] và khôi phục mã nguồn [chương trình JavaScript có thể phân hủy các cơ quan chức năng trở lại văn bản nguồn của họ].
Để thảo luận sâu hơn về lập trình JavaScript, hãy theo các liên kết tài nguyên JavaScript bên dưới.
Những triển khai JavaScript nào có sẵn?
Dự án Mozilla cung cấp hai triển khai JavaScript. JavaScript đầu tiên được tạo ra bởi Brendan Eich tại Netscape, và từ đó đã được cập nhật để phù hợp với phiên bản ECMA-262 và các phiên bản sau đó. Động cơ này, mã có tên Spidermonkey, được triển khai trong C/C ++. Động cơ Rhino, được tạo ra chủ yếu bởi Norris Boyd [cũng tại Netscape] là một triển khai JavaScript được viết bằng Java. Giống như Spidermonkey, Rhino là ECMA-262 Tuân thủ phiên bản 5.ever JavaScript was created by Brendan Eich at Netscape, and has since been updated to conform to ECMA-262 Edition 5 and later versions. This engine, code named SpiderMonkey, is implemented in C/C++. The Rhino engine, created primarily by Norris Boyd [also at Netscape] is a JavaScript implementation written in Java. Like SpiderMonkey, Rhino is ECMA-262 Edition 5 compliant.
Một số tối ưu hóa thời gian chạy lớn như Tracemonkey [Firefox 3.5], Jägermonkey [Firefox 4] và Ionmonkey đã được thêm vào động cơ Spidermonkey JavaScript theo thời gian. Công việc luôn luôn tiếp tục để cải thiện hiệu suất thực hiện JavaScript.
Bên cạnh các triển khai ở trên, còn có các động cơ JavaScript phổ biến khác như:-
- V8 của Google, được sử dụng trong trình duyệt Google Chrome và các phiên bản gần đây của trình duyệt Opera. Đây cũng là động cơ được sử dụng bởi Node.js.
- JavaScriptCore [Squirrelfish/Nitro] được sử dụng trong một số trình duyệt WebKit như Apple Safari.
- Carakan trong các phiên bản cũ của Opera.
- Động cơ Luân xa được sử dụng trong Internet Explorer [mặc dù ngôn ngữ mà nó thực hiện được chính thức gọi là "JScript" để tránh các vấn đề về nhãn hiệu].
Mỗi động cơ JavaScript của Mozilla hiển thị API công khai mà các nhà phát triển ứng dụng có thể sử dụng để tích hợp JavaScript vào phần mềm của họ. Cho đến nay, môi trường máy chủ phổ biến nhất cho JavaScript là trình duyệt web. Các trình duyệt web thường sử dụng API công khai để tạo các đối tượng máy chủ chịu trách nhiệm phản ánh DOM vào JavaScript.host objects responsible for reflecting the DOM into JavaScript.
Một ứng dụng phổ biến khác cho JavaScript là một ngôn ngữ kịch bản phía máy chủ [web]. Một máy chủ web JavaScript sẽ hiển thị các đối tượng máy chủ đại diện cho một yêu cầu HTTP và các đối tượng phản hồi, sau đó có thể được thao tác bởi một chương trình JavaScript để tạo động các trang web. Node.js là một ví dụ phổ biến về điều này.
Tài nguyên JavaScript
- Tổng quan về JavaScript Technologies: Con trỏ đến các tiêu chuẩn JavaScript được xuất bản và các tài nguyên liên quan.
- Tổng quan về ngôn ngữ JavaScript: Tổng quan về các tính năng và cú pháp ngôn ngữ JavaScript khác nhau, được thiết kế cho những người quen thuộc với các ngôn ngữ lập trình khác.
- Hướng dẫn JavaScript và tham khảo JavaScript.
JavaScript® là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle ở Hoa Kỳ và các quốc gia khác.