如果语句的空部分始终运行(下划线)
If null part of statement always runs (Underscore)
我正在处理使用下划线的遗留代码。我正在尝试向代码中添加一个 if else 语句,该语句将检查 json 是否 return 任何值,如果没有,它将 return 没有值(因此空 div).
这是我的代码:
<% if(!_.isNull(datas.Recent)) {%>
<div></div>
<% } else { %>
<div class="contents"><%=datas.Recent%</div>
<% } %>
这段代码似乎是 运行 if 语句,这让我因为代码而感到困惑。
<% if(datas.Recent) {%>
<div class="contents><%=datas.Recent%</div>
<% } %>
return value/works 因为它是原始遗留代码的一部分。知道我在使用 if else 语句时做错了什么吗?
没有使用过任何类似的遗留代码,但在我看来
if(!_.isNull(datas.Recent))
如果为空, 将 return 为假。如果我是编写代码的人,如果输入为空,则 isNull return 为真,并且它前面有一个非标志。
编辑:如果我没看错,将其更改为
if(_.isNull(datas.Recent))
会修复它。
您的 datas.Recent
可能是某个 falsey 值,但不为空。如果它是 false
,一个空字符串,或者(很可能)undefined
,它是假的,但不是空的。例如:
var notanull = false;
console.log(!notanull); // true
console.log(notanull === null); // false
console.log(!_.isNull(notanull)); // false
更有可能的是,您正在处理一个尚未赋值的对象 属性。那将是 undefined
.
var obj = {one: 'two'};
console.log(obj.three); // undefined
console.log(typeof(obj.three)); // 'undefined'
console.log(!obj.three); // true
console.log(obj.three === null); // false
console.log(_isNull(obj.three)); // false
我正在处理使用下划线的遗留代码。我正在尝试向代码中添加一个 if else 语句,该语句将检查 json 是否 return 任何值,如果没有,它将 return 没有值(因此空 div).
这是我的代码:
<% if(!_.isNull(datas.Recent)) {%>
<div></div>
<% } else { %>
<div class="contents"><%=datas.Recent%</div>
<% } %>
这段代码似乎是 运行 if 语句,这让我因为代码而感到困惑。
<% if(datas.Recent) {%>
<div class="contents><%=datas.Recent%</div>
<% } %>
return value/works 因为它是原始遗留代码的一部分。知道我在使用 if else 语句时做错了什么吗?
没有使用过任何类似的遗留代码,但在我看来
if(!_.isNull(datas.Recent))
如果为空,将 return 为假。如果我是编写代码的人,如果输入为空,则 isNull return 为真,并且它前面有一个非标志。
编辑:如果我没看错,将其更改为
if(_.isNull(datas.Recent))
会修复它。
您的 datas.Recent
可能是某个 falsey 值,但不为空。如果它是 false
,一个空字符串,或者(很可能)undefined
,它是假的,但不是空的。例如:
var notanull = false;
console.log(!notanull); // true
console.log(notanull === null); // false
console.log(!_.isNull(notanull)); // false
更有可能的是,您正在处理一个尚未赋值的对象 属性。那将是 undefined
.
var obj = {one: 'two'};
console.log(obj.three); // undefined
console.log(typeof(obj.three)); // 'undefined'
console.log(!obj.three); // true
console.log(obj.three === null); // false
console.log(_isNull(obj.three)); // false