Javascript 可以 做 什麼

javascript都可以做什么?下面本篇文章给大家介绍一下今日的 JavaScript 都能做什么?有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

Javascript 可以 做 什麼

脚本语言 JavaScript 自1995年问世以来已经走了很长一段路。虽然并不是人人都喜欢 JS,但这仍然没有阻止 JS 的用户与日俱增的趋势——目前在 StackOverflow 上,JavaScript 的使用量排名第一。JavaScript 被设计的初衷是在基于 HTML 和 CSS 构建的网站上提供交互功能,但时至今日,JavaScript 能办到几乎所有计算机上能执行的任务——虽然什么时候都用 JS 并不一定是个好主意。下面我们来看看当今最适合使用 JavaScript 的现实用例。

Web 开发

Javascript 可以 做 什麼

惊喜又意外:你能用 JavaScript 来构建网站。近年来,使用 React,Angular 或 Vue.js 构建的单页应用程序已逐渐成为一种规范——它们正逐渐取代服务器端渲染的,包含 jQuery 交互组件的网站。

Web 开发环境常常因为过于多变而受到批评,所用到的框架生命周期也普遍很短。虽然对于某些框架来说确实是这样,但要用它以一概全是没有根据的。React 框架是2013年发布的,但现在比以往任何一年都显得更有生机;Angular 诞生已经3年,而它的前身 AngularJS 则是在2010年发布的;Vue.js在2014年发布,到今天也有5年时间。如果你不喜欢自己在某个项目中使用的框架,以后大可不必再用它。随着 web 组件被引入,JS 的高级构建工具让你可以轻松在不使用框架的情况下构建应用程序——这里可以参考 Polymer Prject。

你不仅能使用 JavaScript 构建成熟的 Web 应用程序,还能很好地用它生成静态网站。通过使用 Eleventy 之类的解决方案将框架带回到工程中。通过 Gatsby,Next.js,VuePress 和 Nuxt.js 你可以在享受 React 或 Vue.js 特性的前提下生成轻量级的静态页面。

桌面应用

桌面应用程序通常会使用 JavaScript 框架 Electron 构建。它通过将你的程序与 Chromium 浏览器以及 Node.js JavaScript 服务器打包,从而提供丰富的用户体验。可惜的是这种方法会让最小的软件包大小也有100MB左右。如果这对你来说太大,你可以去尝试一下 Vuido 或 Proton Native 解决方案——但这也大可不必!强大的互联网正在催生出一批渐进式的 Web 应用(PWA),它们可以从用户的桌面或主屏幕启动,并提供与原生应用程序类似的体验。通过现代 Web API,你可以发送推送通知,连接蓝牙设备或者创建离线体验。

移动应用开发

Javascript 可以 做 什麼

或许 PWA 还尚未能够满足你的需求,但你仍然可以用 JavaScript 来构建原生应用程序。像 NativeScript 和 React Native 这样的框架允许你使用 JavaScript 编写程序代码,同时提供原生的用户体验,让你可以使用平台提供的所有功能。这一点是通过在 iOS 或 Android 系统的 JavaScript 引擎中运行代码,然后在 JS 引擎与原生界面之间提供桥梁来实现的。

同时你可以考虑使用 React Native 或者将 NativeScript 和 Angular 或者 Vue.js 结合使用。两种方法都能让你在移动端和网页端共享代码,实现多平台上使用相同代码库同时交付。

服务器和 API

大多数应用都需要某种程度的后端,但这同样可以通过 JS 完成。使用 Node.js 你可以获得一个可构建服务器的,高度且可扩展的 JS 运行时。长久以来,Express 一直是服务器端渲染 Web 应用或 API 的首选框架。虽然目前它或许仍然是最流行的框架,但其它框架也在奋力追赶。Koa 是一个更轻量的继任者,而 hapi 框架则更加注重安全性。其它框架比如 Nest.js 则可以放在顶层以创建可靠的体系结构。

无论你是想设置 REST 还是 GraphQL API,打开 Web 套接字或是只想渲染一些 HTML —— JS 和 Node.js 都可以实现。

游戏开发

JS 究其本源就是面向 UI 的,因此通过 JS,HTML 和 CSS 就已经能写出简单的网页游戏。当游戏变得更复杂时,你可以会需要 HTML Canvas 来进行2D 渲染。此外还有一些专攻游戏开发的框架,比如 Phaser 和 PixiJS。但如果你对游戏画面重视度很高的话,可能会想要选择 Konva 框架。

如果你想开发3D 游戏那就走运了,网页浏览器拥有它们自己的3D 图形界面,叫做 WebGL。自己使用它可能会让人不知所措,这时候用上一个更高效的框架或许是更好的选择。Babylon.js 和 Three.js 在网页3D 相关领域家喻户晓的名字。如果想要一个更加专注于游戏开发的,可以选择 PlayCanvas,它同样提供一个基于浏览器的编辑器。除此之外,还有已经非常成熟的游戏引擎 Cocos2d.x,它绑定了 JavaScript,被用于开发跨平台游戏。

但等等,我们还有更多:WebXR 渲染引擎将基于 JS 开发的游戏带到了另一个高度,它让你可以接触到增强现实和虚拟现实设备。这就意味着你可以用 JS 开发出沉浸式体验的游戏!

机器学习

Javascript 可以 做 什麼

谁说机器学习一定要会 Python?JavaScript 就足够了!使用 TensorFlow.js,你就可以开发图像分类,语音识别或预测性分析的机器学习模型。最棒的是,你可以在 Node.js 里进行操作,也可以在浏览器里进行操作。机器学习是一项非常占用 GPU 的任务,但是它可以通过 WebGL 在浏览器中运行硬件加速。这样你可以运行一个完全存在于客户端的推荐系统,无需昂贵的服务器付费,同时还能缓解隐私问题

如果不太喜欢 TensorFlow,那么你可以试试用 brain.js 来训练神经网络或者自带多种不同机器学习算法的 ml.js,二者都运行在浏览器中训练和运行算法。

物联网 IoT

Javascript 可以 做 什麼

价格低廉的硬件越来越常见,这也让你更容易地进入微控制器的世界。虽然通常构建智能系统都需要你掌握 C 或 C++ 之类的语言,但再一次地,JavaScript 其实也能做到。

Johnny-Five 平台为各种 Arduino 开发板提供了一个易用的 API。如果你对机器人更感兴趣,不妨试试 Cylon.js。这两者的工作方式都是将 JavaScript 翻译为设备能理解的东西。但不可避免的是这也会带来一些限制:要部署控制器,你必须要有另外一台机器在附近某处运行着 Node.js。

但这对 JerryScript 而言就不会形成阻碍。JerryScript 是一种微控制器的指定 JavaScript 运行时,它仅需要64kb的 RAM。不过需要注意的是,根据具体的用例您可能仍然会需要不同的工具作为补充。物联网对 JS 来说或许是一个偏向实验的应用领域——不过它通过使用 MQTT 也能获得以小博大的效果。

总结

如我们所见,今日的 JavaScript 在庞大的社区和扎实的项目基础上,已经涵盖了大量不同的用例,这是件很了不起的事,因为对于已经掌握 JS 的你来说,这些用例已经为你打开了多扇大门,让你可以充分发挥自己的创造性。

更多web前端知识,请查阅 HTML中文网 !!

以上就是javascript都可以做什么?的详细内容,更多请关注html中文网其它相关文章!

让我们来看看 JavaScript 有什么特别之处,我们可以用它实现什么,以及哪些其他技术可以与其搭配产生奇妙的效果。

什么是 JavaScript?

JavaScript 最初被创建的目的是“使网页更生动”。

这种编程语言写出来的程序被称为 脚本。它们可以被直接写在网页的 HTML 中,在页面加载的时候自动执行。

脚本被以纯文本的形式提供和执行。它们不需要特殊的准备或编译即可运行。

这方面,JavaScript 和 Java 有很大的区别。

为什么叫 JavaScript?

JavaScript 在刚诞生的时候,它的名字叫 “LiveScript”。但是因为当时 Java 很流行,所以决定将一种新语言定位为 Java 的“弟弟”会有助于它的流行。

随着 JavaScript 的发展,它已经成为了一门完全独立的语言,并且也拥有了自己的语言规范 ECMAScript。现在,它和 Java 之间没有任何关系。

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

浏览器中嵌入了 JavaScript 引擎,有时也称作“JavaScript 虚拟机”。

不同的引擎有不同的“代号”,例如:

  • V8 —— Chrome、Opera 和 Edge 中的 JavaScript 引擎。
  • SpiderMonkey —— Firefox 中的 JavaScript 引擎。
  • ……还有其他一些代号,像 “Chakra” 用于 IE,“JavaScriptCore”、“Nitro” 和 “SquirrelFish” 用于 Safari,等等。

上面这些术语很容易记住,因为它们经常出现在开发者的文章中。我们也会用到这些术语。例如,如果“V8 支持某个功能”,那么我们可以认为这个功能大概能在 Chrome、Opera 和 Edge 中正常运行。

引擎是如何工作的?

引擎很复杂,但是基本原理很简单。

  1. 引擎(如果是浏览器,则引擎被嵌入在其中)读取(“解析”)脚本。
  2. 然后,引擎将脚本转化(“编译”)为机器语言。
  3. 然后,机器代码快速地执行。

引擎会对流程中的每个阶段都进行优化。它甚至可以在编译的脚本运行时监视它,分析流经该脚本的数据,并根据获得的信息进一步优化机器代码。

浏览器中的 JavaScript 能做什么?

现代的 JavaScript 是一种“安全的”编程语言。它不提供对内存或 CPU 的底层访问,因为它最初是为浏览器创建的,不需要这些功能。

JavaScript 的能力很大程度上取决于它运行的环境。例如,Node.js 支持允许 JavaScript 读取/写入任意文件,执行网络请求等的函数。

浏览器中的 JavaScript 可以做与网页操作、用户交互和 Web 服务器相关的所有事情。

例如,浏览器中的 JavaScript 可以做下面这些事:

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

浏览器中的 JavaScript 不能做什么?

为了用户的(信息)安全,在浏览器中的 JavaScript 的能力是受限的。目的是防止恶意网页获取用户私人信息或损害用户数据。

此类限制的例子包括:

  • 网页中的 JavaScript 不能读、写、复制和执行硬盘上的任意文件。它没有直接访问操作系统的功能。

    现代浏览器允许 JavaScript 做一些文件相关的操作,但是这个操作是受到限制的。仅当用户做出特定的行为,JavaScript 才能操作这个文件。例如,用户把文件“拖放”到浏览器中,或者通过 <input> 标签选择了文件。

    有很多与相机/麦克风和其它设备进行交互的方式,但是这些都需要获得用户的明确许可。因此,启用了 JavaScript 的网页应该不会偷偷地启动网络摄像头观察你,并把你的信息发送到 美国国家安全局。

  • 不同的标签页/窗口之间通常互不了解。有时候,也会有一些联系,例如一个标签页通过 JavaScript 打开的另外一个标签页。但即使在这种情况下,如果两个标签页打开的不是同一个网站(域名、协议或者端口任一不相同的网站),它们都不能相互通信。

    这就是所谓的“同源策略”。为了解决“同源策略”问题,两个标签页必须 包含一些处理这个问题的特定的 JavaScript 代码,并均允许数据交换。本教程会讲到这部分相关的知识。

    这个限制也是为了用户的信息安全。例如,用户打开的 http://anysite.com 网页必须不能访问 http://gmail.com(另外一个标签页打开的网页)也不能从那里窃取信息。

  • JavaScript 可以轻松地通过互联网与当前页面所在的服务器进行通信。但是从其他网站/域的服务器中接收数据的能力被削弱了。尽管可以,但是需要来自远程服务器的明确协议(在 HTTP header 中)。这也是为了用户的信息安全。

如果在浏览器环境外(例如在服务器上)使用 JavaScript,则不存在此类限制。现代浏览器还允许安装可能会要求扩展权限的插件/扩展。

是什么使得 JavaScript 与众不同?

至少有 3 件事值得一提:

  • 与 HTML/CSS 完全集成。
  • 简单的事,简单地完成。
  • 被所有的主流浏览器支持,并且默认开启。

JavaScript 是将这三件事结合在一起的唯一的浏览器技术。

这就是为什么 JavaScript 与众不同。这也是为什么它是用于创建浏览器界面的使用最广泛的工具。

此外,JavaScript 还可用于创建服务器和移动端应用程序等。

JavaScript “上层”语言

不同的人想要不同的功能。JavaScript 的语法也不能满足所有人的需求。

这是正常的,因为每个人的项目和需求都不一样。

因此,最近出现了许多新语言,这些语言在浏览器中执行之前,都会被 编译(转化)成 JavaScript。

现代化的工具使得编译速度非常快且透明,实际上允许开发者使用另一种语言编写代码并会将其“自动转换”为 JavaScript。

此类语言的示例有:

  • CoffeeScript 是 JavaScript 的一种语法糖。它引入了更加简短的语法,使我们可以编写更清晰简洁的代码。通常,Ruby 开发者喜欢它。
  • TypeScript 专注于添加“严格的数据类型”以简化开发,以更好地支持复杂系统的开发。由微软开发。
  • Flow 也添加了数据类型,但是以一种不同的方式。由 Facebook 开发。
  • Dart 是一门独立的语言。它拥有自己的引擎,该引擎可以在非浏览器环境中运行(例如手机应用),它也可以被编译成 JavaScript。由 Google 开发。
  • Brython 是一个 Python 到 JavaScript 的转译器,让我们可以在不使用 JavaScript 的情况下,以纯 Python 编写应用程序。
  • Kotlin 是一个现代、简洁且安全的编程语言,编写出的应用程序可以在浏览器和 Node 环境中运行。

这样的语言还有很多。当然,即使我们在使用此类编译语言,我们也需要了解 JavaScript。因为了解 JavaScript 才能让我们真正明白我们在做什么。

Mock 工具

一个好用的开源接口 Mock 工具:https://github.com/eolinker/eoapi

除了 Mock 功能,还集合了 API 管理和测试功能,还可以通过插件广场帮助你将 API 发布到各个应用平台,比如发布到网关上完成 API 上线,或者和低代码平台结合,将 API 快速变成低代码平台中可使用的组件等。

总结

  • JavaScript 最开始是专门为浏览器设计的一门语言,但是现在也被用于很多其他的环境。
  • JavaScript 作为被应用最广泛的浏览器语言,且与 HTML/CSS 完全集成,具有独特的地位。
  • 有很多其他的语言可以被“编译”成 JavaScript,这些语言还提供了更多的功能。建议最好了解一下这些语言,至少在掌握了 JavaScript 之后大致的了解一下。

JavaScript 能够做什么?

JavaScript 是一种脚本,一门编程语言,它可以在网页上实现复杂的功能,网页展现给你的不再是简单的静态信息,而是实时的内容更新,交互式的地图,2D/3D 动画,滚动播放的视频等等。

JavaScript和Java有什么区别?

JavaJavaScript 之间的主要区别Java 是一种OOP 编程语言,而Java Script 是一种OOP 脚本语言。 Java 创建在虚拟机或浏览器中运行的应用程序,而JavaScript 代码仅在浏览器中运行。 Java 代码需要进行编译,而JavaScript 代码都在文本中。

JavaScript用在什么地方?

JavaScript是一种属于网络的脚本语言,已经被广泛于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。 通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。 Javascript 的老本行。

JS 是用什么语言写的?

没错,就是JavaScriptJS 是一种在其引擎中运行的语言,最流行的引擎V8,这个引擎是用C++编写的。