JavaScript介绍

原文见「语雀」:https://www.yuque.com/webfront/js/gy0s5r

为什么叫JavaScript?

一、JavaScript诞生的时候,名字叫“LiveScript”。但是因为当时Java很流行,所以决定将一种新语言定位为Java的“弟弟”会有助于它的流行。
二、随着JavaScript的发展,它已经成为了一门完全独立的语言,并且也拥有了自己的语言规范ECMAScript。现在,它和Java之间没有任何关系。

什么是JavaScript?

一、JavaScript是一门跨平台、面向对象的脚本语言,它能使网页可交互。另外还有高级的服务端JavaScript版本,例如node.js,它可以让你在网页上添加更多功能,不仅仅是下载文件(例如在多台电脑之间的协同合作)。
二、JavaScript的核心部分可以通过添加对象来扩展语言以适应不同用途:
1、客户端的JavaScript通过提供对象,控制浏览器及其文档对象模型(DOM),来扩展语言核心。
例如:客户端的拓展代码允许应用程序将元素放在某个HTML表单中,并且支持响应用户事件,如鼠标点击、表单提交和页面导航。
2、服务端的JavaScript则通过提供有关在服务器上运行JavaScript的对象来可扩展语言核心。
例如:服务端版本直接支持应用和数据库通信,提供应用不同调用间的信息连续性,或者在服务器上执行文件操作。

Javascript组成

一、浏览器端的JavaScript的实现包括以下3个部分:
1、核心(ECMAScript):描述了JS的语法和基本对象。
ECMA官网:欧洲计算机制造商协会制定的JavaScript标准。
TC39:技术委员会,是一个推动JavaScript发展的技术委员会。
(1)新提议会被加入到TC39:https://tc39.es/ecma262/的列表中,然后被加到ECMA:规范中
2、文档对象模型 (DOM):处理网页内容的方法和接口。
(1)W3C的标准:所有浏览器公共遵守的标准
3、浏览器对象模型(BOM):与浏览器交互的方法和接口。
(1)各个浏览器厂商根据DOM在各自浏览器上的实现。表现为不同浏览器定义有差别,实现方式不同。
浏览器中的 JavaScript
浏览器中的 JavaScript 能做什么?
一、浏览器中的 JavaScript 可以做与网页操作、用户交互和 Web 服务器相关的所有事情。
【示例】浏览器中的 JavaScript 可以做下面这些事:
在网页中添加新的 HTML,修改网页已有内容和网页的样式。
响应用户的行为,响应鼠标的点击,指针的移动,按键的按动。
向远程服务器发送网络请求,下载和上传文件(所谓的AJAX和COMET技术)。
获取或设置 cookie,向访问者提出问题或发送消息。
记住客户端的数据(“本地存储”)。
浏览器中的 JavaScript 不能做什么?
一、为了用户的(信息)安全,在浏览器中的 JavaScript 的能力是受限的。目的是防止恶意网页获取用户私人信息或损害用户数据。
二、此类限制的例子包括:
网页中的 JavaScript 不能读、写、复制和执行硬盘上的任意文件。它没有直接访问操作系统的功能。现代浏览器允许 JavaScript 做一些文件相关的操作,但是这个操作是受到限制的。
仅当用户做出特定的行为,JavaScript 才能操作这个文件。例如,用户把文件“拖放”到浏览器中,或者通过标签选择了文件。有很多与相机/麦克风和其它设备进行交互的方式,但是这些都需要获得用户的明确许可。因此,启用了 JavaScript 的网页应该不会偷偷地启动网络摄像头观察你,并把你的信息发送到美国国家安全局。
不同的标签页/窗口之间通常互不了解。有时候,也会有一些联系,例如一个标签页通过 JavaScript 打开的另外一个标签页。
但即使在这种情况下,如果两个标签页打开的不是同一个网站(域名、协议或者端口任一不相同的网站),它们都不能相互通信。这就是所谓的“同源策略”。为了解决“同源策略”问题,两个标签页必须都包含一些处理这个问题的特定的 JavaScript 代码,并均允许数据交换。这个限制也是为了用户的信息安全。例如,用户打开的http://anysite.com网页必须不能访问http://gmail.com(另外一个标签页打开的网页)也不能从那里窃取信息。
JavaScript 可以轻松地通过互联网与当前页面所在的服务器进行通信。但是从其他网站/域的服务器中接收数据的能力被削弱了。
尽管可以,但是需要来自远程服务器的明确协议(在 HTTP header 中)。这也是为了用户的信息安全。
image.png
三、如果在浏览器环境外(例如在服务器上)使用 JavaScript,则不存在此类限制。现代浏览器还允许安装可能会要求扩展权限的插件/扩展。

是什么使得 JavaScript 与众不同?

一、至少有3件事值得一提:
与 HTML/CSS 完全集成。
简单的事,简单地完成。
被所有的主流浏览器支持,并且默认开启。
二、JavaScript 是将这三件事结合在一起的唯一的浏览器技术。
三、这就是为什么 JavaScript 与众不同。这也是为什么它是用于创建浏览器界面的使用最广泛的工具。
此外,JavaScript 还可用于创建服务器和移动端应用程序等。

JavaScript “上层”语言

一、不同的人想要不同的功能。JavaScript 的语法也不能满足所有人的需求。
1、这是正常的,因为每个人的项目和需求都不一样。
二、因此,最近出现了许多新语言,这些语言在浏览器中执行之前,都会被编译(转化)成 JavaScript。
三、现代化的工具使得编译速度非常快且透明,实际上允许开发者使用另一种语言编写代码并会将其“自动转换”为 JavaScript。
1、此类语言的示例有:
CoffeeScript:是 JavaScript 的一种语法糖。它引入了更加简短的语法,使我们可以编写更清晰简洁的代码。通常,Ruby 开发者喜欢它。
TypeScript:专注于添加“严格的数据类型”以简化开发,以更好地支持复杂系统的开发。由微软开发。
Flow:也添加了数据类型,但是以一种不同的方式。由 Facebook 开发。
Dart:是一门独立的语言。它拥有自己的引擎,该引擎可以在非浏览器环境中运行(例如手机应用),它也可以被编译成 JavaScript。由 Google 开发。
Brython:是一个 Python 的 JavaScript 编译器,可以在不使用 JavaScript 的情况下,以纯 Python 编写应用程序。
2、这样的语言还有很多。当然,即使我们在使用此类编译语言,我们也需要了解 JavaScript。因为了解 JavaScript 才能让我们真正明白我们在做什么。

兼容性表

一、展示对各种特性的当前支持情况的工具
https://kangax.github.io/compat-table : 对于原生JavaScirpt
一份列有语言功能以及引擎是否支持这些功能的表格。
https://caniuse.com:对于浏览器相关的函数
每个功能的支持表,例如,查看哪个引擎支持现代加密(cryptography)函数:http://caniuse.com/#feat=cryptography

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值