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>
结果

ES6技术之“判空方案”的更多相关文章
- Java使用Optional与Stream来取代if判空逻辑(JDK8以上)
Java使用Optional与Stream来取代if判空逻辑(JDK8以上) 通过本文你可以用非常简短的代码替代业务逻辑中的判null校验,并且很容易的在出现空指针的时候进行打日志或其他操作. 注:如 ...
- java中判空
一.概述 java中判等似乎很简单,==用来判断对象引用(内存地址)是否相同,equals用来判断值是否相同.你可以试用String对象轻松区分这一点. 那么在null判等(也就是判空操作)时呢? 可 ...
- JSTL: empty 可以减少很多繁冗的判空(转)
${empty student.name }Empty是判空为空返回的真不为空返回的是假 ${(empty student.name)? '空' : '非空'} <c:if test=" ...
- mybatis xml的无效判空
<insert id="insert"> <if test="xxxMappingEntityList != null and xxxMappingEn ...
- StringUtils工具类常用方法汇总1(判空、转换、移除、替换、反转)
Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便.最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的方 ...
- 运算符关键字。数据区别大小写。日期范围。判空的两种写法。NOT IN的两种写法。IN范围可含NULL,但NOT IN值范围不能含NULL。
比较:>,<,=,>=,<=,<>(!=) 逻辑:AND,OR,NOT 范围:BETWEEN...AND... 范围:IN,NOT IN 判空:IS NULL, I ...
- 使用foreach需要判空。
今天写代码的时候,需要遍历一个作为参数传递进来的容器, 当时顺手就加上了判空条件: if(null==list)return; 后来就像,不知道遍历(foreach)有没有帮我做这个工作: 下面看实验 ...
- jquery判空 string类型的日期比较大小
jquery 判空 if(value.length<=0){ alert("kongzhi"); } jquery string类型的日期比较大小 var startTim ...
- jeecg中excel导出字段判空处理
我们清楚,jeecg 导出 excel 采用的是 easypoi,不知道是否遇到过这种情况: 我们以一个实体属性为例: @Excel(name="问题分类",dicCode=&qu ...
随机推荐
- 【C# 】继承
背景..什么是继承? 「继承」是对象导向编程的其中一个基本属性. 它可让您定义子类,重复使用(继承).扩充或修改父类别行为. 其成员可供继承的类别称为基底类别. 继承基底类别成员的类别则称为「衍生类别 ...
- 【windows 操作系统】异步
转载:https://cloud.tencent.com/developer/article/1744660 二.异步与多线程 1)基本概念 1. 并发:在操作系统中,是指一个时间段中有几个程序都处于 ...
- 60天shell脚本计划-6/12-渐入佳境
--作者:飞翔的小胖猪 --创建时间:2021年2月21日 --修改时间:2021年2月25日 说明 每日上传更新一个shell脚本,周期为60天.如有需求的读者可根据自己实际情况选用合适的脚本,也可 ...
- Python:time与datetime
学习自: (10条消息) Python的time和datetime的简单使用_慢行的蜗牛-CSDN博客 Python之 time 与 datetime模块 - 叶灵溪&叶仙樱 - 博客园 py ...
- LeetCode-046-全排列
全排列 题目描述:给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案. 示例说明请见LeetCode官网. 来源:力扣(LeetCode) 链接:http ...
- 安卓应用修改(高德.度盘.QQ浏览器.bili)
软件介绍 高德地图修改版去广告精简版!核心功能如下: 语音包丰富.有大家最喜欢的小团团语音!测距,实时公交,足迹,限行等主流功能全都有.有完整的地铁图,且更新很快!杭州地铁3号线刚开通就更新了.有车道 ...
- 微信小程序 LIn UL的使用
网址:https://doc.mini.talelin.com/component/form/rate.html 1:将文件解压拉至小程序项目下: 2:网站复制样式代码: 3:复制至需要展示的页面 4 ...
- 微信小程序断网处理
wx.onNetworkStatusChange(function callback) 参数 function callback 网络状态变化事件的回调函数 参数 Object res 属性 类型 说 ...
- SQLserver建表规则
--执行环境:生产环境 / beta环境--备注:文件开头写上描述或者原因.项目USE database --例如 USE LZB GO CREATE TABLE Ymtable1 ( iOrderI ...
- [NOIP2013 普及组] 表达式求值
[NOIP2013 普及组] 表达式求值 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值. Input 一行,为需要你计算的表达式,表达式中只包含数字.加法运算符"+" ...