成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[譯]學(xué)習(xí)如何去學(xué)習(xí) JavaScript - 5 個(gè)你應(yīng)該如何花在學(xué)習(xí) JS 上時(shí)間的建議

wanglu1209 / 3120人閱讀

摘要:擁抱異步編程縱觀發(fā)展史也可以說成開發(fā)的發(fā)展史,你會(huì)發(fā)現(xiàn)異步徹底改變了這場游戲。可以這么說,異步編程已成為開發(fā)的根基。這也是你應(yīng)盡早在上投入大量時(shí)間的一處核心知識(shí)點(diǎn),這其中包含和等重要概念。這也是最突出的一項(xiàng)貢獻(xiàn)。

原文地址:Medium - Learning How to Learn JavaScript. 5 recommendations on how you should spend your time when learning JavaScript

在現(xiàn)代 JavaScript 巨大的生態(tài)系統(tǒng)中遨游可謂是一項(xiàng)十分艱巨的任務(wù)。且不提眾多能在你的機(jī)器或服務(wù)器上運(yùn)行起來的 Node.js 模塊,如今大堆的前端框架、各種模塊打包工具以及成千上萬的工具庫早已令人眼花繚亂。如何才能確定我要從哪里開始學(xué)起?以及把時(shí)間花費(fèi)在哪些主題上才能避免做無用功?

就我個(gè)人而言,學(xué)過但是最終卻從未用過的知識(shí)不可勝數(shù),但是又有一些東西是我想要投入更多時(shí)間在上面的。我想用我 7 年職業(yè)生涯中得來的深刻教訓(xùn),來建議大家應(yīng)該如何學(xué)習(xí) JavaScript。

1. 擁抱 JavaScript 異步編程

縱觀 JavaScript 發(fā)展史(也可以說成 web 開發(fā)的發(fā)展史),你會(huì)發(fā)現(xiàn)異步 JavaScript 徹底改變了這場游戲。網(wǎng)站從原來的僅僅在客戶端做靜態(tài)頁面展示發(fā)展到現(xiàn)在運(yùn)行在你瀏覽器中的完整應(yīng)用程序。毫不夸張的說,瀏覽器發(fā)起 HTTP 請(qǐng)求,在不用刷新整個(gè)頁面的情況下等待服務(wù)器的響應(yīng)這一行為改變了整個(gè)萬維網(wǎng)。

可以這么說,異步編程已成為 web 開發(fā)的根基。這也是你應(yīng)盡早在 JavaScript 上投入大量時(shí)間的一處核心知識(shí)點(diǎn),這其中包含 callbacks、promises、async/await和 fetch 等重要概念。

2. 掌握 TypeScript 基礎(chǔ)

關(guān)于要不要把這條建議寫出來,我糾結(jié)了差不多有一個(gè)小時(shí)!因?yàn)檫@是一篇有關(guān)如何學(xué)習(xí) JavaScript 的博文,而 TypeScript 并不是 JavaScript,它是 JavaScript 的一個(gè)超集,在使用之前還需要一個(gè) build 的步驟,然而我對(duì) TypeScript 的強(qiáng)烈信仰讓我下決心必須要把它寫在這兒。

這條建議準(zhǔn)確的來說更像是一個(gè)最佳編程實(shí)踐。JavaScript 是一種松散的、動(dòng)態(tài)的編程語言。在沒有類型約束和不可變性原則的情況下,你在傳遞變量和數(shù)據(jù)對(duì)象時(shí)很容易寫出具有副作用的脆弱的代碼。TypeScript 通過增加強(qiáng)類型特性和創(chuàng)建只讀屬性的能力(還有很多其他好用的特性)來減少這一問題的發(fā)生。

記住上面說到的,我建議你盡快掌握 TypeScript 基礎(chǔ),我說的「基礎(chǔ)」是指:如何為你的變量添加類型注解(type annotations)、類屬性、函數(shù)參數(shù)、函數(shù)返回值。TypeScript 的強(qiáng)大絕不僅僅是學(xué)這點(diǎn)兒就夠了,但是這第一步能防止你經(jīng)常絆自己的腳。每當(dāng) TypeScript 編譯器捕獲到我的某個(gè)起初沒注意到的錯(cuò)誤都會(huì)令我為之著迷。

是的,編譯器會(huì)經(jīng)常找你的茬。這是可以接受的,它是你的朋友,想讓你成為更棒的程序員?;c(diǎn)時(shí)間去思考一下 TypeScript 給出的錯(cuò)誤信息,我保證你的代碼質(zhì)量能得到顯著提升。

3. 理解 JavaScript 框架存在的意義

JavaScript 框架從我 2012 年末進(jìn)入 web 開發(fā)這行就一直存在了?;氐侥菚r(shí)候,AngularJS 還處于霸主地位,Backbone.js 在業(yè)界的地位也很高,Ember 是當(dāng)時(shí)的后起之秀。有趣的是,盡管它們在當(dāng)今已成為過去時(shí)(幾乎被 React 和 Vue取代),這些前端框架所解決的問題并沒有太大區(qū)別。比如說:

view 和controller的數(shù)據(jù)綁定。 這是最為重要的一點(diǎn)。各種前端框架保持 UI 視圖與前端應(yīng)用狀態(tài)的同步仍是首要任務(wù)。無論這些框架的設(shè)計(jì)是基于 MVC、MVVM 還是僅僅設(shè)計(jì)視圖層,它們都有自己綁定狀態(tài)到視圖層并保持同步的方式。

可復(fù)用的組件。 這也是 AngularJS 最突出的一項(xiàng)貢獻(xiàn)。前端視圖基于組件的組合,使用 JS 把模板編譯成 HTML 同樣是 React、Vue 等現(xiàn)代框架的核心理念,都是從 AngularJS 開始興起的。如果沒有現(xiàn)存的前端框架或者說你自己創(chuàng)建一個(gè)框架的話,創(chuàng)建動(dòng)態(tài)的、可復(fù)用組件基本上不太可能,因?yàn)?web 組件的 API 十分有限,且不能處理數(shù)據(jù)綁定。

如果你仔細(xì)看看這些花里胡哨的扳手,螺絲刀和其他工具的本質(zhì),其螺母和螺栓都是相同的。你看到的是工具的變革和技術(shù)的發(fā)展,但是如果你理解了 web 開發(fā)的核心痛點(diǎn)(為啥這些工具位居榜首),你就會(huì)站在一個(gè)更好的角度去理解和正確的使用任何現(xiàn)存的、未來的或者那些已成為歷史的框架。

4. 同時(shí)學(xué)習(xí)兩個(gè)相似的框架

就比如 React 和 Vue。

在重度使用某個(gè)框架時(shí),我們很容易會(huì)把框架的語法和模式當(dāng)成底層語言的一部分(在這里可以說成是 JavaScript 的一部分)。老話兒說的好:「手里有把錘子,看啥都像釘子」。意思就是說,如果你一直使用某個(gè)框架,你就會(huì)基于你使用的那個(gè)框架固化的去思考你的解決方案,這樣框架就成了你的拐棍而不是前進(jìn)的動(dòng)力。

同時(shí)掌握或了解兩個(gè)框架可以扭轉(zhuǎn)你的這種思維方式,同時(shí)能給與你對(duì)該框架助你解決問題的更深層次的理解。這就像是學(xué)習(xí)一門外語能幫你更了解你的母語一樣。你能看到兩者的異同,去思考到底是什么樣的語言結(jié)構(gòu)產(chǎn)生了這樣的差異。掌握兩種框架的使用也能達(dá)到同樣的效果。同一問題的兩種解決方式有助于追溯到問題的根源。

5. 去揭秘構(gòu)建過程

最后一條涉及學(xué)習(xí)原生 JS。不管你喜不喜歡這種方式,寫現(xiàn)代 JavaScript 時(shí)可選的工具有太多工具和框架,而將它們緊密連接在一起的就是「構(gòu)建過程」。

在我的職業(yè)生涯中,構(gòu)建工具是變化最大的一個(gè)方向。而最大的收獲在于性能的提高以及資源體積的減少?;?Web 的公司和開源社區(qū)都在不斷的嘗試從構(gòu)建過程中榨取每一個(gè)微小的進(jìn)展,這也造就了日新月異的一系列工具和程序。

我不得不承認(rèn),理解 Webpack 這種工具著實(shí)花費(fèi)了我很長時(shí)間。只需簡單的設(shè)置一個(gè)配置項(xiàng),運(yùn)行一條命令,然后你就有了一個(gè)結(jié)構(gòu)優(yōu)化過、體積壓縮過且適用于瀏覽器運(yùn)行的代碼文件。構(gòu)建工具可以被視作黑魔法,因?yàn)樗械念愃乒ぞ叨荚诹幭蛄闩渲没驑O少配置方向努力。這對(duì)于初學(xué)者來說當(dāng)然是個(gè)好事兒,可一旦你想要進(jìn)行一些自定義配置的時(shí)候就會(huì)變的非常難。

理解這些工具為你做了什么是非常重要的一件事。試著去理解你的代碼以怎樣的順序經(jīng)歷了怎樣的改變。試著去理解你的模塊是如何被打包的,由此你才能更好的優(yōu)化它們。試著去理解每一個(gè)配置項(xiàng),因?yàn)檫@對(duì)你的代碼性能和文件體積有很大的影響。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/6990.html

相關(guān)文章

  • 個(gè)你需要在 PHP 7 中避免

    摘要:不要使用類函數(shù)終于,你不用再看到建議不要使用函數(shù)的提示了。因?yàn)閺暮诵纳贤耆瞥怂鼈?,這意味著請(qǐng)你移步至更好的類函數(shù),或者更靈活的層。將從數(shù)據(jù)庫獲取一個(gè)元數(shù)據(jù),如果您正在循環(huán)訪問特定文章的元數(shù)據(jù),則可以在循環(huán)中使用它。 showImg(https://segmentfault.com/img/bV75FM?w=1024&h=534); 1. 不要使用 mysql_ 類函數(shù) 終于,你不用...

    leanote 評(píng)論0 收藏0
  • 2017文章總結(jié)

    摘要:歡迎來我的個(gè)人站點(diǎn)性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動(dòng)及頁面渲染優(yōu)化理論寫法對(duì)壓縮率的影響唯快不破應(yīng)用的個(gè)優(yōu)化步驟進(jìn)階鵝廠大神用直出實(shí)現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補(bǔ)課緩存機(jī)制優(yōu)化動(dòng) 歡迎來我的個(gè)人站點(diǎn) 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動(dòng) scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...

    dailybird 評(píng)論0 收藏0
  • 2017文章總結(jié)

    摘要:歡迎來我的個(gè)人站點(diǎn)性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動(dòng)及頁面渲染優(yōu)化理論寫法對(duì)壓縮率的影響唯快不破應(yīng)用的個(gè)優(yōu)化步驟進(jìn)階鵝廠大神用直出實(shí)現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補(bǔ)課緩存機(jī)制優(yōu)化動(dòng) 歡迎來我的個(gè)人站點(diǎn) 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動(dòng) scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...

    hellowoody 評(píng)論0 收藏0
  • 2017文章總結(jié)

    摘要:歡迎來我的個(gè)人站點(diǎn)性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動(dòng)及頁面渲染優(yōu)化理論寫法對(duì)壓縮率的影響唯快不破應(yīng)用的個(gè)優(yōu)化步驟進(jìn)階鵝廠大神用直出實(shí)現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補(bǔ)課緩存機(jī)制優(yōu)化動(dòng) 歡迎來我的個(gè)人站點(diǎn) 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動(dòng) scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...

    wwolf 評(píng)論0 收藏0
  • 前端學(xué)習(xí)路線

    摘要:具體來說,包管理器就是可以通過命令行,幫助你把外部庫和插件放到你的項(xiàng)目里面并在之后進(jìn)行版本升級(jí),這樣就不用手工復(fù)制和更新庫?,F(xiàn)在有的包管理器主要是和。 一、基礎(chǔ) 1、學(xué)習(xí)HTML基礎(chǔ) HTML給你的網(wǎng)頁賦予了結(jié)構(gòu)。它就像是人的骨架那樣讓你保持站立。首先你需要去學(xué)習(xí)語法以及它必須提供的一切。你的學(xué)習(xí)應(yīng)該聚焦在下面這些東西上: 學(xué)習(xí)HTML基礎(chǔ),了解如何編寫語義HTML 理解如何把網(wǎng)頁分...

    FullStackDeveloper 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<