防踩坑:双竖线引发的低级bug
给大家看一个特别低级的bug哈
希望大家不要踩坑
就是我平时如果遇到这种
优先取某一个值
然后如果它没有再取另一个值
我就特别习惯这样写
因为我觉得就是兼容性要好一点
所以呢已经习惯了
然后那天就偶遇了这么一个bug
就是像这种字符串没有问题哈
但是呢
比如说我这还有一个enable(布尔类型)
enable是true/false的
就是当时在写这个代码的时候哈
压根没往那边想
就是没把他他当成一个或者的符号
就已经习惯了
他就是:前面值没有,取后面值
结果呢
本地配置是个enable = false
所以呢他还会取全局的这个配置
我们来看一下哈
大家看true就是它本地
这个false它没取到
就是一个小地方
当时就找(定位)了很久
所以怎么办呢
我们有几种方案哈
最简单的呢
就是我们ES11里的这个两个问号
其实它的兼容性也还可以
基本上从node14以后都支持
所以呢我们就放心大胆用就好了
尽量不要用这种双竖线了
哈哈然后呢
还有几种好玩的写法哈
比如说我们这样用解构
我们先让它等于local
就说我让从local里边取值
但是呢有些值可能logo没有配置
那么就取全局的
所以呢它默认等于全局的enable (若local.enable有值,就覆盖)
就这样
这是第二种写法哈
那第三种呢
就是我们先把这两个配置合并起来
合并到一个新的对象里
然后呢我们再用解构去取值
这样去取
那这种写法呢还
可以简写一下哈
我们把它在下边再写一版
等于对就这样
global local OK了
最后更新于
这有帮助吗?