JavaScript是地球上使用最广泛的脚本语言。

JavaScript是Web的核心语言,并且是唯一可以在所有主要Web浏览器中运行的编程语言。

JavaScript的正式名称是Standard ECMA-262下定义的ECMAScript 

其他一些不错的JavaScript教程:

参考文献

快速JavaScript

挑战性

讲解

练习题

编者

网志

播客

影片教学

图书

Kyle Simpson撰写了6本关于JavaScript的书籍,从入门到高级。

对JavaScript的基本知识和功能进行了详尽的详尽介绍,并带有浏览器内的交互式代码。

关于JavaScript函数式编程的深入指南

独立的JavaScript引擎

Mozilla的SpiderMonkey,第一个编写的JavaScript引擎,目前在Mozilla Firefox中使用。

V8是Google Chrome浏览器中使用的Google的JavaScript引擎。

Google Apps脚本,一种基于云/服务器端的解释器,可对Google Apps服务和文档提供程序化的“类宏”控制。

在V8之上构建的Node.js,该平台使服务器端应用程序可以用JavaScript编写。

Windows包含JScript,这是Windows Script Host中的JavaScript变体。

Chakra是Jscript的分支,由Microsoft开发并在其Edge浏览器中使用。

Mozilla还提供Rhino,Rhino是Java内置的JavaScript的实现,通常嵌入到Java应用程序中以向最终用户提供脚本。

WebKit(Chromium项目除外)实现了JavaScriptCore引擎。

JavaScript框架

最常用的JavaScript框架是React JS,Angular JS,jQuery和NodeJS。有关更多详细信息,请单击此链接

与所有编程语言一样,JavaScript也要考虑某些优点和缺点。其中许多与通常直接在客户端浏览器中执行JavaScript的方式有关。但是,现在还有其他使用JavaScript的方法可以使JavaScript拥有与服务器端语言相同的优势。

JavaScript的优势

  • 速度 -JavaScript的往往是非常快的,因为它往往是在客户端的浏览器中立即运行。只要不需要外部资源,对后端服务器的调用就不会降低JavaScript的速度。同样,主要的浏览器都支持JavaScript的JIT(及时)编译,这意味着在运行代码之前无需编译代码。

  • 简单 -JavaScript的语法是由Java的启发,比较容易比其他流行的语言,如C ++学习。

  • 流行 -JavaScript是无处不在网络上,并与Node.js的问世,在后端被越来越多地使用。有无数学习JavaScript的资源。StackOverflow和GitHub都显示出使用JavaScript的项目数量在不断增加,并且近年来它的吸引力预计只会增加。

  • 互操作性 -与PHP或其他脚本语言不同,可以将JavaScript插入任何网页。由于对其他语言(如Pearl和PHP)的支持,JavaScript可用于许多不同类型的应用程序中。

  • 服务器负载 -JavaScript是客户端,因此它降低了服务器的总体需求,以及简单的应用程序可能不需要在所有的服务器。

  • 丰富的接口 -可使用JavaScript来创建功能,如拖放和部件,如滑块,所有这些都大大提升网站的用户界面和体验。

  • 扩展功能 -开发人员可以通过为第三方插件(如Greasemonkey)编写JavaScript片段来扩展网页的功能。

  • 多功能性 -通过Node.js服务器使用JavaScript的方式有很多种。如果要使用Express引导Node.js,使用MongoDB之类的文档数据库,并在客户端的前端使用JavaScript,则可以仅使用JavaScript从头到尾开发整个JavaScript应用。

  • 更新 -自ECMAScript 5(JavaScript所依赖的脚本规范)问世以来,ECMA International一直致力于每年更新JavaScript。到目前为止,我们已经在2017年获得了对ES6的浏览器支持,并希望将来能够支持ES7。

JavaScript的缺点

  • 客户端安全性 -由于JavaScript代码是在客户端执行的,因此有时可能会出于恶意目的利用漏洞和疏忽。因此,有些人选择完全禁用JavaScript。

  • 浏览器支持 -尽管服务器端脚本始终会产生相同的输出,但不同的浏览器有时会以不同的方式解释JavaScript代码。如今,差异很小,只要您在所有主流浏览器中测试脚本,就不必担心。

ES6

ECMAScript的第六版称为ES6。

也称为ES2015。

这些更改增加了很多语法糖,使开发人员可以以面向对象的方式创建应用程序。

ES5示例:

var User = function () {
function User(name) {
this._name = name;
}

User.prototype.getName = function getName(x) {
return 'Mr./Mrs. ' + this._name;
};

return User;}();

ES6示例:

class User {
constructor(name) {
this._name = name}

getName() {
return `Mr./Mrs. ${this._name}`
}}

引入了许多新的语法功能,包括:

  • 模组

  • 模板化

  • for / of循环

  • 生成器表达式

  • 箭头功能

  • 馆藏

  • 诺言

如今,大多数功能都可以在所有流行的浏览器中使用。兼容性表包含的所有现代浏览器功能的可用性的所有信息。

通常,新功能会成为后续ES7的一部分。一种常见的方法是将现代JavaScript(ES6,ES7和其他实验性建议)转换为ES5。这确保了旧的浏览器也可以执行代码。Babel这样的工具可以将新的JavaScript转换为ES5。

除了来自ECMAScript标准的语法糖外,还有一些功能需要使用Polyfill通常它们是必需的,因为整个类/方法的实现已添加到标准中。

对象实例化

在JavaScript和大多数其他语言中,对象包含一系列属性,这些属性是键,值对。需要构造对象时,有多个可用选项。

初始化对象变量

您可以创建具有预定义属性的对象,如下所示:

let myObject = {
name: "Dave",
age: 33}

创建一个空对象

这将在myObject变量内创建一个空对象:

let myObject = new Object();

当您希望向对象添加属性时,只需使用点符号或方括号符号以及所选择的属性名称即可:

myObject.name = "Johnny Mnemonic"myObject["age"] = 55

使用构造函数

您可以定义可用于创建对象的构造函数:

function Kitten(name, cute, color) {
this.name = name,
this.cute = cute,
this.color = color}

您可以通过调用构造函数来定义一个包含该对象实例化的变量:

let myKitten = new Kitten("Nibbles", true, "white")

Object.create()

Object.create()方法(在ECMAScript 5.1中首先定义)允许您创建对象。它允许您为新对象选择原型对象,而无需事先定义构造函数。

// Our pre-defined objectlet kitten = {
name: "Fluff",
cute: true,
color: "gray"}// Create a new object using Object.create(). kitten is used as the prototypelet newKitten = Object.create(kitten)console.log(newKitten.name) // Will output "Fluff"