成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通過學習其他語言來學習JavaScript

開發(fā) 開發(fā)工具
很遺憾,我沒有學過Scheme和Self,和大部分人一樣,我也費了不少勁才算搞明白JavaScript中的閉包和原型.不過我接觸過awk,Perl和Python,.這三門語言也對JavaScript產(chǎn)生了一定的影響.

 回顧我的編程生涯,有三種編程語言給我學習JavaScript打上了良好的基礎(之所以這么說,是因為JavaScript的確有一些比較難學的地方):

Scheme: 在我進入大學信息專業(yè)的第一學期,我通過經(jīng)典的“計算機程序的構(gòu)造和解釋”(免費在線閱讀)一書學習了Scheme語言.當初,JavaScript從Scheme中學到了閉包.最近,受Racket(一種Scheme方言)的啟發(fā),ECMAScript 6中又增加了一種稱之為private symbol的對象類型來實現(xiàn)“私有性(privacy)” .

Self: 隨后,我還粗略的學習過基于原型的面向?qū)ο笳Z言.期間看過一篇很有見地的論文:“不使用類來組織程序”.這篇論文通過描述一種稱之為Self的語言(另一種在JavaScript發(fā)明時期影響了它的語言)講到了下面這些知識點:"基于類的語言中存在有兩種關系:誰是誰的實例(對象和類之間的關系)和誰是誰的子類(類和類之間的關系).基于原型的語言中只存在有一種關系:誰是誰的原型(對象和對象之間的關系).雖說如此,但在這兩種不同的面向?qū)ο笳Z言中,該如何組織自己的程序,還是很類似的".

Java: 通過學習Java,有三點可以影響到你對JavaScript的學習.首先是語法,因為在發(fā)明JavaScript的時候,JavaScript之父收到的命令就是“它的語法必須看起來像Java.第二點是,它能幫助你學會面向?qū)ο蟮木幊?雖然有時候會覺的Java的語法有點死板.“Effective Java”(亞馬遜購買鏈接)一書是一本很好的Java入門書籍.第三點,你還能知道一個好的IDE(Eclipse等)應該是什么樣的,在這一方面,JavaScript仍然需要努力向前趕.

除了我所說的這三種語言,肯定還有一些其他的語言,能讓你把一些在這些語言中學到的原理稍加修改(或者完全一樣)就能應用到JavaScript的學習中.

譯者注:很遺憾,我沒有學過Scheme和Self,和大部分人一樣,我也費了不少勁才算搞明白JavaScript中的閉包和原型.不過我接觸過awk,Perl和Python,.這三門語言也對JavaScript產(chǎn)生了一定的影響.

awk的函數(shù)聲明寫法是這樣的:

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

你看見了,和JavaScript中函數(shù)聲明的寫法一模一樣,因為function這個關鍵字就是來自awk的,證據(jù)是"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來的.各種數(shù)組方法push,pop,shift,unshift,splice,join,reverse,sort,都是來自于Perl中的同名函數(shù).我在SpiderMonkey源碼中搜索過"Perl",結(jié)果如下:

這些注釋幾乎都是Brendan Eich親手寫的.如果你熟悉Perl,在開始學習JavaScript的時候就不會對這些來源于Perl的方法和特性感到陌生.

那Python呢?在發(fā)明JavaScript的時候,Python才剛剛起步(1.2),目前的JavaScript貌似沒有從Python中學到些什么,不過未來的JavaScript會,ECMAScript 6中的迭代器和生成器,yield表達式,數(shù)組(生成器)推導式,默認參數(shù),剩余參數(shù),解構(gòu),模塊等等,都或多或少的學習了Python中的類似語法.如果你沒接觸過Python,學習這些東西會花費不少時間,相反,這些東西幾乎沒有什么學習成本.

有些人說:"學習編程語言要精通一門,學的多會導致全面平庸".嗯,前半句是對的,但后半句是錯的.

原文鏈接:http://www.cnblogs.com/ziyunfei/archive/2013/02/06/2907681.html

英文原文:http://www.2ality.com/2013/02/learn-javascript.html

 

 

責任編輯:張偉 來源: 博客園
相關推薦

2009-12-28 11:08:34

ADO 實例

2019-09-11 14:16:34

編程語言技術人生第一份工作

2021-03-08 21:46:00

大數(shù)據(jù)互聯(lián)網(wǎng)工程師

2022-08-18 11:36:16

可視化JavaScript事件循環(huán)

2024-04-29 14:54:36

機器學習過擬合模型人工智能

2010-03-11 15:16:52

Python編程語言

2012-09-24 11:45:28

IBMdw

2010-05-19 19:30:47

2015-07-13 11:36:26

JavaavaScriptGroovy

2022-03-30 14:00:49

人工智能災害機器

2023-12-18 08:00:42

JavaScrip框架Lit

2010-07-28 14:28:57

Flex國際化

2023-11-07 15:53:16

人工智能關鍵詞

2017-01-11 17:38:31

AndroidAndroid坐標Button移動

2022-10-29 19:58:09

Base64Bashshell

2025-01-03 10:30:00

2023-01-13 18:55:09

游戲Ada編程語言

2009-06-10 21:48:03

滾動圖片Javascript特

2017-08-28 16:01:59

前端JavaScript學習途徑

2021-01-14 08:55:20

C語言編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产综合久久精品 | 中文字幕av网址 | 国产中文 | 国产999精品久久久 日本视频一区二区三区 | 麻豆久久精品 | 91精品一区二区三区久久久久久 | 午夜不卡一区二区 | 欧美亚洲日本 | 美女天天操 | 暖暖日本在线视频 | 久久精品国产免费 | 天堂一区| 久久av一区二区三区 | 日韩久久成人 | 国产精品国产馆在线真实露脸 | 自拍偷拍一区二区三区 | xxx国产精品视频 | 精品三区 | 亚洲欧美在线免费观看 | 日本精品视频 | 99久久夜色精品国产亚洲96 | 久久国产区| 国产精品福利在线观看 | 亚洲成人激情在线观看 | 99re国产视频| 国产在线观看网站 | 婷婷色国产偷v国产偷v小说 | 超碰在线免费av | 成人综合久久 | 精品九九久久 | 91福利影院 | 伊大人久久 | 一区二区三区日 | 亚洲一区 | 99精品一区二区 | 成人免费观看男女羞羞视频 | 日本黄色不卡视频 | 欧美九九九 | 在线观看视频中文字幕 | 国产成人午夜精品影院游乐网 | 亚洲精品免费视频 |