如何让你的JS代码更好看易读
作为JS程序员,自己写的代码如果好看易读,不只是自己看起来好看,在别的程序员接手以后,也会是交接工作异常顺利。
不要在代码中留大段注释掉的代码
留给git去管理,不然你要git干嘛
//bad
//functionadd(){
//consta=b+c
//returna
//}
functionadd(){
returna+1000
}
//good
functionadd(){
returna+1000
}
适当地换行
//bad
functiona(){
const{
state_a,
state_b,
state_c
}=this.state
this.setState({state_a:state_a*2})
return'done'
}
//good
functiona(){
const{
state_a,
state_b,
state_c
}=this.state
this.setState({state_a:state_a*2})
return'done'
}
适当的添加注释,但不要疯狂的添加注释
对一段代码或者一行特别需要注意的代码注释
不要疯狂的注释,太啰嗦,漂亮的代码自己会说话
//bad consta='a'//这是a constb='b'//这是b constc='c'//这是c //good /** *申明变量 */ consta='a' constb='b' constc='c'
将类似行为、命名的代码归类在一起
//bad
functionhandleClick(arr){
consta=1
arr.map(e=>e+a)
constb=2
returnarr.length+b
}
//good
functionhandleClick(arr){
consta=1
constb=2
arr.map(e=>e+a)
returnarr.length+b
}
在不破坏语义性的情况下,'能省则省'
牢记js中函数是一等公民
但是,如果省略到影响可读性了,就是失败的
在可读性和简洁性至今必须选一个的话,永远先选可读性
functionadd(a){
returna+1
}
functiondoSomething(){
}
//bad
arr.map(a=>{
returnadd(a)
})
setTimeout(()=>{
doSomething()
},1000)
//good
arr.map(add)
setTimeout(doSomething,1000)
箭头函数
//bad
consta=(v)=>{
returnv+1
}
//good
consta=v=>v+1
//bad
constb=(v,i)=>{
return{
v,
i
}
}
//good
constb=(v,i)=>({v,i})
//bad
constc=()=>{
return(dispatch)=>{
//doSomething
}
}
//good
constc=()=>dispatch=>{
//doSomething
}
提前对对象取值(写react的同学一定懂)
//bad
consta=this.props.prop_a+this.props.prop_b
this.props.fun()
//good
const{
prop_a,
prop_b,
fun
}=this.props
consta=prop_a+prop_b
fun()
合理使用各种表达式
//bad
if(cb){
cb()
}
//good
cb&&cb()
//bad
if(a){
returnb
}else{
returnc
}
//good
returna?b:c
//bad
if(a){
c=a
}else{
c='default'
}
//good
c=a||'default'
链式调用写法
//bad
fetch(url).then(res=>{
returnres.json()
}).then(()=>{
//doSomething
}).catch(e=>{
})
//good
fetch(url)
.then(res=>{
returnres.json()
})
.then(()=>{
//doSomething
})
.catch(e=>{
})
保持代码是纵向发展的
发现那些在整个文件中特别'突出'的代码时,应该考虑对他们做换行处理了
//bad returnhandleClick(type,key,ref,self,source,props) //good returnhandleClick( type, key, ref, self, source, props ) //bad consta=this.props.prop_a==='hello'?world