|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2019-1-21 17:10 编辑
在开始前,请鱼油仔细看完上面的Gif,JS 其实比这个还厉害...
2年前发过一篇帖子:JavaScript是未来编程语言界的王者?
2 年后的此刻,随着技术的日渐提升,又有了新的感悟(吹水) 。
相信现在正在学习《零基础入门学习Web开发》(HTML5 & CSS3)系列的鱼油都知道小甲鱼老师很快会讲 JavaScript 篇。
(PS:现在没有学的,也已经知道了)
JavaScript 因为互联网而生,紧随着浏览器的出现而问世。
好不夸张的讲,有互联网的地方就会有 JavaScript。
JS 的创建者:Brendan Eich
关于祖师爷创建 JS 的历史(野史),有兴趣的鱼油参看:JavaScript'快速的爱情小孩' | 【quickie love-child 】
再稍微吹水一下:
好了,说了这么多,JS 的魔力在哪里呢?
1、数据可视化
数据可视化是当下大家所推崇的一种互动展示模式。
Javascript 拥有 ECharts、Dygraphs.js、D3.js、InfoVis、Springy.js等多种可实现数据可视化效果的框架。
年底升职加薪,小组汇报低调而又突出,全靠这些开源库。
最重要简单易上手,数据按照框架要求灌入,帅气的呈现,绝对诚意满满。
2、移动端应用
从技术上来看,iOS,Android 和 Windows Phone 上的移动应用是使用不同的程序语言开发的。
iOS 应用使用 Objective-C,Android 应用使用 Java,而 Windows Phone 应用使用 .NET. 。
随着 JavaScript,CSS 和 HTML 知识技能的提升,也可以构建一个超赞的移动应用。
PhoneGap 将 WebView 带向了移动应用,同时也将 JavaScript 带向了移动应用。
jQuery Mobile 框架将“写得更少,做得更多”作为下一个版本的理念。
这是最顶尖的移动端 JavaScript 框架之一,可用于创建应用或在移动设备上界面友好的网站。
jQuery Mobile 提供了大量的用户接口来支持对现代平台的兼容,如 Android、iOS,甚至很早的 Opera Mini、诺基亚塞班等平台。
可以将 jQuery Web 应用整合在 PhoneGap 中,使之成为可交互的 iOS 或 Android 应用。
目前还有很多框架可供选择:Titanium、Ext JS、Ionic、React Native等等
3、服务端
因为 V8 的性能将 JavaScript 带到了一个新的高度,于是 Node.js 诞生了。
这就意味着:前端、后台都可以用 JavaScript 来实现。
基于 Node.js 框架也衍生出了很多框架:Sail.js、Hapi.js...等等。
有必要给大家科普一下,Node.js 的创始人 Ryan Dahl 2009年选用 JavaScript 的原因。
(PS:可略过)
也从侧面证实 JavaScript 的过人之处。
在当年,Ryan Dahl 还是一名资深的 C/C++ 程序员,在创造出Node之前,他的主要工作都是围绕高性能Web服务器进行的。
Chrome 在2008年12月发布了,还有就是 V8 JavaScript 解释器,不应该说解释器,应该是实时编译运行。
他开始上手使用 V8,经历过一些尝试和失败之后,他找到了设计高性能,Web服务器的几个要点:
所以 Ryan Dahl 最初的目标是:
写一个基于事件驱动、非阻塞I/O的Web服务器,以达到更高的性能,提供Apache等服务器之外的选择。
大多数人不设计一种更简单和更有效率的程序的主要原因是他们用到了阻塞I/O的库。
写作 Node 的时候,Ryan Dahl 曾经评估过C、Lua、Haskell、Ruby等语言作为备选实现。
结论为:
C 的开发门槛高,可以预见不会有太多的开发者能将它用于日常的业务开发,所以舍弃它;
Ryan Dahl觉得自己还不足够玩转 Haskell,所以舍弃它;
Lua 自身已经含有很多阻塞I/O库,为其构建非阻塞I/O库也不能改变人们继续使用阻塞I/O库的习惯,所以也舍弃它;
Ruby 的虚拟机由于性能不好而落选。
相比之下,JavaScript 比 C 的开发门槛要低,比 Lua 的历史包袱要少。
尽管服务器端 JavaScript 存在已经很多年了,但是后端部分一直没有市场。
可以说是几乎为0,为其导入非阻塞I/O库没有额外阻力。
(没有前辈大牛的成熟经验阻挡。)
另外,JavaScript 在浏览器中有广泛的事件驱动方面的应用,暗合Ryan Dahl喜好基于事件驱动的需求。
当时,第二次浏览器大战也渐渐分出高下,Chrome浏览器的 V8 引擎摘得性能第一的桂冠。
考虑到高性能、符合事件驱动、没有历史包袱这3个主要原因,JavaScript 成为了 Node.js 的实现语言。
4、全平台应用
一份代码构建移动、桌面、不同操作系统的应用。
Web 能够全平台应用,在 Eletcron 上运行 Ionic,就意味着无限的可能性。
Vue 全家桶 + Electron ,真的可以通杀全部平台。
不仅全平台兼容,而且还可以创造操作系统!
NodeOS 了解一下,虽然它是用 Linux 内核来处理各种底层任务。
比如硬件通讯什么的,但是除此之外,使用的都是 Node.js。
5、游戏
Flash 已经退出历史舞台,JS 不仅可以独挑大梁而且更胜于蓝。
在Web特效宝典 发过几个小案例:打飞机,过马路,贪吃蛇...
有兴趣的鱼油可以下载去玩一玩。
由网易开发的基于 Node.js 开发的高性能、分布式游戏服务器框架 Pomelo, 也可作为高实时 Web 应用框架。
开源跨平台游戏开发框架 Cocos2d-x,它是全球知名的开源跨平台游戏引擎,易学易用。
目前已经支持 iOS、Android、Windows 桌面、Mac OS X、Linux、BlackBerry、Windows Phone 等平台。
Cocos2d-JS 统一了使用 JS 进行开发的开发体验,将 HTML5 引擎与 JSB 的 API 高度统一起来。
利用3D 游戏引擎,如 Three.js,也可以来创建一个 3D 世界。
上面的过马路游戏(传送门)便是基于 Three.js 打造滴。
6、硬件
Tessel 可以直接在设备上运行 JavaScript,连服务器都不需要。
Tessel 是一个针对软件开发者的可连接网络的微控制器。
然后像做网络开发一样通过用 IDE 和库去开发它,上传新的固件只需一句tessel 推送指令。
目前是物联网的时代,意味着:“万物互联”。
因此 Tessel 附带了内置的 Wifi,可从任何地方推送代码。
如果喜欢,别忘了评分 :
这位鱼油,如果喜欢本系列Js帖子,请订阅 专辑☞( 传送门)( 不喜欢更要订阅 )
|
|