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"