开发日记(1): 小程序 js中 “ ?” 常用小技巧

151 阅读1分钟

背景

开发中有很多时候,我们需要从接口返回的数据,或者是点击事件中拿到一个值来做相应的处理,例如数组的遍历,赋值,数据的过滤等,但是往往我们不能确认当前这种第三方返回的值是否一定存在,如果不存在,而对一个为 undefined,或者 null 的值进行遍历等,就会在控制台打印出很多报错

解决方法

一:数组的遍历:

image.png 通过对数组遍历前数组添加“ ?”,可以在当 goodsArr 为 undefined时候,不报错,如果不加则会报出TYPEERR。

二:接口返回数据的赋值:

image.png 在小程序中,通常会对返回数据进行 this.setData赋值,可以将返回的数据前添加 “ ?”,防止不必要的bug,因为后端如果处理不严谨可能对一个空数组返回的是undefined或者null,而不是空数组[];

三:对事件对象的取值:

image.png 在从事件对象e中取值中,很容易出现当前事件对象e中并不存在当前值的情况,所以也需要在取值中通过 “ ?”来避免出现不必要的bug和报错;

总结:

在js中其实很多地方都可以通过合理的运用 “ ?”,来避免一些第三方或者未知情况中拿到值进行操作,但是当值为undefined的bug;