防踩坑:双竖线引发的低级bug

给大家看一个特别低级的bug哈

希望大家不要踩坑

就是我平时如果遇到这种

优先取某一个值

然后如果它没有再取另一个值

我就特别习惯这样写

因为我觉得就是兼容性要好一点

所以呢已经习惯了

然后那天就偶遇了这么一个bug

就是像这种字符串没有问题哈

但是呢

比如说我这还有一个enable(布尔类型)

enable是true/false的

就是当时在写这个代码的时候哈

压根没往那边想

就是没把他他当成一个或者的符号

就已经习惯了

他就是:前面值没有,取后面值

结果呢

本地配置是个enable = false

所以呢他还会取全局的这个配置

我们来看一下哈

大家看true就是它本地

这个false它没取到

就是一个小地方

当时就找(定位)了很久

所以怎么办呢

我们有几种方案哈

最简单的呢

就是我们ES11里的这个两个问号

其实它的兼容性也还可以

基本上从node14以后都支持

所以呢我们就放心大胆用就好了

尽量不要用这种双竖线了

哈哈然后呢

还有几种好玩的写法哈

比如说我们这样用解构

我们先让它等于local

就说我让从local里边取值

但是呢有些值可能logo没有配置

那么就取全局的

所以呢它默认等于全局的enable (若local.enable有值,就覆盖)

就这样

这是第二种写法哈

那第三种呢

就是我们先把这两个配置合并起来

合并到一个新的对象里

然后呢我们再用解构去取值

这样去取

那这种写法呢还

可以简写一下哈

我们把它在下边再写一版

等于对就这样

global local OK了

最后更新于

这有帮助吗?