一千个读者,有一千个哈姆雷特。
此系列文章将会从函数的执行机制、鲁棒性、函数式编程、设计模式等方面,全面阐述如何通过 JavaScript 编写高质量的函数。
一、引言如何通过 JavaScript 编写高质量的函数,这是一个很难回答的问题,不同人心中对高质量有自己的看法,这里我将全面的阐述我个人对如何编写高质量函数的一些看法。看法可能不够全面,也可能会有一些错误的见解,欢迎一起讨论,就像过日子的人,小吵小闹总会不经意的出现,一颗包容的心莫过于是最好的 best practice 。
我打算用几篇文章来完成《如何编写高质量的 JS 函数》 这个系列。
主要从以下几个方面进行阐述:
函数(一切皆有可能)
函数的命名
函数的注释
函数的复杂度
函数的鲁棒性(防御性编程)
函数的入参和出参(返回)
如何用函数式编程打通函数的任督二脉
如何用设计模式让函数如虎添翼
编写对 V8 友好的函数是一种什么 style
前端工程师的函数狂想录
本篇只说第一节 函数 ,擒贼先擒王,下面我们来盘一盘函数的七七八八。
二、函数(一切皆有可能)函数二字,代表着一切皆有可能。
我们想一下:我们用的函数究竟离我们有多远。就像打麻将一样,你觉得你能像雀神那样,想摸啥就来啥么(夸张修辞手法)。
天天和函数打交道,函数出现的目的是什么?再深入想,函数的执行机制是什么?下面我们就来简单的分析一下。
1、函数出现的目的函数是迄今为止发明出来的用于节约空间和提高性能的最重要的手段。
PS: 注意,没有之一。
2、函数的执行机制有句话说的好,知己知彼,百战不殆。想要胜利,一定要非常的了解敌人。JS 肯定不是敌人啦,但是要想掌握 JS 的函数,要更轻松的编写高质量的函数,那就要掌握在 JS 中函数的执行机制。
怎么去解释函数的执行机制呢?
先来模仿一道前端面试题:输入一个 url 后,会发生什么?
执行一个函数,会发生什么?
参考下面代码:
function say() { let str = 'hello world' console.log(str) }