什么是JavaScript

JavaScript创建的目的:

创建的最初目的是使网页更加生动。

脚本

这种编程语言写出来的程序被称为脚本,可以直接写在网页的HTML中,网页加载时自动执行。脚本被以纯文本的形式提供和执行,不需要特殊的准备和编译即可运行。如今,JavaScript不仅

引擎

JavaScript不仅可以在浏览器中执行,也可以在服务端执行,甚至可以在任意搭载JavaScript引擎的设备中执行。JavaScript引擎也称JavaScript虚拟机。

不同的浏览器有不同的引擎

  • V8:Chrome、Opera、Edge
  • SpiderMonkey:FireFox
  • Chakra:IE

引擎是如何工作的

  1. 引擎读取脚本
  2. 引擎将脚本编译为机器码
  3. 机器码快速执行

浏览器中的JavaScript能做什么

现代JavaScript是一种安全的编程语言,它不提供对内存或CPU的底层访问,因为它最初是为浏览器而生,不需要这些功能。
JavaScript的能力很大程度上取决于它运行环境。例如,Node.js支持允许JavaScript读取或写入任意文件,执行网络请求函数。
浏览器的JavaScript可以做与网页操作、用户交互和web服务器相关的所有事情。
例如:
浏览器中JavaScript可以做下面这些事:

  1. 在网页中添加新的HTML,修改网页已有的内容和网页样式。
  2. 相应用户的行为,相应鼠标的点击,指针的移动,按键的按动。
  3. 向远程服务器发送网络请求,下载和上传文件(所谓的AJAX和COMET技术)。
  4. 获取和设置cookie,向访问者提出为问题或发送信息。
  5. 记住客户端的数据(本地存储)。

浏览器中的JavaScript不能做什么

为了用户的信息安全,在浏览器中的JavaScript的能力是受限的。目的就是防止恶意网页获取用户私人信息或损害用户数据。
此类受限包括以下:

  1. 网页中的JavaScript不能读、写、复制和执行硬盘上的任意文件。它没有直接访问操作系统的功能。
    现代浏览器允许JavaScript做一些文件的相关操作,但是这个操作是受到限制的。仅当用户做出特殊行为时,JavaScript才能操作这个文件。例如,用户把文件拖放到浏览器中,或者通过标签选择了文件。
    有很多与麦克风/相机和其他设备进行交互的方式,但是这些都需要获得用户的明确许可。因此,启动了JavaScript的网页应该不会偷偷地启动网络摄像头观察你,并把你的信息发送到美国国家安全局。
  2. 不同的标签页/窗口之间通常互不了解,有时候,也会有联系,例如一个标签页通过JavaScript打开的另外一个标签页。但即使在何种情况下,如果两个标签页打开的不是同一个网站(域名、协议或者端口任意不相同的网站),它们都不能互相通信。
    这就是所谓的同源策略。为了解决同源策略问题,两个标签页必须都包含一些处理这个问题的特定JavaScript代码,并均允许数据交换。本教程会讲到这部分相关的知识。
  3. JavaScript可以轻松的通过互联网与当前页面所在的服务器进行通信。但是从其他网站/域的服务器中接收数据的能力被削弱了。尽管可以,但需要来自远程服务器的明确协议(在HTTP header中)。这也是为了用户的信息安全。
    如果在浏览环境外(例如在服务器上)使用JavaScript,则不受此类限制。现代浏览器还允许安装可能会要求扩展权限的插件/扩展。
posted on 2022-11-14 22:03  骊歌233  阅读(40)  评论(0)    收藏  举报