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