由于最近重新梳理巩固JavaScript,对JavaScript的现状也尤为的感慨,JavaScript能够发展到今天并渗透进每个程序员的血液里面主要原因之一是,JavaScript非常易于接近。学习JavaScript,对于初学者而言,相对比较容易,对于高级用户而言,又非常强大,可以用它来构建复杂又可靠的系统。JavaScript已经变得无处不在。
客户端:
JavaScript可被用于支持客户端应用程序/用户界面,以及众多平台和设备的用户交互。
web:
当然,JavaScript支持web,这是肯定的。 JavaScript是所有web浏览器基本的脚本语言。
移动:
JavaScript也可用于支持安装到本地设备上的移动应用程序。
Apache Cordovn/ PhoneGap—— 你可以使用PhoneGap或Cordovn建立本地安装的web技术app。 PhoneGap是Adobe的Cordovn品牌分支,但是从开发者的角度来看,它们基本上是相同的。运行在移动设备上的应用程序会带有一个web视 图,用构建动态web应用程序相同的方式建立用户界面。用户界面虽然是用HTML以及CSS样式实现的,但是所有的交互都是用JavaScript创建 的。
React Native —— 得到JavaScript支持的web应用程序不仅可以内置web视图。React Native框架还允许开发人员使用JavaScript和声明式的UI元素编写他们的应用程序,并生成一个可以在移动设备上运行的本地应用程序。在运行 时,逻辑被解释为JavaScript,但是所有(所有UI元素)与用户交互的东西,100%是本地的,这就提供了一个非常高品质的用户体验,而且现在还 可用于iOS和Android应用程序。
Unity 3D——使用Unity 3D引擎,哪怕全部由JavaScript支持,你也可以开发出丰富多彩又身临其境的移动3D模拟或游戏体验。
NativeScript——使用JavaScript的框架,可用于构建跨平台的本地iOS,Android和Windows移动应用程序。
桌面
桌面应用程序也没有被JavaScript排除在外。大多数桌面解决方案陷入了类似于Apache Cordovn的分类中,最终导致的结果是,web视图拥有的API层次较低,其内容开发基于web技术。
Electron——来自于GitHub的Node.js+Chromium桌面应用程序容器
app.js——Node+Chromium桌面应用程序容器
nw.js——另一个Node+Chromium桌面应用程序容器的框架
CEF——The Chromium Embedded Framework——嵌入Chrome浏览器内置于桌面应用程序的框架。
…等等。对了,我记得,微软对于如何纯粹地用HTML / JS构建Windows应用程序,已经有了一个解决方案,而且还有更多的解决方案,但现在我一下子记不起来了。
事实上,一些我最喜欢的桌面工具,如Slack、Atom和 VS Code实际上就是在web技术和HTML / JS的基础上实现的。
服务器端
最明显的是Node.js——封装了Chrome的V8 JavaScript引擎的JavaScript运行时——在服务器端开发和企业上已经取得了巨大的进步。 Node.js,受到express.js和loopback.io等框架的支持,使得用JavaScript开发服务器端和复杂的企业应用程序中变得可能。
物联网
你可以完全使用JavaScript来开发可运行在Arduino、树莓派或其它小平板上的无头app,你可以使用JavaScript管理基础设施和 物联网传感器信息流,你也可以使用JavaScript为嵌入式系统编写芯片程序,可以用它控制机器人,你甚至还可以使用JavaScript支持媒体中 心连接电视体验。
就像我说的……JavaScript无处不在。
生态系统
你不仅可以到处构建和运行JavaScript应用程序。 JavaScript还有一个庞大而繁荣的开发者生态系统。
你可以使用JavaScript技术,去开发几乎任意类型的设备/下上文。当然,它不能一次编写,就到处运行,用React.js团队的话就是: learn once, write everywhere。