ES6技术之“判空方案”
一、常用方案
直接判断
代码
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
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>Titletitle>
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>Titletitle>
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>