如何检查一个值是否为NULL或在kickout.js中未分配?

pcb*_*abu 5 javascript knockout.js

假设在此示例中,firstName未设置并且 lastName分配了一个值。如何检查该值是否已分配。

function AppViewModel() {
    this.firstName = ko.observable();
    this.lastName = ko.observable('Smith');
}
Run Code Online (Sandbox Code Playgroud)

哪种方法最好?这些会工作吗?

   if(lastName  == '')
       //do something
Run Code Online (Sandbox Code Playgroud)

要么

   if(lastName)
       //do something
Run Code Online (Sandbox Code Playgroud)

要么

   if(lastName  == null)
       //do something
Run Code Online (Sandbox Code Playgroud)

请帮忙。

Suc*_*mar 5

您可以像这样检查:

if(lastName  != undefined  && lastName().length > 0 ){

// do something else.
}
Run Code Online (Sandbox Code Playgroud)

编辑:您必须将其lastName作为函数调用,因为可以读取其当前值。


jos*_*ode 5

我知道OP的问题/示例在JavaScript中,但是由于标题的缘故,我偶然发现了这个问题:

如何检查一个值是否为NULL或在kickout.js中未分配?

这也可以在视图中非常简单地进行检查:(示例来自此处的 Knockout示例代码):

<div data-bind="if: capital">
      Capital: <b data-bind="text: capital.cityName"> </b>
 </div>
Run Code Online (Sandbox Code Playgroud)

在此示例中,有一个名为capital的对象,并且该if语句默认情况下检查是否为null。如果Capital不为null,则执行第二行,否则跳过它。这对于简单的情况确实非常有效。