你覺得JavaScript很難嗎?,你認識的 JavaScript 只能用來操作DOM元素?增加網(wǎng)頁互動性?還是用來寫一些超簡單的小游戲來玩呢?NO!不要讓你的js只停留在DOM操作上,你應(yīng)該往下看看。 引言JavaScript作為全球每年穩(wěn)居前十的語言,2017年在GitHub盡然排到了第一,其受歡迎程度就無須多言了吧,行內(nèi)流行這么一句話: 任何可以用JavaScript來寫的應(yīng)用,最終都將會用JavaScript來寫。 確實,JavaScript應(yīng)用之廣泛,語言之強大,在任何地方都有,真的無孔不入,如果你接觸過后端語言,你會發(fā)現(xiàn)后端的那些語言,什么Java、C/C++、Python、Ruby等等語言都可以編譯成JavaScript,在我們Web前端,那就不用說了,老大的地位一直沒人敢動,但很多小白就覺得JavaScript除了寫點交互效果平時也沒咋用??? JavaScript能干什么說下面這些話,不是我有多么吹JavaScript,是應(yīng)為他確實很強大,只是你用的比較少而已。 除了我們平時在切頁面時候用它來寫交互效果以外,其實很多地方都用到了它,我剛工作那年,看見后端的那些老哥都會寫JavaScript,頁面啥的都會整,心里就想那招我來干啥啊,后來你切頁面的時候你會發(fā)現(xiàn)它們的CSS是真的爛,切出來的頁面簡直沒法看,就純粹的實現(xiàn)功能和頁面顯示,那時候才明白了前端是干啥的,不錯,就是會設(shè)計的程序員。 后來當(dāng)自己學(xué)習(xí)JavaScript,期間掌握了一定的后端語言的基礎(chǔ)上,我才發(fā)現(xiàn)了JavaScript是真的狠,如今又有了NodeJs,更是風(fēng)聲水起,Node的出現(xiàn)打開了傳統(tǒng)后端與前端的連接大門,也翻新了固有的前端模式,讓那些JavaScript大神為所欲為,現(xiàn)在手下的“精兵悍將”越來越多,gulp、grunt、webpack,uni-app的相繼到來,更是如魚得水,堪比“五虎上將”,你說你現(xiàn)在不是劉備,如何作用西川,別說西川了,五虎都沒有,哈哈哈。還不學(xué)起來,程序員野心就要大。 除了我們前端用,這些方面也在用: 1、后端Nodejs nodejs是一種用前端語言寫后端的解釋器,是一個JavaScript運行環(huán)境,這就使JavaScript走向了服務(wù)端,如果你想當(dāng)熟練JavaScript,等你學(xué)完nodejs,差不多就是全棧工程師啦。nodejs是可以代替PHP或Java開發(fā)后端的中間件,也可以說是工具吧。 2、桌面應(yīng)用 像electron、nw.js、hex用的就是html/js/css/h5等開發(fā)的桌面程序,構(gòu)建跨平臺桌面應(yīng)用程序的一個開源庫。 Electron 通過將 Chromium 和 Node.js 合并到同一個運行時環(huán)境中,并將其打包為 Mac,Windows 和 Linux 系統(tǒng)下的應(yīng)用來實現(xiàn)這一目的。由于體積大、調(diào)試繁瑣、成為不是很多人中理想應(yīng)用,但你想啊,Vue出來了,這些還是問題嗎?真的前端這幾年出的這些框架,語言,真的已經(jīng)奠定了大前端的趨勢。 3、移動端應(yīng)用 像一些JavaScript移動框架,如PhoneGap/Cordova、Titanium、jquery mobile、sencha Ext Js、recat Native、Msadqdeteor、nativeScript都是JavaScript移動框架,為移動設(shè)備選擇合適的JavaScript框架,為其開發(fā)降低成本,效率,豈不樂哉。 4、游戲 前幾天我在文章中寫到的three.js,利用它就可了開發(fā)微信小游戲,除了它,js本身就能些游戲,雖然不是什么大型的網(wǎng)游,Cocos Creator 游戲引擎可使用 JavaScript、TypeScript 編程語言為游戲提供組件腳本代碼,開發(fā)出的游戲可運行在電腦瀏覽器、移動瀏覽器、桌面應(yīng)用、移動APP、微信等眾多平臺之上。 小結(jié): JavaScript 長久以來一直被限制在瀏覽器的沙箱中運行, 它的能力取決于瀏覽器中間層提供的支持多少。 Node 將高性能的 V8 帶到了服務(wù)器端,使 JavaScript 也可以開發(fā)出實時高性能的服務(wù)器。 對于前端工程師而言,自己熟悉的 JavaScript 如今竟然可以在另一個地方大放異彩, 不談其他原因,僅僅因為好奇,也值得去關(guān)注和探究它。 JavaScript難不難學(xué)?前端往全棧方向發(fā)展,JavaScript語言的責(zé)任已經(jīng)越來越重了,那么深入它到底難不難。 很多時候,我們這行都講究個入門到精通,確實,你不用說我們不管做啥都會有這么個過程。但是學(xué)js時你會發(fā)現(xiàn),基礎(chǔ)學(xué)完以后也就會寫特效,難一點的特效網(wǎng)上有很多插件,都已經(jīng)封裝好了,可以拿過來直接用。 這里我也整理了一些學(xué)習(xí)js相關(guān)的資源,大家可以去看一看。 我個人覺得js入門容易,精通卻太難了,平時項目中用到的地方也就寫頁面了,別的地方根本就用不到,但你熟練了,其他語言的學(xué)習(xí)中會很輕松的,你用它就會熟能生巧。嘎嘎嘎。。。 我身邊的前端程序員,js一般,就是謝謝簡單的特效的時候用用,稍微復(fù)雜的效果根本寫不出來,搬不搬不過來,最后沒辦法,只能改特效,然后產(chǎn)品經(jīng)理去跟客戶溝通,導(dǎo)致客戶心里很抵觸,說我在國外的網(wǎng)站看見的,有啊你們寫不出來嗎?這。。。 一般JavaScript給人的感覺就是: 知識很抽象,太難搞,也就DOM操作還簡單點。 1、內(nèi)容多,函數(shù)庫、對象庫一大堆。 2、閉包,內(nèi)置對象,作用域表示沒地方用,不用學(xué)。 例如:下列的閉包(能夠訪問另一個函數(shù)作用域的變量的函數(shù))
3、混合多種編程思想,它里面不但牽涉面向過程編程思想,又有面向?qū)ο缶幊趟枷?,如果你學(xué)過別的后端語言,它會讓你對面向?qū)ο螽a(chǎn)生懷疑。。。 如何開啟學(xué)習(xí)JavaScript我接觸之前我已經(jīng)學(xué)了Java、.net,但對其都不是熟練使用,也就能進行一些基礎(chǔ)開發(fā),后來學(xué)JavaScript的時候,腦子真的是一篇混亂,什么語言都能寫進去,哈哈哈。但也苦逼的堅持下來了,到目前從事前端工作。 1、一定要確定它的地位 準確的說,如果以后想要在前端掙大錢,有深造,就一定要熟練地使用JavaScript,否則走不遠??梢哉fJavaScript是整個前端的核心,如果不知道這,勸你還是別進前端了,遲早會退出的。我相信你,既然選擇了,就會埋頭苦學(xué),無論前面有多難,這是無解的。 2、學(xué)習(xí)路線 再三叮囑,千萬不要停留在DOM操作,那只是基礎(chǔ),如果這樣,jquery更好,一定要有學(xué)習(xí)路線。看看我的學(xué)習(xí)路線: a:基礎(chǔ):必須認真過濾一遍,而且是手敲代碼,加同類型題目測試學(xué)習(xí),不要說一點代碼沒敲,就跟看書似的那么過來的,會被人鄙視的。 b:js面向過程編程思想,試著去寫一些簡單點的功能,如:輪播、切換、多功能按鈕等,然后封裝各個函數(shù),像animate.css那樣去封裝。 d:js面向?qū)ο缶幊趟枷?,學(xué)會了封裝函數(shù),還要學(xué)會去封裝對象,像一些接口等等,這里就已經(jīng)很牛逼了。 e:再牛逼一點,就可以寫出自己的開源項目啦,相信你。 3、構(gòu)建知識導(dǎo)圖 圖片太大,沒有放上去,有想要的,關(guān)注私信發(fā)你。 總結(jié)
能堅持下去本來就很難,學(xué)精更難,能把簡單的做好就是不簡單,你能走多遠,就看看平時有多努力,就像你能在前端能拿多少k,是跟你的JavaScript掌握多少是分不開的。 最后,接下來的文章里我會持續(xù)寫關(guān)于JavaScript的相關(guān)文章,感興趣的可以關(guān)注一下,跟我一起來學(xué)習(xí),謝謝關(guān)注。 |