有时候我们为了程序代码的简洁,通常会将代码写成这样:
function toArr(value, separator = ’,‘) {
return (value || '').split(separator)
}
如果这时候,我们根据返回来的数组长度在页面上渲染出指定数量的数据框,那么总是会多出一个,因为当字符串为空的时候,我们也会得到一个有一个空字符串的数组。
不要因为有些操作是可逆的,就认为是等价的
// 可逆操作
const label = '';
label === label.split(',').join(',');
// 不等价
cons labels = '' // 标签字段,当为null或者''时表示0个标签
labels.split(',').length === 1 // 当通过split转成数组时,长度却变成了1,往往我们会当成1个标签去处理
有些bug不明显,但是认真的话,还是可以避免的