初識JavaScript

初識JavaScript

這個(gè)是在國外經(jīng)常被應(yīng)用的一條和JavaScript有關(guān)系的著名定律:

Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.

翻譯過來就是:
Atwood定律:凡是能用JavaScript寫出來的甲捏,最終都會用JavaScript寫出來差牛。

JavaScript是什么

JavaScript一種直譯式腳本語言景描,是一種動(dòng)態(tài)類型、弱類型仓犬、基于原型的語言嗅绰,內(nèi)置支持類型。它的解釋器被稱為JavaScript引擎搀继,為瀏覽器的一部分窘面,廣泛用于客戶端的腳本語言,最早是在HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)應(yīng)用)網(wǎng)頁上使用叽躯,用來給HTML網(wǎng)頁增加動(dòng)態(tài)功能财边。
在1995年時(shí),由Netscape公司的Brendan Eich点骑,在網(wǎng)景導(dǎo)航者瀏覽器上首次設(shè)計(jì)實(shí)現(xiàn)而成酣难。因?yàn)镹etscape與Sun合作们童,Netscape管理層希望它外觀看起來像Java,因此取名為JavaScript鲸鹦。但實(shí)際上它的語法風(fēng)格與Self及Scheme較為接近慧库。
為了取得技術(shù)優(yōu)勢,微軟推出了JScript馋嗜,CEnvi推出ScriptEase齐板,與JavaScript同樣可在瀏覽器上運(yùn)行。為了統(tǒng)一規(guī)格葛菇,因?yàn)镴avaScript兼容于ECMA標(biāo)準(zhǔn)甘磨,因此也稱為ECMAScript。

JavaScript能做什么

現(xiàn)在JavaScript能做的事情已經(jīng)非常多了:

  • 圖形處理
  • PDF生成
  • 建立服務(wù)器
  • 編譯解釋器
  • 圖形界面
  • 數(shù)據(jù)庫
  • 各種測試工具
  • 視頻和音頻播放處理
  • 通信
  • 多人協(xié)作

等等等等.....

Web前端

很早以前各大公司對于 Web 標(biāo)準(zhǔn)的惡戰(zhàn)讓 JS 的環(huán)境異常惡劣眯停,加之語言其本身的不成熟讓其功能僅限于一些簡單的前端交互济舆。Ajax 技術(shù)的出現(xiàn)讓前端可以在不刷新頁面的情況下和后端進(jìn)行數(shù)據(jù)交換,jQuery/zepto 等庫的盛行讓 JS 變得異常簡單莺债,Bootstrap/Amaze UI 等 UI 框架更是讓前端的成本無限降低滋觉,RequireJS/SeaJs 讓 JavaScript 也可以進(jìn)行依賴管理,MVVM(Model-View-ViewModel 的出現(xiàn)讓前后端的分離做到了極致齐邦,JavaScript 在前端領(lǐng)域前景明朗椎侠。

后端之旅

2009年5月,Ryan Dah 發(fā)布了 Node 的最初版本措拇。Node 是一個(gè)基于 Chrome JavaScript 運(yùn)行時(shí)建立的平臺我纪,它對 Google V8 引擎進(jìn)行了封裝,使 JavaScript 第一次走出前端運(yùn)行在了服務(wù)器上丐吓。這對 JavaScript 來說是一種質(zhì)的突破浅悉,這使得 Web 編程可以只用一門語言便可完成。It's Amazing! Web 的大一統(tǒng)時(shí)代仿佛就要來了券犁。同時(shí) Node 也誕生了 npm术健,從此 JavaScript 也有了強(qiáng)大的包管理機(jī)制。

Hybrid App

傳統(tǒng)上 JavaScript 只能在瀏覽器中運(yùn)行族操,Node 的出現(xiàn)讓 JavaScript 運(yùn)行在了服務(wù)端苛坚,然而脫離瀏覽器 JavaScript 還是不能跨平臺運(yùn)行比被。人們總是希望用一種方式去做所有的事情色难,于是聰明的工程師們就發(fā)明了 Hybrid App 這種形式,讓 JavaScript 在一定意義上運(yùn)行在了移動(dòng)設(shè)備上等缀。然而當(dāng)前 Hybrid App 雖然讓 JavaScript 也可以寫出 JAVA/Objective-C 才能實(shí)現(xiàn)的 APP枷莉,但是這種方式仍然沒有拋棄瀏覽器運(yùn)行環(huán)境,對 WebView 有很強(qiáng)的依賴性尺迂,性能和原生應(yīng)用還有很大差距笤妙。

image.png

桌面應(yīng)用

至此 JavaScript 除了可以被瀏覽器解析冒掌,也可以作為后端語言使用,還可以用來構(gòu)建移動(dòng)端 APP蹲盘。仿佛已經(jīng)夠強(qiáng)大了吧股毫,然而這還不夠,JavaScript 還可以用來構(gòu)建桌面應(yīng)用召衔!

Node-webkit

Node-webkit 是一個(gè) Web 應(yīng)用程序運(yùn)行時(shí)環(huán)境铃诬,它可以讓你以 Web 的方式來寫桌面應(yīng)用程序,你可以用任何流行的 Web 技術(shù)來編寫一個(gè)跨平臺(Windows苍凛,Linux趣席,MacOS)的桌面程序,并且性能和交互也是良好的醇蝴,Teambition 桌面客戶端便是使用 Node-webkit 編寫的宣肚。目前在GitHub 上有 24463 Star

heXheX

是有道公司開發(fā)的采用前端技術(shù)(HTML,CSS悠栓,JavaScript)開發(fā)桌面應(yīng)用軟件的跨平臺解決方案霉涨,意在解決傳統(tǒng)桌面應(yīng)用開發(fā)中繁瑣的 UI 和交互開發(fā)工作,使其變的簡單而高效惭适。特別適合重 UI嵌纲,重交互的桌面應(yīng)用軟件。新版有道詞典 beta 版的首頁便是使用 heX 開發(fā)完成的

神作 React

ReactReact(React.js) 是由 FaceBook 開發(fā)和維護(hù)的前端框架腥沽,目前在 GitHub 得到了 27900+ star逮走。它摒棄了 MVC/MVVM 的模式,僅僅是做 UI今阳,開創(chuàng)性地采用了 Virtual DOM(虛擬 DOM)避免了 DOM 操作消耗性能的問題师溅,將 UI 拆分成不同的可組合、可復(fù)用盾舌、可維護(hù)的組件墓臭,組件和組件之間耦合度極低,開發(fā)效率大幅度增加妖谴。在前端 UI 組件化的趨勢下窿锉,這很值得去嘗試。instagram.com全站都采用 React 進(jìn)行開發(fā)膝舅。

游戲

世界上最流行的 2D 游戲引擎之一 Cocos2d 和最流行的 3D 游戲引擎之一 Unity3D 均支持 JS 開發(fā)游戲嗡载。

Cocos2d-js

Cocos2d-JS 是 Cocos2d-x 的 JavaScript 版本,融合了 Cocos2d-html5 和Cocos2d-x JavaScript Bindings仍稀。它支持 Cocos2d-x 的所有核心特性并提供更簡單易用的 JavaScript 風(fēng)格 API洼滚,并且天然支持原生、瀏覽器跨平臺應(yīng)用技潘。在3.0版中遥巴,Cocos2d-JS 完成了不同平臺工作流的徹底整合千康,為不同平臺提供了統(tǒng)一的開發(fā)體驗(yàn)。無論開發(fā) Web 應(yīng)用還是原生應(yīng)用铲掐,都可以便捷地采用 Cocos2d-JS 實(shí)現(xiàn)“一次開發(fā)拾弃,全平臺運(yùn)行”。采用 Cocos2d-JS 開發(fā)的同一套 JavaScript 游戲代碼摆霉,可以同時(shí)運(yùn)行在 Mac OS X, Windows, iOS, Android等原生平臺砸彬、以及所有現(xiàn)代瀏覽器上,這將使得我們的開發(fā)者輕松覆蓋幾乎所有發(fā)行渠道斯入,帶來前所未有的機(jī)遇砂碉。另一方面,若開發(fā)者只想開發(fā)一款 Web 輕度休閑游戲刻两,Cocos2d-JS 也專門為此類游戲定制了 Lite Version增蹭,直接將 Cocos2d-JS Lite Version 集成到頁面中即可使用。

image.png

Unity3D

Unity3D 是一個(gè)跨平臺的 3D 游戲引擎磅摹,與 Cocos2d 最大的區(qū)別在于前者主要面對 2D 游戲開發(fā)者滋迈,后者主要進(jìn)行大型 3D 游戲的開發(fā)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市户誓,隨后出現(xiàn)的幾起案子饼灿,更是在濱河造成了極大的恐慌,老刑警劉巖帝美,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碍彭,死亡現(xiàn)場離奇詭異,居然都是意外死亡悼潭,警方通過查閱死者的電腦和手機(jī)庇忌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舰褪,“玉大人皆疹,你說我怎么就攤上這事≌寂模” “怎么了略就?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長晃酒。 經(jīng)常有香客問我表牢,道長,這世上最難降的妖魔是什么掖疮? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任初茶,我火速辦了婚禮,結(jié)果婚禮上浊闪,老公的妹妹穿的比我還像新娘恼布。我一直安慰自己,他們只是感情好搁宾,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布折汞。 她就那樣靜靜地躺著,像睡著了一般盖腿。 火紅的嫁衣襯著肌膚如雪爽待。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天翩腐,我揣著相機(jī)與錄音鸟款,去河邊找鬼。 笑死茂卦,一個(gè)胖子當(dāng)著我的面吹牛何什,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播等龙,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼处渣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蛛砰?” 一聲冷哼從身側(cè)響起罐栈,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎泥畅,沒想到半個(gè)月后荠诬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡位仁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年浅妆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片障癌。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凌外,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涛浙,到底是詐尸還是另有隱情康辑,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布轿亮,位于F島的核電站疮薇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏我注。R本人自食惡果不足惜按咒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望但骨。 院中可真熱鬧励七,春花似錦智袭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至两波,卻和暖如春瞳步,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腰奋。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工单起, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人劣坊。 一個(gè)月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓嘀倒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親讼稚。 傳聞我的和親對象是個(gè)殘疾皇子括儒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容