JavaScript未读取else代码中的变量值

JavaScript未读取else代码中的变量值,javascript,if-statement,Javascript,If Statement,我正在尝试打印以下JavaScript的日志。但是,脚本没有打印日志值。我突出显示了脚本在if/else代码中应该识别的变量值,但是在else之后,它不是从if/else语句外部读取$systemDate;因此,它没有记录$dueDate的值。我正在尝试以下代码: _wait(_div("/date-display .* bwc-selected/")); var $date = _getText(_div("/date-display .* bwc-selected/")); _wait(2

我正在尝试打印以下JavaScript的日志。但是,脚本没有打印日志值。我突出显示了脚本在
if
/
else
代码中应该识别的变量值,但是在
else
之后,它不是从
if
/
else
语句外部读取
$systemDate
;因此,它没有记录
$dueDate
的值。我正在尝试以下代码:

_wait(_div("/date-display .* bwc-selected/"));
var $date = _getText(_div("/date-display .* bwc-selected/"));

_wait(2000);

_log($date);

_wait(2000);


var str = ($date)

    var d = new Date(str)

        var $systemDate = (d.getUTCMonth()+1) +"/"+ d.getUTCDate() + "/" + d.getUTCFullYear();

_log('System Date is:' + $systemDate);




var $dueDate = person.$dueDate;

if ($dueDate != null)

{
    var $dueDate = person.$dueDate;

    person.$dueDate = $dueDate;

    _log('Due Date is:' + $dueDate);


}

else

{

    var $days = 90;

    var $theDate = new Date($systemDate);

    var $pregnancyDueDate = new Date($theDate);

    $pregnancyDueDate.setDate($pregnancyDueDate.getDate() + $days);



    var due = ($pregnancyDueDate);

    var n = new Date(due);

        var $dueDate =  (n.getUTCMonth()+1) +"/"+ n.getUTCDate() + "/" + n.getUTCFullYear();

    _log('Due Date is:' + $dueDate);


    person.$dueDate = $dueDate;


}

不要重新声明变量! 从

var $dueDate =  (n.getUTCMonth()+1) +"/"+ n.getUTCDate() + "/" + n.getUTCFullYear();
应该是:

$dueDate =  (n.getUTCMonth()+1) +"/"+ n.getUTCDate() + "/" + n.getUTCFullYear();
您的变量在if之前已在此处声明

var $dueDate = person.$dueDate;
最后将您的if条件更新为:

if ($dueDate != "")

因为你的单元格可以是空的,不包含空值

什么是
\u log()
?哦,天哪!!请,请阅读有关javascript变量作用域的内容。这是因为您在这两个作用域中都重新声明了变量,而这两个作用域实际上都不是精确的。Hi Weedoze-以下是日志:_log(“2017年3月16日星期四”)_wait(2000)_log(“Curam系统日期为:”+“2017年3月16日”)_log(“怀孕到期日为:+”)另一件事是,在第一个If语句中,如果脚本在脚本中找不到值,脚本将尝试从excel表中读取值,然后脚本将转到Else语句,其中脚本将调用$systemDate和90天,并进一步使用该日期。hi Loay-脚本正在读取日志('Curam System date为:'+$systemDate);然后检索$systemDate,但不在Else之后调用$systemDate。另一件事是,在第一个If语句中,脚本将尝试从excel工作表中读取值,如果脚本在脚本中找不到值,则脚本将转到Else语句,脚本将调用$systemDate和90天,并进一步使用该日期。是否尝试过输出您的系统数据以查看其是否正确?执行之前,
var$theDate=新日期($systemDate)通过输出来验证变量设置是否正确。我还有一个问题,为什么要做
var$theDate=newdate($systemDate)然后
var$pregnanceduedate=新日期($theDate)为什么不执行
var$pregnanceduedate=新日期($systemDate)直接?另一个问题是您使用的是javascript还是jquery?Loay-我使用的是javascript。我尝试在Else之后输出$systemDate,但它没有在那里打印$systemDate。它应该在Else之后打印$systemDate。