uTools-Manuals/docs/javascript/About_JavaScript.html
2019-04-21 11:50:48 +08:00

36 lines
6.7 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<article id="wikiArticle">
<div></div>
<h2 id="What_is_JavaScript.3F" name="What_is_JavaScript.3F">什么是 JavaScript?</h2>
<p><span class="external">JavaScript</span><sup>®</sup> 通常简写为JS是一种轻量的、解释性的、面向对象的<a class="external" href="https://zh.wikipedia.org/wiki/%E5%A4%B4%E7%AD%89%E5%87%BD%E6%95%B0" rel="noopener">头等函数</a>语言,其最广为人知的应用是作为网页的脚本语言,但同时它也在很多<a class="external" href="https://en.wikipedia.org/wiki/JavaScript#Uses_outside_web_pages" rel="noopener">非浏览器环境下使用</a>。JS是一种动态的<a class="external" href="https://zh.wikipedia.org/wiki/%E5%8E%9F%E5%9E%8B%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88" rel="noopener">基于原型</a>和多<a class="external" href="https://zh.wikipedia.org/wiki/%E7%BC%96%E7%A8%8B%E8%8C%83%E5%9E%8B" rel="noopener">范式</a>的脚本语言,支持面向对象、命令式和函数式的编程风格。</p>
<p>JavaScript运行在网页的客户端能被用来设计和编程网页在事件发生时的行为。JavaScript不仅易学而且强大因此广泛用于对网页的控制。</p>
<p>与流行的误解相反JavaScript 并不是“解释性 Java”。简单来说JavaScript 是一个动态脚本语言,支持 <a href="Guide/Details_of_the_Object_Model#Class-Based_vs._Prototype-Based_Languages" title="zh-CN/docs/JavaScript/Guide/Details_of_the_Object_Model#Class-Based_vs._Prototype-Based_Languages">基于原型的</a> 对象构造。其基本语法被设计地与 Java 和 C++ 接近来减少学习语言所需要的新概念。语言结构如条件语句if、循环forwhile、分支switch、异常捕获try...catch等和这些语言一致或者很接近。</p>
<p>JavaScript 既是一个 <a class="external" href="http://en.wikipedia.org/wiki/Procedural_programming" rel="noopener" title="http://en.wikipedia.org/wiki/Procedural_programming">面向过程的语言</a> 又是一个 <a class="external" href="Introduction_to_Object-Oriented_JavaScript" title="zh-CN/docs/Introduction_to_Object-Oriented_JavaScript">面向对象的语言</a>。在 JavaScript 中,通过<strong>在运行时</strong>给空对象附加方法和属性来创建对象,与编译语言如 C++ 和 Java 中常见的通过语法来定义类相反。对象构造后,它可以用作是创建相似对象的原型。</p>
<p>JavaScript 的动态特性包括运行时构造对象、可变参数列表、函数变量、动态脚本执行(通过 <code><a href="Reference/Global_Objects/eval" title="zh-CN/docs/JavaScript/Reference/Global_Functions/eval">eval</a></code>)、对象内枚举(通过 <code>for ... in</code>和源码恢复JavaScript 程序可以将函数反编译回源代码)。</p>
<p>如果您需要了解更多 JavaScript 编程信息,请参见下方的 <a href="#JavaScript_resources">JavaScript 资源</a> 链接。</p>
<h2 id="What_JavaScript_implementations_are_available.3F" name="What_JavaScript_implementations_are_available.3F">有哪些 JavaScript 的实现?</h2>
<p>mozilla.org 上托管了两个 JavaScript 实现。<strong>首个</strong> JavaScript 由网景公司的 Brendan Eich 创建,并不断地更新以符合 ECMA-262 Edition 5 及其之后的标准版本。这个引擎,代号 <a href="/zh-CN/docs/Mozilla/Projects/SpiderMonkey" title="zh-CN/docs/SpiderMonkey">SpiderMonkey</a> ,是由 C/C++ 语言开发的。而 <a href="/zh-CN/docs/Rhino" title="zh-CN/docs/Rhino">Rhino</a> 引擎,主要由 Norris Boyd同样也是在网景公司创建则是一个 Java 语言开发的 JavaScript 实现。与 SpiderMonkey 类似Rhino 符合 ECMA-262 Edition 5 标准。</p>
<p>有很多优化技术如 TraceMonkey (Firefox 3.5)、JägerMonkey (Firefox 4) 和 IonMonkey 被不断添加到了 SpiderMonkey JavaScript 引擎。并且提升JavaScript执行效率的工作一直在进行。</p>
<p>除了以上实现,还有其他一些流行的 JavaScript 引擎,如:</p>
<ul>
<li>Google 的 <a class="external" href="http://code.google.com/p/v8/" rel="noopener" title="http://code.google.com/p/v8/">V8</a>,在 Google Chrome 浏览器和较新的 Opera 浏览器中使用。这同时也是<a class="external" href="https://nodejs.org/en/" rel="noopener">Node.js</a>使用的引擎。</li>
<li><a class="external" href="http://www.webkit.org/projects/javascript/index.html" rel="noopener" title="http://www.webkit.org/projects/javascript/index.html">JavaScriptCore</a> (SquirrelFish/Nitro),被用在了一些 WebKit 浏览器如 Apple Safari。</li>
<li><a class="external" href="http://my.opera.com/ODIN/blog/carakan-faq" rel="noopener" title="http://my.opera.com/ODIN/blog/carakan-faq">Carakan</a>,用在旧版本 Opera 中。</li>
<li>The <a class="external" href="http://en.wikipedia.org/wiki/Chakra_%28JScript_engine%29" rel="noopener" title="http://en.wikipedia.org/wiki/Chakra_%28JScript_engine%29">Chakra</a> 引擎,用在 Internet Explorer 中尽管它实现的语言被正式地称作为“JScript”来避免商标问题</li>
</ul>
<p>每个 mozilla.org 的 JavaScript 引擎都提供了 公用API使程序开发者能将其JavaScript嵌入自己的软件中。目前最常见的 JavaScript 宿主环境是网页浏览器。浏览器一般通过 API 创建“宿主对象”来负责将<a class="external" href="http://www.w3.org/DOM/" rel="noopener">DOM</a> 反射到 JavaScript 中。</p>
<p>另一个常见的 JavaScript 应用是作为服务端脚本语言。JavaScript 服务器提供宿主对象代表 HTTP 请求和响应,随后可以通过 JavaScript 程序来动态的生成 Web 页面。<a class="external" href="https://nodejs.org/en/" rel="noopener">Node.js</a>便是一个流行的例子。</p>
<h2 id="JavaScript_resources" name="JavaScript_resources">JavaScript 资源</h2>
<dl>
<dt><a href="/zh-CN/docs/Mozilla/Projects/SpiderMonkey" title="zh-CN/docs/SpiderMonkey">SpiderMonkey</a></dt>
<dd>Mozilla使用C/C++引擎实现JavaScript又称为SpiderMonkey以及如何在应用中嵌入使用的相关信息。</dd>
</dl>
<dl>
<dt><a href="/zh-CN/docs/Rhino" title="zh-CN/docs/Rhino">Rhino</a></dt>
<dd>RhinoJava 语言实现的 JavaScript的相关信息。</dd>
<dt><a href="Language_Resources" title="zh-CN/docs/JavaScript_Language_Resources">语言资源</a></dt>
<dd>已经公布的 JavaScript 标准。</dd>
<dt><a href="A_re-introduction_to_JavaScript" title="zh-CN/docs/A_re-introduction_to_JavaScript">重新认识 JavaScript</a></dt>
<dd><a href="Guide" title="zh-CN/docs/JavaScript/Guide">JavaScript 指南</a><a href="Reference" title="zh-CN/docs/JavaScript/Reference">JavaScript 参考</a></dd>
<dt>JavaScript®是Oracle于美国和其他国家注册和拥有的商标。</dt>
</dl>
</article>