javascript的发展

昨天和同事聊天,学习到了很多东西,对我的帮助很大,这种分享精神太赞了!现做整理如下。

关于JS的发展与前景:

1、在中国开发者的观念中,JS难当大任。首先,JS是脚本语言,这个定义决定了它难挑大梁,而且JS是附属于html的脚本,受限于浏览器,局限太大。所以这也是为什么会写的人一大把,高手却不多。

2、V8的出现,打破了这个局限。V8是由丹麦Google开发的开源Javascript引擎,使用 C++ 代码编写,实现了 ECMAScript 规范的第五版-ECMA-262,可以运行在所有主流的操作系统(Windows (XP or newer), Mac OS X (10.5 or newer), and Linux systems )中,甚至可以运行在移动终端 ( 基于 ARM 的处理器,如 HTC G7 等 )。相关介绍和源码见https://code.google.com/p/v8/。V8最早是嵌入到Google的浏览器Chrome中,之后随着nodejs火起来,JS被应用到服务器端,这样一来,JS的地位和java、php 有一争了。

3、2013年Google的IO大会发布的新技术就已经将JS的地位提高了很多。chromium是Google的一个开源的浏览器项目,支持PC端( Windows, OS X, Linux)和移动端(android、ios),JS就是默认的开发语言。

4、新版IOS直接支持JS调本地渲染引擎,这样在IOS上就可以用JS直接开发app了,甚至连webview都不需要。

参考文章

1、javascript统一世界? http://my.oschina.net/luyongfugx/blog/393009  (JS运用在浏览器、服务器、桌面软件、移动应用方面)

2、使用 Google V8 引擎开发可定制的应用程序  http://www.oschina.net/question/129540_48950

3、开源C++项目Google JavaScript引擎V8挑战实录,带你进入V8之旅   http://www.oschina.net/question/565065_57104

如何增强自己的技术能力:

1、技术的深度:选择了它就要把它搞精,这个技术中间层次的人很多,但精通就比较缺了,技术这种的东西,你要能耐得主寂寞,就瞅准一个方向,做到顶尖。

2、技术的广度:大部分人都做不到,这时就多掌握一些技术,哪怕没有深度,也要有广度,总得占一头。

3、实战:技术是在实战中锻炼出来的,好的项目很重要,认真做几个好的项目,技术一下会提升很多,对于一个好的项目,参与的时机就比较重要,通俗来讲越早越好,跟着项目成长,更能锻炼人,但是太早,还处于摸索期,比较考验人的耐心,很多人经受不了那种迷茫。自己独立思考,独立设计,独立开发,这个过程很重要。想学习JS,可以使用最新出的NativeScript或者Cordova自己设计做一个app,做好了可以放到app store里,既能锻炼js又能了解android和ios,还能了解app的运作,用这些工具开发周期比较短,一般的应用水平高的人一两个月就能出来初版,NativeScript现在只支持IOS,要支持Android估计要到10月左右了,Cordova是开源的,可以从github上找到,上面有例子,一般正规的开源项目都有开发手册和例子可以参考,先把例子跑一遍。

4、高人指点:多和技术比较有建树的人聊聊,每个人成长的经历不同,技术领域最不乏高人,凡是高人,必有自己独到的一套,在任何领域,高人的带领可以让你少走很多弯路,即使你以后不做这个,这个规律也是适合的,多和那个领域的高人交流,记得是高人。

时间: 2024-08-01 22:17:52

javascript的发展的相关文章

为什么说Babel[?be?bl]将推动JavaScript的发展

Babel是一个转换编译器,它能将ES6转换成可以在浏览器中运行的代码.Babel由来自澳大利亚的开发者Sebastian McKenzie创建.他的目标是使Babel可以处理ES6的所有新语法,并为它内置了React JSX扩展及Flow类型注解支持.据codemix创始人Charles Pick介绍,Babel是所有ES6转换编译器中与ES6规范兼容度最高的,甚至超过了谷歌创建已久的Traceur编译器.Babel允许开发者使用ES6的所有新特性,而且不会影响与老版本浏览器的兼容性.此外,它

为什么说Babel将推动JavaScript的发展

Babel是一个转换编译器,它能将ES6转换成可以在浏览器中运行的代码.Babel由来自澳大利亚的开发者Sebastian McKenzie创建.他的目标是使Babel可以处理ES6的所有新语法,并为它内置了React JSX扩展及Flow类型注解支持. 据codemix创始人Charles Pick介绍,Babel是所有ES6转换编译器中与ES6规范兼容度最高的,甚至超过了谷歌创建已久的Traceur编译器.Babel允许开发者使用ES6的所有新特性,而且不会影响与老版本浏览器的兼容性.此外,

为什么说 Babel 将推动 JavaScript 的发展【转】

Babel是一个转换编译器,它能将 ES6 转换成可以在浏览器中运行的代码.Babel 由来自澳大利亚的开发者Sebastian McKenzie创建.他的目标是使 Babel 可以处理 ES6 的所有新语法,并为它内置了React JSX 扩展及Flow类型注解支持. 据codemix创始人Charles Pick介绍,Babel 是所有 ES6 转换编译器中与 ES6 规范兼容度最高的,甚至超过了谷歌创建已久的Traceur编译器.Babel 允许开发者使用 ES6 的所有新特性,而且不会影

javascript创建对象的几种模式

虽然Object构造函数或者对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象会产生大量的重复代码.为了解决这个问题,人们开始使用工厂模式的一种变体. 1.工厂模式 function createPerson(name, age, job){ var o=new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){ alert(this.name); }; retu

为什么Javascript有设计缺陷

1. 设计阶段过于仓促 Javascript的设计,其实只用了十天.而且,设计师是为了向公司交差,本人并不愿意这样设计(参见<Javascript诞生记>). 另一方面,这种语言的设计初衷,是为了解决一些简单的网页互动(比如,检查"用户名"是否填写),并没有考虑复杂应用的需要.设计者做梦也想不到,Javascript将来可以写出像Gmail这种极其庞大复杂的网页. 2. 没有先例 Javascript同时结合了函数式编程和面向对象编程的特点,这很可能是历史上的第一例.而且直

JavaScript基础之创建对象的方法

ECMA-262把对象定义为:"无序属性的集合,其属性可以包含基本值.对象或者函数."严格来讲,这就相当于说对象是一组没有特定顺序的值.对象的每个属性或者方法都有一个名字,而每个名字都映射到一个值.正因为这样,我们可以把ECMAScript的对象想像成散列表:无非就是一组名值对,其中值可以是数据或函数. 创建对象的方式多种多样,理解和掌握每种创建对象的方法对于学会JavaScript这门语言是十分重要的. 一.使用Object构造函数 var person = new Object()

2017最好的JavaScript框架、库和工具 — SitePoint

与开发者数量相比,可能有更多的JavaScript框架.库和工具.截止到2017年5月,在GitHub上快速搜索能搜到超过110万的JavaScript项目. 在npmjs上有50万的可用包,并且这些包每个月的下载量将近100亿次. 2017.05.29: 更新了本文,旨在能正确的描述当前JavaScript生态的状态. 本文着重讲述目前最流行的客户端JavaScript框架.库和工具之间的基本差异和他们的基本介绍.至于是不是你要寻找的最佳实践那是另外一个问题.你可以选择一个,并坚持使用一段时间

JavaScript 对象的创建

Object类型是JavaScript中使用最多的一种类型.创建Object实例的方式有多种,接下来一一列举. 1. Object构造函数 var person = new Object();person.name = "Brittany";person.age = 23;person.job = "web front-end engineer";person.sayName = function() {    console.log(this.name);};pe

JavaScript高级编程:JavaScript 的历史

为了发挥 JavaScript 的全部潜力,了解它的本质.历史及局限性是十分重要的. 本节为您讲解 JavaScript 和客户端脚本的起源. Nombas 和 ScriptEase 大概在 1992 年,一家称作 Nombas 的公司开发了一种叫做 C 减减(C-minus-minus,简称 Cmm)的嵌入式脚本语言.Cmm 背后的理念很简单:一个足够强大可以替代宏操作(macro)的脚本语言,同时保持与 C (和 C ++)足够的相似性,以便开发人员能很快学会.这个脚本语言捆绑在一个叫做 C