项目中遇到的有趣的“BUG”,这样做比删库跑路更高明

如果您也有遇到过特别“有趣”的代码“BUG”,希望您在评论区分享

问题1、条件判断

当 a 不等于 1 或者 不等于 2 的时候, 执行一段操作

1
2
3
4
// 这个条件 永真,有时候 一眼甚至两三眼 都看不出来
if(a !== 1 || a !== 2) {
// todo something
}

问题2:重写父方法问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
组件特别多的时候,
改一下 基类父组件 的普通函数为箭头函数,
然后在子组件中 写一个同名的 普通函数
*/
class Parent {
todo = () => {
console.log('p 1')
}
}

class Child extends Parent {

todo() {
console.log('s 1')
}
}

const s1 = new Child()
// 子类普通函数无法覆盖父类的箭头函数
s1.todo() // p 1

问题3:字符串 查找/包含

通过 String.includes判断是否包含

1
2
3
4
var str1 = ''
var str2 = 'a'
// 当 str1 为 '' 时,为 true
str2.includes(str1) // true

问题4:结构赋值别名写错

1
2
3
4
5
const obj = {a: 1, b: 2}

// 本来是要取 a 值, 但是 写错 成 A
const {A: aa} = obj


持续更新中。。。