JavaScript 无所不包——或者,为什么你应该关注 JavaScript

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书活动

目前, 星球 内第2个项目《仿小红书(微服务架构)》正在更新中。第1个项目:全栈前后端分离博客项目已经完结,演示地址:http://116.62.199.48/。采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 276 小节,累计 43w+ 字,讲解图:1917 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 1500+ 小伙伴加入,欢迎点击围观

这篇文章的灵感来自于我本周看到的关于企业中 JS 的所有评论。 10 年前我绝不会想到这一点,但现在 javascript 几乎无处不在。如果您还没有关注 javascript,这里有几个原因,以及您绝对不应该注销它的原因。

首先,我认为 javascript 无处不在的一个主要原因是 javascript 是平易近人的。初学者学习 javascript 相对容易,并且功能强大,足以让高级用户构建复杂可靠的系统。

第二,为什么要注意,javascript无处不在。

您现在可以使用 javascript 在几乎任何平台上进行开发:客户端应用程序、服务器端逻辑、嵌入式芯片/物联网设备、管理构建脚本和依赖项等等。

这并不意味着您将在每种情况下都使用完全相同的代码,而是您可以使用相同的技能组合——javascript 开发——来提供跨多种范例的解决方案。

客户端

javascript 可用于支持客户端应用程序/用户界面,以及众多平台和设备上的用户交互。

网络

当然 javascript 为网络提供动力,这是给定的。 javascript 是所有网络浏览器的主要脚本语言。我不会关注这么多 b/c 它已经众所周知。

移动的

javascript 还可用于为设备上本机安装的移动应用程序提供支持。

  1. apache cordova / phonegap – 您可以使用 phonegap 或 cordova 使用网络技术构建本机安装的应用程序。 phonegap 是 adobe 的 cordova 品牌发行版,但从开发人员的角度来看,它们基本上是同一回事。您的应用程序在移动设备上的 Web 视图中运行,并且您构建用户界面的方式与构建动态 Web 应用程序的方式相同。你的用户界面是用 html 实现的,用 css 设计的,所有的交互都是用 javascript 创建的。
  2. react native – javascript 驱动的 web 应用程序不仅仅必须在 web 视图中。 React Native 框架使开发人员能够使用 JavaScript 和声明式 UI 元素编写他们的应用程序,并生成在移动设备上运行的本机应用程序。逻辑在运行时由 javascript 解释,但用户与之交互的所有内容(所有 ui 元素)都是 100% 原生的,提供非常高质量的用户体验,现在它可用于 ios 和 android 应用程序。
  3. unity 3d – 您甚至可以开发丰富且身临其境的移动 3d 模拟或游戏体验,完全由使用 unity 3d 引擎的 javascript 提供支持。 **这些可以是网络、桌面或移动设备,但通常用于移动游戏。
  4. nativescript – 使用 javascript 构建跨平台原生 ios、android 和 windows 移动应用程序的框架。

桌面

是的,桌面应用程序并没有被排除在外。大多数桌面解决方案都属于类似于 apache cordova 的类别,其中最终结果是可以访问较低级别 api 的 web 视图,其内容是使用基于 web 的技术开发的。

  1. electron 来自 github 的 node.js + chromium 桌面应用程序容器
  2. app.js – 用于桌面应用程序容器的 node + chromium
  3. nw.js – 桌面应用程序容器的 node +chromium 的另一个框架
  4. cef ——chromium 嵌入式框架——一种将 chrome 浏览器的核心嵌入桌面应用程序的框架。

……还有更多……我知道微软有一个完全用 html/js 构建 Windows 应用程序的解决方案,还有更多我忘记的解决方案。

事实上,我最喜欢的一些桌面工具,如 slack atom vs code 实际上都是基于 web 技术并在 html/js 中实现的。哎呀,即使是 photoshop 也可以使用 生成器扩展 层编写脚本和扩展,或者在带有 设计空间的 html/js 中具有自定义用户界面。

服务器端

最明显的 是 node.js—— 一个基于 chrome 的 v8 javascript 引擎的 javascript 运行时——已经在服务器端开发和企业领域取得了巨大的进步。由 express.js loopback.io 等框架提供支持的 node.js 使使用 javascript 的服务器端开发和复杂的企业应用程序成为可能。

物联网

几乎所有不属于上述类别的东西都在这里。您可以完全使用 javascript 开发在 arduino、raspberry pi 或其他小型板上运行的无头应用程序,您可以 使用 javascript 管理物联网传感器的基础设施和信息流 ,您可以使用 javascript 为嵌入式系统编写片上程序,您可以控制机器人有了它,您甚至可以 使用 javascript 增强以媒体为中心的联网电视体验

就像我说的……它无处不在。

生态系统

这不仅仅是关于您可以在哪里为您的应用程序构建和运行 javascript。 javascript 拥有庞大而繁荣的开发者生态系统。

在活跃存储库总数和活跃推送/提交总数方面,javascript 是 github 上排名第一的最活跃语言。

来自 http://githut.info/ 的统计可视化

这里有一些统计数据显示了仅 node.js/npm.js 的增长和采用程度。

npm 统计数据

node.js 的采用量很大,而且还在增长。


这并不意味着 javascript 是最好的语言。这也不意味着您可以获取一段源代码并在可以想象的每个设备/上下文中运行它。

这意味着您可以使用您的 javascript 技能为几乎任何类型的设备/环境进行开发。它不会是一次编写,到处运行,而是用 react.js 团队的话来说: 一次学习,到处编写