JavaScript大师必须掌握的12个知识点

小编推荐: Fundebug提供JS、微信小程序、微信小游戏,Node.js和Java错误监控。真的是一个很好用的错误监控服务,众多大佬公司都在使用。

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

既然你对这篇文章感兴趣,我想你应该是一位前端开发,也许你有一份不错的工作、自主创业甚至是一位自由从业者。不知你的前端技术如何,也许你是一位新手,亦或是一位资深开发。
如果你想让自己成为一个 JavaScript 大师,在此我列出 12 条必备知识:

1. 控制流(Control Flow)

我们从最基础的开讲。当然,它也是最重要的一个知识点。如果你连这个都没有整明白的话,那你的代码生活将会很艰难。

  • if else : 如果连这个都不知道,之前怎么码代码的?
  • switch : 当有很多的情况要处理(>2)的时候,用它准没错。
  • for: 不要去编写重复的代码,请使用 for。for offor in都十分便利。一个很大的优势在于 for 循环是阻塞式的,可以配合async await使用。
  • 高阶的条件语句: 使用三元运算符或则逻辑判断。如果想把代码写得简洁,甚至不需要存储中间值的话,可以这么做。
// 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. 异常处理

不管前端还是后端工程师,作为一个新手,经常会使用console.log或则console.error来处理错误。为了写出健壮的应用,则需要改掉到处使用 console.log 的习惯,构建自己的异常处理器,然后优雅地处理异常。
你也许对如何处理异常很感兴趣,可以看看我写的这篇文章

3. 数据模型

需要想清楚如何组织数据(合并或则分离),这不仅仅关乎在数据库里如何定义其模型,同时也包含了函数参数,定义的变量、对象等等。

const calcShape = (width, height, depth, color, angle) => {...}
const calcShape = ({width, height, depth, color, angle}) => {...}

4. 异步性

这个是 JavaScript 非常重要的一个特性,要么需要从服务器获取数据或则在服务器端异步去处理请求。几乎在所有的情况下,都要面对异步。如果搞不清楚异步,可能会遇到非常奇怪的报错,以至于要花费几个小时去搞定它。如果你知道异步,但是没有完全理解,那么可能掉入“回调地狱”。如今,最好的方法是使用 Promises 和async await

5. 操作 DOM

对于开发者来说,通常已经学会了 jQuery,似乎不需要再去了解如何直接操纵 DOM 的技巧。甚至直接使用前端框架,根本不需要去操纵 DOM 了。但是,我认为对于理解前端 JavaScript,这是必不可少的一环。知道 DOM 的工作原理以及如何操纵 DOM 元素会让你对网页的工作机制有更加清楚的理解。而且,尽管使用了前端框架,总有些情况下你需要直接操纵 DOM。打个比方,如果仅仅只是想访问某个元素,你肯定不想把整个 jQuery 都导入到项目中吧。

6. Node.js / Express

作为一名前端开发,依然需要学习一点 Node.js。最好懂得如何用 Express 快速搭建一个服务器,并且使用路由功能。JavaScript 作为一门“脚本”语言,很适合定义各种自动化任务,因此知道如何读取文件,操纵 Buffer 可以助你构建工作流。

7. 函数式编程

函数式编程和面向对象编程哪个更好的争论由来已久。其实,你可以使用任何一种编程方式达到相同的目的。在 JavaScript 中,事情变得简单,两种方式任你挑选。像lodash就以函数式的角度提供了非常多的工具函数。如今,甚至很多函数已经内置实现,无需导入外部库,比如map,reduce,filter,forEach,find

8. 面向对象编程

和函数式编程类似,你同样需要熟悉面向对象的 JavaScript 编程。我曾经很长一段时间拒绝在 JavaScript 中使用面向对象,但是后来发现使用对象/类/实例的方式确实会更加合适。类(class)广泛使用于 React, Mobx 或则一些自定义的构造函数中。

9. 前端框架

当今最流行的三大框架:React.js,Angular 和 Vue.js。如果你在找一个前端的工作,在简历上面至少需要列出它们其中之一。尽管它们更新很快,你需要理解它们总体的工作原理。而且,对底层原理的理解可以让你更好地使用框架编写应用。如果还不确定上哪辆车,我建议学习 React.js。我已经使用了好些年,并且不后悔当初的选择。(译者建议 Vue.js,简单好用上手快)

10. 编译(transpilation)/打包

很不幸,在 Web 开发中这一工作占了很大比重。一方面我又不能说不幸,它使得我们可以用最新的特性来编写代码。我说不幸是因为我们需要时刻注意新的特性在某些旧版本的浏览器不支持,需要将其翻译到低版本浏览器解释的代码。业界的通用标准是babel.js,你需要熟悉它。对于打包,可以使用老大哥Webpack ,或则后起之秀parcel。我倾向于使用 parcel,尽管不完美,但是它性能很好,而且配置方便。

11. 正则表达式

不仅仅针对 JavaScript,但是真的非常有用,也很容易让人迷惑。掌握正则表达式会花点时间,不需要记住所有的情况,可以边查边用。

12. 测试

正如Paul Kamma指出,在软件开发中,测试真的是一个非常重要的部分。JavaScript 也不例外,在发布新功能前,最好是(一定要)对代码进行充分的测试。甚至某些情况下需要手动操作,也是值得的。当然,使用自动化测试工具才能一劳永逸,测试包括:单元测试、端到端测试、加载速度测试、安全测试或则前端测试(组件是否加载)。目前市面上已经有很多用于测试的工具,比如 enzyme, jasmine, mocha, chai 等等。我现在最喜欢的是ava.js

关于Fundebug

Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有Google、360、金山软件、百姓网等众多品牌企业。欢迎大家免费试用

版权声明

转载时请注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2019/04/03/handle-erros-in-js/

您可能感兴趣的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容