我想比较一个值是否是“不可用”的javascript

I want to compare if a value is "unavailable" javascript

本文关键字:不可用 javascript 是否是 比较 一个      更新时间:2023-09-26

>我正在使用挖空,我想比较一个值是否不可用。在JavaScript/KNOCKOUT中有什么办法可以做到这一点吗?

<!-- ko if: User().details()[0] != undefined -->
       <p>Your defined</p>
<!--/ko-->

我已经尝试过undefined但这不起作用。有人知道我可以将其与什么进行比较,以便检查该值是否不可用?

您需要将

typeof'undefined'进行比较。例如:

<!-- ko if: typeof User().details()[0] !== 'undefined' -->
       <p>Your defined</p>
<!--/ko-->

有关此类检查,请参阅 MDN 文档。

还有一个片段可以说明这一点:

var x = {
  y: 50
};
document.getElementById('output').innerHTML = 'x.y is undefined: ' + (typeof x.y === 'undefined') + '; x.z is undefined: ' + (typeof x.z === 'undefined');
<div id="output"></div>

好吧,

而不是检查天气,有些东西是未定义的,如果您陷入困境,请始终使用with(在您的场景中为无容器)来服务器确切的目的。

视图:

<!-- ko with:$data.User1 --> 
       <p data-bind="text:$data">  defined</p>
<!--/ko-->
<!-- ko if:$data.User -->
       <p>Your defined</p>
<!--/ko-->

查看模型:

 var viewModel = {
 User: ko.observable('charlie')
 };
 ko.applyBindings(viewModel);

鉴于你可以看到我故意使用with:user1但你的代码仍然不会破坏它,只是停止向下看.如果您尝试相同的操作if则会出现 未定义的错误 。

好吧,如果您真的想继续if那么请尝试使用计算并根据您施加的条件返回真/假。 使视图更清晰

工作样品小提琴