JavaScript宗旨是让网站活起来
优点
- 安全,因为它是基于浏览器引擎(V8, spiderMokey)运行的
- 与 HTML/CSS 完全集成。
- 简单的事情简单地完成。
- 所有主流浏览器都支持并默认启用。
功能
- 向页面添加新的 HTML,更改现有内容,修改样式。
- 对用户操作做出反应,在鼠标点击、指针移动、按键时运行,
注意这里是指用户在浏览器的操作,而不是触发系统的指令
- 通过网络向远程服务器发送请求,下载和上传文件(所谓的AJAX和COMET技术)。
- 获取和设置 cookie,向访问者提问,显示消息。
- 记住客户端的数据(“本地存储”)。
不能做什么
-
网页上的 JavaScript 可能无法读取/写入硬盘上的任意文件、复制它们或执行程序。它不能直接访问操作系统功能。
现代浏览器允许它处理文件,但访问受到限制,并且仅在用户执行某些操作时提供,例如将文件“拖放”到浏览器窗口或通过
<input>
标签选择它。有一些方法可以与相机/麦克风和其他设备进行交互,但它们需要用户的明确许可。因此,启用 JavaScript 的页面可能不会偷偷启用网络摄像头、观察周围环境并将信息发送给NSA。
-
不同的选项卡/窗口通常彼此不了解。有时他们会这样做,例如当一个窗口使用 JavaScript 打开另一个窗口时。但即使在这种情况下,如果一个页面的 JavaScript 来自不同的站点(来自不同的域、协议或端口),它们也可能无法访问另一个页面,
跨域的问题就来自这里
这称为“同源策略”。要解决这个问题,两个页面都必须同意数据交换并包含处理它的特殊 JavaScript 代码。我们将在本教程中介绍。
再次,此限制是为了用户的安全。用户打开的页面
http://anysite.com
不得使用 URL 访问另一个浏览器选项卡http://gmail.com
并从那里窃取信息。 -
JavaScript 可以
很容易地通过网络与当前页面所在的服务器进行通信
。但是它从其他站点/域接收数据的能力被削弱了。尽管可能,但它需要来自远程端的明确协议(以 HTTP 标头表示)。
如果JavaScript在浏览器之外使用,例如在服务器上,则不存在这样的限制。现代浏览器也允许插件/扩展请求扩展权限。
其他类似JavaScript的语言
- CoffeeScript是 JavaScript 的“语法糖”。它引入了更短的语法,使我们能够编写更清晰、更精确的代码。通常,Ruby 开发人员喜欢它。
- TypeScript专注于添加“严格的数据类型”以简化复杂系统的开发和支持。它是由微软开发的。
- Flow还添加了数据类型,但方式不同。由 Facebook 开发。
- Dart是一种独立的语言,它有自己的引擎,可以在非浏览器环境(如移动应用程序)中运行,但也可以转换为 JavaScript。由谷歌开发。
- Brython是一个 Python 到 JavaScript 的转译器,它可以在没有 JavaScript 的情况下用纯 Python 编写应用程序。
- Kotlin是一种现代、简洁且安全的编程语言,可以针对浏览器或 Node.js。
参考
本文由博客一文多发平台 OpenWrite 发布!