国产精品一区二区av交换,中文字幕人成无码免费视频,永久免费av无码网站性色av,欧美一道本一区二区三区,樱桃熟了a级毛片

技多不壓身:學(xué)習(xí)JavaScript經(jīng)驗分享

紫云飛 發(fā)表于:13年02月20日 00:30 [轉(zhuǎn)載] 51CTO

  • 分享:
[導(dǎo)讀]很遺憾,我沒有學(xué)過Scheme和Self,和大部分人一樣,我也費(fèi)了不少勁才算搞明白JavaScript中的閉包和原型.不過我接觸過awk,Perl和Python,.這三門語言也對JavaScript產(chǎn)生了一定的影響.

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

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

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

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

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

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

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

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

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

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

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

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

[責(zé)任編輯:韓蕊]
Ruby
SAP分享了多年來對企業(yè)運(yùn)營變革的洞察,以及SAP Business Suite powered by HANA如何推動企業(yè)在對業(yè)務(wù)影響最小的情況下向?qū)崟r企業(yè)轉(zhuǎn)型,從而幫助企業(yè)實現(xiàn)更睿智的業(yè)務(wù)創(chuàng)新、更快速的業(yè)務(wù)流程和更簡化的業(yè)務(wù)交互。發(fā)布會現(xiàn)場,SAP公司宣布,中國最大的瓶裝水生產(chǎn)商——農(nóng)夫山泉成為基于 SAP HANA 的SAP Business Suite在中國的首家客戶。
官方微信
weixin
精彩專題更多
存儲風(fēng)云榜”是由DOIT傳媒主辦的年度大型活動;仡2014年,存儲作為IT系統(tǒng)架構(gòu)中最基礎(chǔ)的元素,已經(jīng)成為了推動信息產(chǎn)業(yè)發(fā)展的核心動力,存儲產(chǎn)業(yè)的發(fā)展邁向成熟,數(shù)據(jù)經(jīng)濟(jì)的概念順勢而為的提出。
華為OceanStor V3系列存儲系統(tǒng)是面向企業(yè)級應(yīng)用的新一代統(tǒng)一存儲產(chǎn)品。在功能、性能、效率、可靠性和易用性上都達(dá)到業(yè)界領(lǐng)先水平,很好的滿足了大型數(shù)據(jù)庫OLTP/OLAP、文件共享、云計算等各種應(yīng)用下的數(shù)據(jù)存儲需求。
聯(lián)想攜ThinkServer+System+七大行業(yè)解決方案驚艷第十六屆高交會
 

公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會員注冊 | 訂閱中心

Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.