摘要:也不例外,在發(fā)布新功能前,最好是一定要對(duì)代碼進(jìn)行充分的測(cè)試。自從年雙十一正式上線,累計(jì)處理了億錯(cuò)誤事件,付費(fèi)客戶有金山軟件百姓網(wǎng)等眾多品牌企業(yè)。
譯者按: 前端技術(shù)涉及的越來(lái)越多!
原文: 10 things to learn on the way to becoming a JavaScript Master
譯者: Fundebug
為了保證可讀性,本文采用意譯而非直譯。另外,本文版權(quán)歸原作者所有,翻譯僅用于學(xué)習(xí)。
既然你對(duì)這篇文章感興趣,我想你應(yīng)該是一位前端開發(fā),也許你有一份不錯(cuò)的工作、自主創(chuàng)業(yè)甚至是一位自由從業(yè)者。不知你的前端技術(shù)如何,也許你是一位新手,亦或是一位資深開發(fā)。
如果你想讓自己成為一個(gè) JavaScript 大師,在此我列出 12 條必備知識(shí):
我們從最基礎(chǔ)的開講。當(dāng)然,它也是最重要的一個(gè)知識(shí)點(diǎn)。如果你連這個(gè)都沒有整明白的話,那你的代碼生活將會(huì)很艱難。
if else : 如果連這個(gè)都不知道,之前怎么碼代碼的?
switch : 當(dāng)有很多的情況要處理(>2)的時(shí)候,用它準(zhǔn)沒錯(cuò)。
for: 不要去編寫重復(fù)的代碼,請(qǐng)使用 for。for of和for in都十分便利。一個(gè)很大的優(yōu)勢(shì)在于 for 循環(huán)是阻塞式的,可以配合async await使用。
高階的條件語(yǔ)句: 使用三元運(yùn)算符或則邏輯判斷。如果想把代碼寫得簡(jiǎn)潔,甚至不需要存儲(chǔ)中間值的話,可以這么做。
// ternary console.log(new Date().getHours() < 12 ? "Good Morning!" : "Time for a siesta"); // logical operators const isJsMaster = prompt("Are you a JavaScript master?") === "true"; console.log(isJsMaster && "proficient coder");2. 異常處理
不管前端還是后端工程師,作為一個(gè)新手,經(jīng)常會(huì)使用console.log或則console.error來(lái)處理錯(cuò)誤。為了寫出健壯的應(yīng)用,則需要改掉到處使用 console.log 的習(xí)慣,構(gòu)建自己的異常處理器,然后優(yōu)雅地處理異常。
你也許對(duì)如何處理異常很感興趣,可以看看我寫的這篇文章。
需要想清楚如何組織數(shù)據(jù)(合并或則分離),這不僅僅關(guān)乎在數(shù)據(jù)庫(kù)里如何定義其模型,同時(shí)也包含了函數(shù)參數(shù),定義的變量、對(duì)象等等。
const calcShape = (width, height, depth, color, angle) => {...} const calcShape = ({width, height, depth, color, angle}) => {...}4. 異步性
這個(gè)是 JavaScript 非常重要的一個(gè)特性,要么需要從服務(wù)器獲取數(shù)據(jù)或則在服務(wù)器端異步去處理請(qǐng)求。幾乎在所有的情況下,都要面對(duì)異步。如果搞不清楚異步,可能會(huì)遇到非常奇怪的報(bào)錯(cuò),以至于要花費(fèi)幾個(gè)小時(shí)去搞定它。如果你知道異步,但是沒有完全理解,那么可能掉入“回調(diào)地獄”。如今,最好的方法是使用 Promises 和async await。
5. 操作 DOM對(duì)于開發(fā)者來(lái)說(shuō),通常已經(jīng)學(xué)會(huì)了 jQuery,似乎不需要再去了解如何直接操縱 DOM 的技巧。甚至直接使用前端框架,根本不需要去操縱 DOM 了。但是,我認(rèn)為對(duì)于理解前端 JavaScript,這是必不可少的一環(huán)。知道 DOM 的工作原理以及如何操縱 DOM 元素會(huì)讓你對(duì)網(wǎng)頁(yè)的工作機(jī)制有更加清楚的理解。而且,盡管使用了前端框架,總有些情況下你需要直接操縱 DOM。打個(gè)比方,如果僅僅只是想訪問某個(gè)元素,你肯定不想把整個(gè) jQuery 都導(dǎo)入到項(xiàng)目中吧。
6. Node.js / Express作為一名前端開發(fā),依然需要學(xué)習(xí)一點(diǎn) Node.js。最好懂得如何用 Express 快速搭建一個(gè)服務(wù)器,并且使用路由功能。JavaScript 作為一門“腳本”語(yǔ)言,很適合定義各種自動(dòng)化任務(wù),因此知道如何讀取文件,操縱 Buffer 可以助你構(gòu)建工作流。
7. 函數(shù)式編程函數(shù)式編程和面向?qū)ο缶幊棠膫€(gè)更好的爭(zhēng)論由來(lái)已久。其實(shí),你可以使用任何一種編程方式達(dá)到相同的目的。在 JavaScript 中,事情變得簡(jiǎn)單,兩種方式任你挑選。像lodash就以函數(shù)式的角度提供了非常多的工具函數(shù)。如今,甚至很多函數(shù)已經(jīng)內(nèi)置實(shí)現(xiàn),無(wú)需導(dǎo)入外部庫(kù),比如map,reduce,filter,forEach,find。
8. 面向?qū)ο缶幊?/b>和函數(shù)式編程類似,你同樣需要熟悉面向?qū)ο蟮?JavaScript 編程。我曾經(jīng)很長(zhǎng)一段時(shí)間拒絕在 JavaScript 中使用面向?qū)ο?,但是后?lái)發(fā)現(xiàn)使用對(duì)象/類/實(shí)例的方式確實(shí)會(huì)更加合適。類(class)廣泛使用于 React, Mobx 或則一些自定義的構(gòu)造函數(shù)中。
9. 前端框架當(dāng)今最流行的三大框架:React.js,Angular 和 Vue.js。如果你在找一個(gè)前端的工作,在簡(jiǎn)歷上面至少需要列出它們其中之一。盡管它們更新很快,你需要理解它們總體的工作原理。而且,對(duì)底層原理的理解可以讓你更好地使用框架編寫應(yīng)用。如果還不確定上哪輛車,我建議學(xué)習(xí) React.js。我已經(jīng)使用了好些年,并且不后悔當(dāng)初的選擇。(譯者建議 Vue.js,簡(jiǎn)單好用上手快)
10. 編譯(transpilation)/打包很不幸,在 Web 開發(fā)中這一工作占了很大比重。一方面我又不能說(shuō)不幸,它使得我們可以用最新的特性來(lái)編寫代碼。我說(shuō)不幸是因?yàn)槲覀冃枰獣r(shí)刻注意新的特性在某些舊版本的瀏覽器不支持,需要將其翻譯到低版本瀏覽器解釋的代碼。業(yè)界的通用標(biāo)準(zhǔn)是babel.js,你需要熟悉它。對(duì)于打包,可以使用老大哥Webpack ,或則后起之秀parcel。我傾向于使用 parcel,盡管不完美,但是它性能很好,而且配置方便。
11. 正則表達(dá)式不僅僅針對(duì) JavaScript,但是真的非常有用,也很容易讓人迷惑。掌握正則表達(dá)式會(huì)花點(diǎn)時(shí)間,不需要記住所有的情況,可以邊查邊用。
12. 測(cè)試正如Paul Kamma指出,在軟件開發(fā)中,測(cè)試真的是一個(gè)非常重要的部分。JavaScript 也不例外,在發(fā)布新功能前,最好是(一定要)對(duì)代碼進(jìn)行充分的測(cè)試。甚至某些情況下需要手動(dòng)操作,也是值得的。當(dāng)然,使用自動(dòng)化測(cè)試工具才能一勞永逸,測(cè)試包括:?jiǎn)卧獪y(cè)試、端到端測(cè)試、加載速度測(cè)試、安全測(cè)試或則前端測(cè)試(組件是否加載)。目前市面上已經(jīng)有很多用于測(cè)試的工具,比如 enzyme, jasmine, mocha, chai 等等。我現(xiàn)在最喜歡的是ava.js。
關(guān)于FundebugFundebug專注于JavaScript、微信小程序、微信小游戲、支付寶小程序、React Native、Node.js和Java線上應(yīng)用實(shí)時(shí)BUG監(jiān)控。 自從2016年雙十一正式上線,F(xiàn)undebug累計(jì)處理了10億+錯(cuò)誤事件,付費(fèi)客戶有Google、360、金山軟件、百姓網(wǎng)等眾多品牌企業(yè)。歡迎大家免費(fèi)試用!
版權(quán)聲明轉(zhuǎn)載時(shí)請(qǐng)注明作者Fundebug以及本文地址:
[https://blog.fundebug.com/201...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/103165.html
摘要:大師錯(cuò),這是你的第二個(gè)誤區(qū)碎片時(shí)間碎片學(xué)習(xí)青年這有什么問題嗎知乎朋友圈頭條很多文章我看起來(lái)都很有道理啊,而且學(xué)的很快大師標(biāo)題黨震驚黨雞湯文養(yǎng)生文我有一個(gè)朋友文。。。。。。 摘要: 大師:很簡(jiǎn)單,我這里有一份佛系月薪 5 萬(wàn)指南,我看你骨骼清奇、腦門光亮,一看就是將要大富大貴之人,這份指南可以助你快速實(shí)現(xiàn)小目標(biāo)! showImg(https://segmentfault.com/img/...
摘要:大師錯(cuò),這是你的第二個(gè)誤區(qū)碎片時(shí)間碎片學(xué)習(xí)青年這有什么問題嗎知乎朋友圈頭條很多文章我看起來(lái)都很有道理啊,而且學(xué)的很快大師標(biāo)題黨震驚黨雞湯文養(yǎng)生文我有一個(gè)朋友文。。。。。。 摘要: 大師:很簡(jiǎn)單,我這里有一份佛系月薪 5 萬(wàn)指南,我看你骨骼清奇、腦門光亮,一看就是將要大富大貴之人,這份指南可以助你快速實(shí)現(xiàn)小目標(biāo)! showImg(https://segmentfault.com/img/...
閱讀 2410·2021-11-22 09:34
閱讀 2279·2021-09-22 15:22
閱讀 2162·2019-08-29 15:05
閱讀 2263·2019-08-26 10:43
閱讀 3540·2019-08-26 10:26
閱讀 1143·2019-08-23 18:29
閱讀 3703·2019-08-23 16:42
閱讀 2132·2019-08-23 14:46