js全稱叫做JavaScript,是一種動態(tài)類型、弱類型、基于原型的一種直譯式腳本語言。最早是在HTML網(wǎng)頁中使用,用來給HTML網(wǎng)頁增加一些動態(tài)功能。
成都地區(qū)優(yōu)秀IDC服務器托管提供商(創(chuàng)新互聯(lián)公司).為客戶提供專業(yè)的西部信息機房,四川各地服務器托管,西部信息機房、多線服務器托管.托管咨詢專線:18980820575
JavaScript是一種屬于網(wǎng)絡的腳本語言,如今已經(jīng)被廣泛的用于web應用的開發(fā),為用戶提供更流暢美觀的瀏覽效果。一般情況下,js是通過嵌入HTML來實現(xiàn)自身功能。
js腳本語言其實和其他語言一樣,都有自身的基本數(shù)據(jù)類型。提供了4種基本的數(shù)據(jù)類型和2種特殊的數(shù)據(jù)類型,來處理一些數(shù)據(jù)和文字。還是非常方便耐用的。
不過js也是有缺點的,因為它是一種直譯語言,因此安全性是比較差的,而且在JavaScript中,如果有一條無法運行的話,那么下邊所有的語言都無法運行,讓人頭痛。
對于移動端的輕量級 HTML5 互動小游戲(簡稱為 H5 輕互動),如果從屏幕呈現(xiàn)模式來劃分的話,可以歸類為:豎屏式和橫屏式。
HTML5互動小游戲案例截圖
平常我們做過的需求里,主要是以豎屏式為主,而橫屏式較少。對于豎屏式場景來說,大家的經(jīng)驗會比較豐富,因此,此次主要式探討下橫屏式場景下的一些需要注意的點,特別是怎樣去做橫屏適配。
對于 H5 輕互動游戲來說,要實現(xiàn)橫屏的話,主要是解決兩點:
1.無論用戶手持方向如何,都需要保證屏幕橫向顯示。
2.由于屏幕分辨率的多樣化,因此就算是橫屏下也是需要進行橫屏適配,保證畫面在所有分辨率下都能夠合理適配。
下面,我們針對這兩點分別闡述如何解決。
強制橫屏顯示
頁面內(nèi)容顯示方向可分為豎排方向和橫排方向,如下圖所示。
頁面內(nèi)容顯示方式:豎向排版和橫向排版
對于豎屏式 H5 輕互動來說,頁面會被期望保持豎排方向顯示。而如果頁面出現(xiàn)橫排方向顯示的情況,開發(fā)者往往會選擇利用提示蒙層來進行友好提示,讓用戶自主保持豎屏體驗,如下圖所示。
提示蒙層提醒用戶保持豎屏體驗
同樣地,在橫屏式 H5 輕互動游戲中可以采取相同的措施進行簡單處理,在頁面內(nèi)容按豎排方向顯示時,開發(fā)者進行對用戶提示其保持橫屏體驗。
但是,這對用戶體驗并不友好,因為這對于那些習慣于打開鎖定為豎排方向功能(如下圖所示)的 iOS 平臺用戶,或者是關閉屏幕旋轉功能(如下圖所示)的 Android 平臺用戶來說,他們需要多一個處理步驟——先關閉豎排方向鎖定或是開啟屏幕旋轉,然后再橫向手持設備。
豎排方向鎖定功能(iOS)與屏幕旋轉(Android)功能
因此,更好的做法是強制橫屏顯示,對屏幕 resize 事件進行監(jiān)聽,當判斷為豎屏時將整個根容器進行逆時針 CSS3 旋轉 90 度即可,代碼如下所示。
1234567891011121314151617181920212223242526
// 利用 CSS3 旋轉 對根容器逆時針旋轉 90 度var detectOrient = function() {var width = document.documentElement.clientWidth,height = ?document.documentElement.clientHeight,$wrapper = ?document.getElementById("J_wrapper"),style = "";if( width = height ){ // 橫屏style += "width:" + width + "px;"; ?// 注意旋轉后的寬高切換style += "height:" + height + "px;";style += "-webkit-transform: rotate(0); transform: rotate(0);";style += "-webkit-transform-origin: 0 0;";style += "transform-origin: 0 0;";}else{ // 豎屏style += "width:" + height + "px;";style += "height:" + width + "px;";style += "-webkit-transform: rotate(90deg); transform: rotate(90deg);";// 注意旋轉中點的處理style += "-webkit-transform-origin: " + width / 2 + "px " + width / 2 + "px;";style += "transform-origin: " + width / 2 + "px " + width / 2 + "px;";}$wrapper.style.cssText = style;}window.onresize = detectOrient;detectOrient();
但是!這里有坑:如果你是采用 CreateJS 框架進行開發(fā),那么就不能通過 CSS3 途徑對包含 Canvas 的根容器進行旋轉處理,因為旋轉后會導致 Canvas 內(nèi)的舞臺元素的事件響應位置錯亂。
解決辦法是,換成利用 CreateJS 框架內(nèi)的 Stage 的?rotation?屬性對整個舞臺旋轉處理,代碼如下:
12345678910
if(self.isPortrait) { // 豎屏// 舞臺旋轉self.stage.x = self.canvasHeight; // 注意:x偏移相當于旋轉中點處理,更簡單self.stage.rotation = 90;// more...}else { // 橫屏self.stage.x = 0;self.stage.rotation = 0;// more...}
橫屏適配處理
面對移動端多分辨率繁復冗雜的情況,我們對于一般情況下(也就是常見的豎屏式)頁面適配處理可以說是爛熟于心,但是切換到橫屏式場景下,同樣的頁面適配方法可以直接應用嗎?會不會有什么問題呢?
下面筆者分別從 DOM 和 Canvas 兩方面去著手闡述如何做橫屏適配處理。
解決 DOM 的橫屏適配問題
在移動端,常見的移動端適配方案是 REM 方案,而為了減少 JS 與 CSS 的耦合,筆者團隊開發(fā)頁面時采用的是 VW + REM 方案。(想要了解該方案的同學可詳細閱讀《利用視口單位實現(xiàn)適配布局》)。
因為頁面適配的場景往往是豎屏式的,因此 VW + REM 方案表現(xiàn)得十分完美。但是遇上橫屏式,它的缺點就暴露了出來。
現(xiàn)行的 vw 單位適配方案帶來的問題
如上圖所示,由于響應斷點的限制最大寬度處理,會導致頁面兩側留白,當然這可以通過去掉最大寬度限制來解決。而真正的缺點在于,由于 vw 單位的特性,適配換算大小是根據(jù)屏幕寬度而言的,因此屏幕寬度越大導致容器、文字會越大,還可能導致 DOM 元素超出屏幕外,且文字過大并不是我們所想要的用戶體驗。
那么,換成 px 單位的固定布局如何?
但 px 單位的固定布局只適合于部分場景,對于需要內(nèi)容全屏覆蓋的場景(如下圖所示),就可能存在這樣的不理想的用戶體驗:絕對定位的元素之間空隙過大,導致布局不美觀,又或者空隙過小,導致元素疊放被遮擋。
px單位固定布局適配方案帶來的問題
我們了解到,vw 單位的特點是適配換算大小時是根據(jù)屏幕寬度而定的,那么在強制橫屏顯示時,我們就可以同理轉換為屏幕高度來而定,也就是 vw 單位替換成 vh 單位。
這樣進一步改良之后就會得到滿意的適配效果,如下圖所示。
更好的適配解決方案—— vw、vh 單位搭配
具體實現(xiàn)可參考如下 SCSS 代碼:
123456789101112
$vw_base: 375;$vw_fontsize: 20;html {font-size: 20px; //不支持vw單位時,回退到px單位font-size: ($vw_fontsize / $vw_base) * 100vw;}@media screen and (orientation: landscape) {html {font-size: 20px;font-size: ($vw_fontsize / $vw_base) * 100vh;}}
解決 Canvas 的橫屏適配問題
解決 Canvas 的橫屏適配問題,目前在實際應用中有兩種主流的方案:
通過做兩套Canvas的方案。
采用縮放的手段進行適配的方案。
兩套 Canvas 的方案的做法是,頁面包含兩個 Canvas 分別用于橫豎屏時的相應顯示,但是它們的數(shù)據(jù)是打通的。但是,該方案難免會有局限性,比較適合游戲邏輯數(shù)據(jù)處理簡單、且舞臺元素少且居中的場景;
而縮放適配方案做法是,采用的最為常見的縮放手段——利用 CSS3 Transform 的?scale?屬性,達到“一種設計尺寸適配多種分辨率屏幕”的目的。
采用了不同適配方案的案例
在市面上的一些成熟的主流 HTML5 游戲引擎,例如 Cocos2D、Laya、Egret 等等,它們本身就集成了橫屏適配的方案。如果你有去了解過,可以發(fā)現(xiàn)它們普遍都是采用縮放的理念進行適配。
但是,對于我們常用的 CreateJS、PixiJS 框架來說,它們并沒有配套的現(xiàn)成的橫屏適配解決方案可以被采用的,尤其是我們?nèi)绻捎迷?Javascript 去開發(fā)一個橫屏游戲的時候。
因此,下面我們來研究下如何解決 Canvas 橫屏適配問題。
注意:下面文中示例代碼都是在 CreateJS 框架的基礎上進行編寫的。
選用合適的縮放模式
橫屏適配的核心是縮放,通過?scale?屬性等手法將Canvas縮放至適合屏幕窗口大小。類似于?background-size?屬性的表現(xiàn),縮放適配也可以有很多種模式,或有裁剪或無裁剪,或根據(jù)長邊縮放或根據(jù)短邊縮放等等。根據(jù)一些常見的實際應用場景,有比較常用的五種縮放模式:Contain、Cover、Fill、Fixed-Width、Fixed-Height。根據(jù)游戲的不同的實際場景需求,我們可以選其中一種縮放模式進行適配。
下面,我們逐一解釋以上五種縮放模式的定義、實現(xiàn)與其適用的場景。
a. Contain模式
Canvas可以類比為一張圖,而圖片的適配,我們可以聯(lián)想到經(jīng)常用以適配背景圖片的屬性?background-size?,其屬性值包括?contain、cover。
借助?contain?的概念,我們把縮放的其中一種模式稱為 Contain 模式。因為在這種模式下,舞臺內(nèi)容(gameArea)會保持寬高比進行縮放適配瀏覽器可視窗口(window),縮放至其能顯示完整的舞臺內(nèi)容。
根據(jù)下圖推導,我們可以得出在這種縮放模式下的縮放比例(scaleRadio),為瀏覽器可視窗口與游戲內(nèi)容的寬度比或高度比之間較小者。
Contain 模式下的縮放比例推導圖
根據(jù)推導結論,簡單代碼實現(xiàn)如下:
1234567
// Contain模式核心原理函數(shù)CONTAIN: function(){var self = this;self.radioX = self.radioY = Math.min((self.winWidth / self.designWidth) , (self.winHeight / self.designHeight));self.canvasWidth = self.designWidth;self.canvasHeight = self.designHeight;}
可以看出,在 Contain 模式下,如果舞臺內(nèi)容寬高比與瀏覽器可視窗口的寬高比不相等時,舞臺內(nèi)容并沒有填滿整個瀏覽器可視窗口,此時就會出現(xiàn)上下或左右兩側會存在留空部分。
對于這種 Contain 模式,會比較適合舞臺背景為純色或者是漸變類型的H5輕互動,舞臺內(nèi)容與窗口的緊鄰處得以自然過渡銜接,不會突兀。
b. Cover模式
如果把一個網(wǎng)頁比喻為一個舞臺,那么:
html是舞臺的基本建筑結構;
css是舞臺的布景和裝飾;
javascript是舞臺表演的劇本(或者叫腳本);
有了以上三個基本元素,再往舞臺上添加演員、道具等等,表演就可以開始了。
jquery則是把一些常用的腳本編寫為一些較小的固定腳本,在寫劇本的時候可以直接引用,這樣就簡化了劇本的編寫,提高了效率;
div則是區(qū)塊結構,相當于舞臺的結構設計吧。早期的網(wǎng)頁采用的是Table(表格)結構,但它存在許多缺陷,就像是四四方方的固定舞臺,顯得非常呆板無生氣?,F(xiàn)在的網(wǎng)頁則大多采用div+css結構,把內(nèi)容放入一個個div中,然后通過css來控制每個div的各種樣式(位置、大小、邊框、顏色等等),這樣就像是一個全方位的立體舞臺,呈現(xiàn)出多姿多彩的效果,也給網(wǎng)頁設計師留下更多發(fā)揮的空間。
他們的用途就不一樣了
一、baijavascript與Java是由不同的公司開發(fā)的不同產(chǎn)du品zhi。javascript是Netscape公司的產(chǎn)品,其目的是為了擴dao展Netscape?Navigator功能,而開發(fā)的一種可以嵌入Web頁面中的基于對象和事件驅動的解釋性語言;
而Java是SUN?Microsystems公司推出的新一代面向對象的程序設計語言,特別適合于Internet應用程序開發(fā)。實際上,javascript最初的名字并不是javascript,而是LiveScript,名字中的“Java”是經(jīng)過SUN?Microsystems公司授權的。
二、javascript是基于對象的,它是一種腳本語言,是一種基于對象和事件驅動的編程語言,因而它本身提供了非常豐富的內(nèi)部對象供設計人員使用。而Java是面向對象的,即Java是一種真正的面向對象的語言,即使是開發(fā)簡單的程序也必須設計對象。
三、javascript與Java嵌入方式不一樣。在HTML文檔中,兩種編程語言的標識不同,javascript使用script/script來標識,而Java使用Applet來標識。
四、javascript與Java在瀏覽器中所執(zhí)行的方式不一樣。javascript是一種解釋性編程語言,其源代碼在發(fā)往客戶端執(zhí)行之前不需經(jīng)過編譯,而是將文本格式的字符代碼發(fā)送給客戶,即javascript語句本身隨Web頁面一起下載下來,由瀏覽器解釋執(zhí)行。而Java的源代碼在傳遞到客戶端執(zhí)行之前,必須經(jīng)過編譯,因而客戶端上必須具有相應平臺上的仿真器或解釋器,它可以通過編譯器或解釋器實現(xiàn)獨立于某個特定的平臺編譯代碼。
五、javascript與Java代碼格式不一樣。javascript的代碼是一種謀咀址格式,可以直接嵌入HTML文檔中,并且可動態(tài)裝載,編寫HTML文檔就像編輯文本文件一樣方便,其獨立文件的格式為*.js。Java是一種與HTML無關的格式,必須通過像HTML中引用外媒體那么進行裝載,其代碼以字節(jié)代碼的形式保存在獨立的文檔中,其獨立文件的格式為*.class。
參考鏈接?網(wǎng)頁鏈接
祝好運,望采納
你好,其實很簡單的:
第一步:把做好的按鈕拉到舞臺中來,然后打開“行為面板”,(行為面板在“窗口”菜單里面,有個行為)
第二步:打開之后選中你要添加鏈接的按扭,然后在“行為面板”中,單擊一個+號,有一個web,點擊轉到WEB頁,它會彈出一個窗口,然后在這窗口中輸入網(wǎng)頁的地址就好了。
也可以直接選中按鈕,在動作面板中輸入:
on
(release)
{
//Goto
Webpage
Behavior
getURL(".你要鏈接的地址.com","_blank");
//End
Behavior
}
很長時間以來,JavaScript在我眼里都是編程語言中的二等公民。早先,它經(jīng)常是很多安全問題的發(fā)源地,就像是膠水一樣,它能把HTML應用與樣式粘到一塊,可沒有人拿它來正正規(guī)規(guī)地編寫程序;這樣的情形太普遍了。而Java、Ruby、Python,這些才是真正能用來編寫程序的語言。
過去幾年間,我對JavaScript的態(tài)度有了徹底的改變。JavaScript已經(jīng)“長大成人”了。我敢保證很多JavaScript開發(fā)人員都不會認同我前面的說法,他們會說JavaScript一直都是一個十分強大、成熟,深得人心的語言?;蛟S他們說得沒錯,事實上只要是一門完整的編程語言,就能拿來編寫程序,也包括BASIC這種濫東西。而一門語言真正有用,必須一方面自身具備很強的表達能力,另一方面還要有眾多的庫和開發(fā)工具。顯然,JavaScript的表達能力早就沒有問題了,即便是創(chuàng)建對象的方式有點不好讓人接受,其實問題也不大。直到最近,一些極其重要的扭轉局面的技術出現(xiàn)了:jQuery、JSON、Node.js和HTML5?;蛟SJavaScript以前就是一門完善的語言了,但卻是這些重要的相關技術(以及其他一些沒有在這里提及的),讓JavaScript成為了每一個開發(fā)人員都知道的語言。如果明年你要學一門新語言的話,那一定就是JavaScript。
潛力無限的Node.js
說Node.js潛力無限的意思,就是它有可能引發(fā)Web開發(fā)的革命。Node.js是一個框架,用于構建高性能Web應用——即使是巨量的請求也能夠迅速而有效地響應。雖然Node本身作為一個底層框架,能夠用于構建任何應用,但它還是最適合構建Web服務器。它的異步事件驅動模式與傳統(tǒng)的請求-響應模式相比,無疑更適合Web應用。
有兩方面因素更讓Node顯得前途無量。首先,Google在提升JavaScript性能方面掀起了一場革命。這句話的意思并不是說你隨時隨地都可以用上最好的JavaScript引擎(盡管這也是我們一個美好的期望)。但可以肯定的是,Google在其他競爭對手還沒有上心的情況下,真的把JavaScript性能當成了一回事兒。如此一來,就把Mozilla、Apple、Microsoft、Opera,還有其他瀏覽器開發(fā)商逼到了性能競賽的跑道上。結果導致我們現(xiàn)在使用的JavaScript引擎較之幾年前快了不知道有多少倍,完全有能力運行復雜的大型Web應用。
其次,Node有著龐大的開發(fā)人員基礎。不管大家在服務器端使用的是什么語言,但在客戶端卻鮮有不使用JavaScript的。有的人可能是“剪刀加漿糊”式的東拼西湊,有的人則可能用JavaScript做出了高超的Ajax應用,而有的人甚至實現(xiàn)了全功能的應用程序,像Twitter或 Gmail。可不管怎么說,JavaScript開發(fā)人員的數(shù)量無疑是非常龐大的。而Doug Crockford等作者更是極力宣傳所有人都應該把JavaScript當成一門嚴肅正經(jīng)的編程語言來看待——盡管它還有不少缺點。
當時當下,編寫Node應用相對還是個“粗”活兒,畢竟它只是一個底層庫。想象一下單純使用JavaScript寫代碼,對,就是這種感覺,Node當前還是一個beta版的格局,與Rails或Django這樣成熟的Web開發(fā)框架還沒法比。這種狀況無疑會改變。一些輕量級的框架,比如Express,已經(jīng)出現(xiàn)了;我堅信更多基于Node的全功能框架也將不斷涌現(xiàn)。
前面提到過一些幾乎完全在瀏覽器中運行的高級Web應用。那些都已經(jīng)不算什么新鮮事兒了,Gmail多大了?Google Maps貴庚了?不過,用JavaScript編寫在瀏覽器中運行的應用的客戶端無疑是越來越有吸引力了。HTML5則繼續(xù)推高了人們對這一趨勢的預期。
HTML5其實就是JavaScript
我不知道已經(jīng)說過多少次了,HTML5實際上并沒有多少與HTML有關,它其實就是JavaScript。HTML本身有什么變化?不過一些新標簽而已,況且也都很好理解。HTML5的威力在于讓你能用JavaScript來創(chuàng)建這些標簽。假如沒有后臺代碼通過Canvas來創(chuàng)建動畫、游戲,或者通過它來實現(xiàn)一些數(shù)據(jù)的可視化,這個標簽也沒有大用處。從瀏覽器開始支持Canvas開始,我已經(jīng)看到了Asteroids(行星游戲)的上百個實現(xiàn),那都是開發(fā)人員為熟悉這個新特性所做的練習。有的比較粗糙一些,而有的則極其精美。這些完全都要歸功于JavaScript。
由此可見,HTML5并不是在以尖括號為特征的標簽語言的一次大的改進,其實質(zhì)是賦予了JavaScript更強大的能力。WebGL庫(當前還羽翼未豐)支持在HTML5的畫布中繪制實時的3D圖形。HTML5的地理位置支持在瀏覽器中實現(xiàn)LBS(Location Based Service)應用——手機的基本配置。而持久存儲以及離線功能則為開發(fā)能與桌面應用媲美,但卻在瀏覽器中運行的全功能應用奠定了基礎。目前,就連增加多點觸摸事件的實驗性的庫也已經(jīng)出現(xiàn)了。凡此種種,無一不是實實在在的JavaScript特性。HTML5只是為這些高級功能的發(fā)揮提供了舞臺。
退一步講,不依賴于HTML5的瀏覽器庫開發(fā)庫也取得了長足的進步。長久以來,JavaScript一直都是在HTML中實現(xiàn)動態(tài)效果的不二之選??蓛蓚€問題遲遲得不到解決:一是瀏覽器兼容性問題,二是直接操作DOM太麻煩。jQuery讓這兩個問題霎那間消失得無影無蹤,這個庫已經(jīng)成為現(xiàn)代基于瀏覽器的客戶端開發(fā)的基本配置。不過,并非只有jQuery。Protovis、D3,都可以讓你直接在瀏覽器中創(chuàng)建復雜的交互性數(shù)據(jù)可視化效果,有史以來第一次讓瀏覽器成為了展示數(shù)據(jù)的一個重要工具。
JavaScript與數(shù)據(jù)庫,編譯器與語言
就連數(shù)據(jù)庫里都開始廣泛使用JavaScript了!當前如火如荼的NoSQL運行的三只領頭羊:CouchDB、MongoDB和Riak,都是“文檔數(shù)據(jù)庫”。它們保存的不是表,而是文檔。這幾個數(shù)據(jù)庫所謂的“文檔”,其實就是JSON文檔,而不是Word或Excel。(Riak除了JSON文檔,還支持XML和純文本。)JSON已經(jīng)成為一種被廣泛采用的數(shù)據(jù)交換格式(所有現(xiàn)代的編程語言幾乎全都有解析JSON的庫),不過請注意,JSON實際上不就是一種序列化JavaScript對象的格式嘛!因此,雖然你可以在任何語言中使用JSON,但在JavaScript開發(fā)中使用它則是再自然不過的事了。況且,JSON這個格式成為一種跨語言的標準,而不是Python、Ruby或Java等語言的序列化格式,這個事實本身足以說明JavaScript將在更加廣闊的舞臺上大顯身手。還不僅僅如此,上述三個數(shù)據(jù)庫都內(nèi)置了支持JavaScript查詢的能力。未來幾年,更多的人都將會驚訝地發(fā)現(xiàn),JavaScript和JSON已經(jīng)內(nèi)置到了其他應用程序里啦!
現(xiàn)在很多小伙伴喜歡在互聯(lián)網(wǎng)上找視頻資料學習javascript,但是光看視頻你是不可能學會javascript的,沒有人指導你,而且很多視頻已經(jīng)過時了?并沒有什么用!??如果你真的想學習javascript這門技術,你可以來這個群,前面是5柒3,中間是82〇,最后是49〇,?在這里有最新的javascript課程?免費學習?也有很多人指導你?進步?不需要你付出什么?只要你有一顆學習的心就可以了?不是愿意學習或者自認不需要學習的就不要加了。
JavaScript時代的序幕才剛剛拉開。在今年的JSConf上,一個核心主題就是“JavaScript到JavaScript的編譯器”,也被人們看成是未來的一個主要趨勢。Google在“編譯生成JavaScript代碼”方面是首開先河者。據(jù)我所知,GWT(Google Web Toolkit)應該是通過編譯(從Java代碼)生成JavaScript代碼的第一個框架。以前我對GWT并沒有太重視,只是覺得它是一個致力于拯救那些Java程序員的框架,好讓他們不必因為(學習)編寫JavaScript而浪費時間。可是,GWT在編譯過程中對JavaScript做了那么多的優(yōu)化,簡直是太神了。Closure就是一個“JavaScript到JavaScript的編譯器”,能夠實現(xiàn)同樣級別的優(yōu)化。Traceur,這是幾個星期前才冒出來的一個框架,通過它能夠試驗JavaScript的新特性,換句話說,它可以把帶有實驗性語言特性的JavaScript代碼編譯成可以在所有現(xiàn)代平臺中運行的JavaScript代碼。
最后,我們也開始看到了當初Java大旗下JVM語言的蓬勃景象:各種語言都在致力于編譯成JavaScript!其中有一些語言比較有意思,像Coffeescript和Kaffeine,它們在風格上酷似JavaScript,但更關注彌補JavaScript的一些不夠完善的地方。是不是覺得JavaScript的對象模型特有意思,可怎么看怎么有點笨笨滴,有木有?是不是一想到基于原型創(chuàng)建一個實際的對象都需要反反復復地定義這定義那,就望而卻步了?Coffeescript對此作了明顯的改進。除了完善對象模型,Coffeescript還添加了類似列表解析(comprehensions)的新特性,去掉了大部分花括號。就像在Python中一樣,要使用縮進來區(qū)分代碼塊。
未來的Web服務器、取之不盡的客戶端庫、HTML5、數(shù)據(jù)庫,乃至基于JavaScript的語言——我一睜眼就能看到JavaScript!假如你曾經(jīng)對JavaScript敬而遠之,今年就該學習它了。沒有理由,真的,再不學,恐怕你再也沒機會趕超別人了!