亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

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

wanglu1209 / 3176人閱讀

摘要:擁抱異步編程縱觀發(fā)展史也可以說(shuō)成開(kāi)發(fā)的發(fā)展史,你會(huì)發(fā)現(xiàn)異步徹底改變了這場(chǎng)游戲??梢赃@么說(shuō),異步編程已成為開(kāi)發(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)行起來(lái)的 Node.js 模塊,如今大堆的前端框架、各種模塊打包工具以及成千上萬(wàn)的工具庫(kù)早已令人眼花繚亂。如何才能確定我要從哪里開(kāi)始學(xué)起?以及把時(shí)間花費(fèi)在哪些主題上才能避免做無(wú)用功?

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

1. 擁抱 JavaScript 異步編程

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

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

2. 掌握 TypeScript 基礎(chǔ)

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

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

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

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

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

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

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

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

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

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

就比如 React 和 Vue。

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

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

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

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

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

我不得不承認(rèn),理解 Webpack 這種工具著實(shí)花費(fèi)了我很長(zhǎng)時(shí)間。只需簡(jiǎn)單的設(shè)置一個(gè)配置項(xiàng),運(yùn)行一條命令,然后你就有了一個(gè)結(jié)構(gòu)優(yōu)化過(guò)、體積壓縮過(guò)且適用于瀏覽器運(yùn)行的代碼文件。構(gòu)建工具可以被視作黑魔法,因?yàn)樗械念?lèi)似工具都在力爭(zhēng)向零配置或極少配置方向努力。這對(duì)于初學(xué)者來(lái)說(shuō)當(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://www.ezyhdfw.cn/yun/6990.html

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

0條評(píng)論

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