灵感闪现
某天,正在认真的敲代码,看着刚刚写下的这行代码,突发奇想,如果逆向思维去写这行代码会是什么结果。
「一生二,二生三」,我从一行代码联想到数行 JS 代码,何不试试看?
于是,接下来的故事,顺其自然的发生了。接下来的文字,也自然而然的被创作了出来。
文章速读
本文从正向和逆向两个不同的思维点出发,实验了几个不同 JS 功能。
阅读文章,可以有以下收获:
JS 实验开始
includes 不是一劳永逸的法子?
编程欢乐小剧场
一:年轻人,为何唉声叹气。
某:代码改漏了,太不严谨了。
一:哪里,我看看。
某:这里,表单里新增一个表单项,结果条件判断漏加了。
一:确实,分散的条件判断就会有漏改的风险。
某:有改善的方法不。
一:当然。
某:键盘奉上。
一种情况
合并多个条件判断,是使用 includes 最常见的用法。
如下的功能中,需要判断输入的字符串是否包含作者自己的名字。
function func(name) {if (name === 'ye' || name === 'yi') {return 'self';}return 'other';
}
let nameStr = 'zhang';
let res = func(nameStr);
console.log(res); // 'other'
如果再增加一个判断,是否有作者好友的名字。条件会不断增加,不优雅且容易漏掉。
includes 判断一个数组是否包含一个指定的值,如果包含则返回 true,否则返回 false。
function func(name) {let list = ['ye', 'yi', 'shang', 'ying', 'yan'];if (list.includes(name)) {return 'self';}return 'other';
}
let nameStr = 'shang';
let res = func(nameStr);
console.log(res); // 'self'
只需要维护 list 数组即可,不需要不停增加判断条件。这个功能用法还挺常见常用的。
但是用了它,不代表代码可以一劳永逸,因为还有一种情况,不仅增加了判断条件,还增加了条件中需要判断的项。