ES6技术之“判空方案”
一、常用方案
直接判断
代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="button" onclick="testIfNull()" value="testIfNull" /> </body> <script> function testIfNull() { var wzw1 = '1'; if(wzw1)// true { console.log('正常');// 执行 } var wzw2 = ''; if(wzw2)// false { console.log('判断’‘');// 不执行 } var wzw3 = null; if(!!wzw3)// false { console.log('判断null');// 不执行 } var wzw4 if(wzw4)// false { console.log('判断undefined');// 不执行 } var wzw5 = 0; if(wzw5)// false { console.log('判断0');// 不执行 } } </script> </html>
效果
二、今日看到的ES6方案
用(wzw??'') !== '' 判断
我的解析:
对wzw进行判断,如果??是只要前面是null underfined 就取后面的值 不然取前面的
而后面的值也‘’空,而在外一成又判断不等于‘’所以这里是3种判空
分别是: null 和 undefined 和 ‘’
代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="button" onclick="testIfNull()" value="testIfNull" /> </body> <script> function testIfNull() { var wzw1 = '1'; if((wzw1??'') !== '')// true { console.log('正常');// 执行 } var wzw2 = ''; if((wzw2??'') !== '')// false { console.log('判断’‘');// 不执行 } var wzw3 = null; if((wzw3??'') !== '')// false { console.log('判断null');// 不执行 } var wzw4 if((wzw4??'') !== '')// false { console.log('判断undefined');// 不执行 } var wzw5 = 0; if((wzw5??'') !== '')// false { console.log('判断0');// 执行 } } </script> </html>
效果
总结
可以用if((value??'') !== '') 来替代 if(value || value ===0)对0进行放行
代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="button" onclick="testIfNull()" value="testIfNull" /> </body> <script> function testIfNull() { var wzw1 = '1'; if((wzw1??'') !== '')// true { console.log('正常');// 执行 } var wzw5 = 0; if((wzw5??'') !== '')// false { console.log('判断if((wzw5??\'\') !== \'\')');// 执行 } if(wzw5 || wzw5 === 0){ console.log("判断if(wzw5 || wzw5 !== 0");// 执行 } } </script> </html>
结果
* 博客文章部分截图及内容来自于学习的书本及相应培训课程,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。
* 备注:王子威
* 我的网易邮箱:wzw_1314_520@163.com