通过学习其他语言来学习JavaScript

 回顾我的编程生涯,有三种编程语言给我学习JavaScript打上了良好的基础(之所以这么说,是因为JavaScript的确有一些比较难学的地方):

创新互联公司成立于2013年,是专业互联网技术服务公司,拥有项目成都网站制作、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元丽江做网站,已为上家服务,为丽江各地企业和个人服务,联系电话:13518219792

Scheme: 在我进入大学信息专业的第一学期,我通过经典的“计算机程序的构造和解释”(免费在线阅读)一书学习了Scheme语言.当初,JavaScript从Scheme中学到了闭包.最近,受Racket(一种Scheme方言)的启发,ECMAScript 6中又增加了一种称之为private symbol的对象类型来实现“私有性(privacy)” .

Self: 随后,我还粗略的学习过基于原型的面向对象语言.期间看过一篇很有见地的论文:“不使用类来组织程序”.这篇论文通过描述一种称之为Self的语言(另一种在JavaScript发明时期影响了它的语言)讲到了下面这些知识点:"基于类的语言中存在有两种关系:谁是谁的实例(对象和类之间的关系)和谁是谁的子类(类和类之间的关系).基于原型的语言中只存在有一种关系:谁是谁的原型(对象和对象之间的关系).虽说如此,但在这两种不同的面向对象语言中,该如何组织自己的程序,还是很类似的".

Java: 通过学习Java,有三点可以影响到你对JavaScript的学习.首先是语法,因为在发明JavaScript的时候,JavaScript之父收到的命令就是“它的语法必须看起来像Java.第二点是,它能帮助你学会面向对象的编程,虽然有时候会觉的Java的语法有点死板.“Effective Java”(亚马逊购买链接)一书是一本很好的Java入门书籍.第三点,你还能知道一个好的IDE(Eclipse等)应该是什么样的,在这一方面,JavaScript仍然需要努力向前赶.

除了我所说的这三种语言,肯定还有一些其他的语言,能让你把一些在这些语言中学到的原理稍加修改(或者完全一样)就能应用到JavaScript的学习中.

译者注:很遗憾,我没有学过Scheme和Self,和大部分人一样,我也费了不少劲才算搞明白JavaScript中的闭包和原型.不过我接触过awk,Perl和Python,.这三门语言也对JavaScript产生了一定的影响.

awk的函数声明写法是这样的:

 
 
 
 
  1. function add(a,b){ 
  2.     return a+b 

你看见了,和JavaScript中函数声明的写法一模一样,因为function这个关键字就是来自awk的,证据是"Coders at Work"一书中Brendan Eich接受采访时说过的话:

One more positive influence, and this is kind of embarrassing, was awk. I mean, I was an old Unix hacker and Perl was out, but I was still using awk for various chores. And I could’ve called these first-class functions anything, but I called them “function” mainly because of awk. An eight-letter keyword—it’s kind of heavy, but there it is.

再来说Perl,JavaScript中的正则表达式语法是从Perl来的.各种数组方法push,pop,shift,unshift,splice,join,reverse,sort,都是来自于Perl中的同名函数.我在SpiderMonkey源码中搜索过"Perl",结果如下:

这些注释几乎都是Brendan Eich亲手写的.如果你熟悉Perl,在开始学习JavaScript的时候就不会对这些来源于Perl的方法和特性感到陌生.

那Python呢?在发明JavaScript的时候,Python才刚刚起步(1.2),目前的JavaScript貌似没有从Python中学到些什么,不过未来的JavaScript会,ECMAScript 6中的迭代器和生成器,yield表达式,数组(生成器)推导式,默认参数,剩余参数,解构,模块等等,都或多或少的学习了Python中的类似语法.如果你没接触过Python,学习这些东西会花费不少时间,相反,这些东西几乎没有什么学习成本.

有些人说:"学习编程语言要精通一门,学的多会导致全面平庸".嗯,前半句是对的,但后半句是错的.

网页名称:通过学习其他语言来学习JavaScript
浏览路径:http://www.hantingmc.com/qtweb/news0/258000.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联