在最近的项目中要使用到一个格式化文件大小的算法,于是不假思索写了如下代码:
function formatSize(size){
if(size<1024){
return size+"B";
}else if(size <1048576){
return parseFloat(size/1024).toFixed(2)+"KB"
}else if(size <1073741824){
return parseFloat(size/1048576).toFixed(2)+"MB"
}else {
return ">1GB"
}
}
一共写了11行代码,那么是不是可以精简一下呢?想到对于纯粹的求值操作可以使用三目运算符号,代码修改如下:
function formatSize(size){
return size<1024?size+"B":size<1048576?parseFloat(size/1024).toFixed(2)+"KB":size<1073741824?parseFloat(size/1048576).toFixed(2)+"MB":">1GB";
}
效果相当明显,同样的功能用三目运算符仅3行代码就实现了所有功能,而且代码更干净。
总结(参照以上示例代码):
使用三目运算符的优势:精简代码,减少了解释器所需要解析的代码行数。从这个意义上来讲,合理使用三目表达式能够帮助我们优化前端代码。
使用三目表达式的坏处:代码易读性差,不如使用if语句明了。