前端语法"?"的含义
result?.data?. errno === 0
如何理解呢?
这是js中的一种新语法。result?.data?.errno的意思是尝试获取result中的data中的error属性,它和result.data.errno的意思是一样的,但是比result.data.errno的容错性更高。
如果result对象中没有data属性,那么再获取errno时,代码容易报错,如下:
![http://img.mukewang.com/climg/6036ff6b095f5a1303770112.jpg](https://img-blog.csdnimg.cn/ee6dec5506a14b5cab6206bd26c522ca.png)
![http://img.mukewang.com/climg/6036ff7a09c7826406890115.jpg](https://img-blog.csdnimg.cn/00ee94e4e0e04444b0230ae99e23e01b.png)
而result?.data?.errno这种写法,代码会尝试查找errno,如果查找不到,会返回undefined,而不会报错:
![http://img.mukewang.com/climg/6036ff9009146e5304290123.jpg](https://img-blog.csdnimg.cn/590ad6b69f4d4c35ae53a5a7953be3a8.png)
![http://img.mukewang.com/climg/6036ff99099fb68903970096.jpg](https://img-blog.csdnimg.cn/e2b956e5b74c461d9dee1d0862ab85ca.png)