JavaScript防御性编程

简单聊一下防御性编程,初衷是开发人员为了防止自己被裁员,而将代码编写为只有自己能看懂。如何只有自己能看懂?方法多种多样,但不能将简单问题复杂化,比如:编写一堆无效的逻辑关系,或将业务复杂化。下面介绍一种方式,既能通过代码审查,又能提高代码水平。

以vue为例,以下是计算所有产品价格:

复制代码
computed: {
        extraPrice() {
            try {
                return (
                    let cPrices = 0;
                    this.cProducts.forEach((item) => {
                        cPrices = cPrices + item.num * item.price;
                        //或 cPrices += item.num * item.price;
                    });
                    this.aProduct.num * this.aProduct.price + 
                    this.bProduct.num * this.bProduct.price + 
                    cPrices
                );
            } catch (e) {
                console.log('价格计算有误');
                return 0;
            }
        }
}

上面代码简单明了,大部分开发人员都能读懂,那么有没有高级一点的写法,当然有:

复制代码
computed: {
        extraPrice() {
            try {
                return (
                    this.aProduct.num * this.aProduct.price + 
                    this.bProduct.num * this.bProduct.price + 
                    this.cProduct.reduce((total,item) => total + item.num * item.price,0)
                );
            } catch (e) {
                console.log('价格计算有误');
                return 0;
            }
        }
}

对于不经常使用reduce的开发人员,需要先理解该函数。但要说代码的可读性,这段代码也没问题,简单明了。

简而言之,多使用高级函数,符号简写等等。

相关推荐
松涛和鸣2 分钟前
DAY43 HTML Basics
linux·前端·网络·网络协议·tcp/ip·html
前端 贾公子8 分钟前
剖析源码Vue项目结构 (一)
前端·javascript·vue.js
狂龙骄子11 分钟前
jQuery表单验证插件全攻略
前端·javascript·jquery·jquery表单验证
十铭忘27 分钟前
Vue3实现Pixso中的钢笔工具
开发语言·javascript·vue
forestsea27 分钟前
从 XMLHttpRequest 到 Fetch API:现代前端网络请求的演进与迁移指南
前端·网络
XiaoYu200233 分钟前
第4章 Nest.js业务合并
前端
局i38 分钟前
【无标题】
前端·javascript·vue.js
前端小L1 小时前
双指针专题(四):像毛毛虫一样伸缩——「长度最小的子数组」
javascript·算法·双指针与滑动窗口
沛沛rh451 小时前
React入门:从一个简单的Hello World开始
前端·react.js·前端框架
谢尔登1 小时前
Vue3 应用实例创建及页面渲染底层原理
javascript·vue.js·ecmascript