Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save xiaoxiangmoe/f1edd6c0b80087e3ab5edeadfa3894af to your computer and use it in GitHub Desktop.
Save xiaoxiangmoe/f1edd6c0b80087e3ab5edeadfa3894af to your computer and use it in GitHub Desktop.
前端业务代码的书写注意点

前端业务代码的书写注意点

变量,常量

几乎所有的 var,let,都可以用const代替,比如常见的写法:

交换两个数:

const [b2,a2]=[a1,b1];

(通过新建两个和原来完全不同的数字)

push:

const a = [1,2,3]
const newItem = 4;
const b = [...a,newItem]

pop:

const a = [1,2,3]
const b = a.slice(0,-1)

修改键:

const a = {
  key1:'foo',
  key2:2333,
}
const b = { ...a, key1: 114514 }
// 尽量不要使用 a.key1 = 114514

循环

尽量不要使用 for 循环,使用mapreduce等,如果真的遇到需要改变之前定义的值,则请使用 forEach

语句

请尽量避免使用无返回值的语句,比如for 循环,if语句,switch语句等,因为这些语句起效果都会导致之前的定义的值的变化,也就是改变之前定义的东西的值。多使用三元表达式等。

函数

请控制每个函数的工作指责,当一个函数的逻辑,不能用简单的一句话说清楚时候,请拆分函数。

当一个语句,需要一些额外的小技巧,小知识来解释的时候,请抽取成函数。比如判断一个0是正零还是负零,我们其实只要写 1/x === -Infinity或者Object.is(-0,x)就好,但是这需要一些额外的知识,所以可以抽取成函数const isNegativeZero = x => Object.is(x, -0)

css

css尽量使用css-module,防止污染模块外的组件。 另外,className 尽量只有一个字符串值,不要用classnames库把很多的样式组合出来一个新样式。样式的组合使用 less或者sass的 mixin,extends等特性

面向对象

大多数情况,你不需要继承扩展修改现有的类,也不需要大部分的Java程序员带来的面向对象的各种实践。我们需要的事情是,把各种复杂的逻辑,拆成简单清晰的小函数,或着可以复用的object就好了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment