JavaScript的;检查变量是1还是0

时间:2010-11-10 11:29:59

标签: php javascript

我在Javascript中使用一个变量,它将通过Php设置,例如var usesInterview = <?php echo 1;?>

如果没有,则var usesInterview = <?php echo 0;?>

我在代码中应该如何处理这个问题?将有一个If语句来检查变量并确定要采用的路由。

我已尝试使用typeof() == 1,当我将其设置为0时,它仍会执行例程,就好像它在1中一样。

4 个答案:

答案 0 :(得分:3)

为什么不用javascript设置它:

usesInterview = 1;

即使您使用PHP设置它,也可以像这样检查:

if (usesInterview === 1){
  // variable is equal to 1
}
else if (usesInterview === 0){
  // variable is equal to 0
}

请注意===检查类型以及。如果您不想检查类型,则需要使用==,如下所示:

if (usesInterview == 1){
  // variable is equal to 1 or "1" or true
}
else if (usesInterview == 0){
  // variable is equal to 0 or "0" or "" or false
}

如果您确定类型以及,则应避免使用后一种方法。

更多信息:

答案 1 :(得分:1)

在这种情况下,

typeof将返回值的类型 - "number"。您正在使用非严格的相等性检查(==),因此"number" == 1true

只需使用type-strict相等运算符(===)检查值:

if (usesInterview === 1) {
    // do something
}
else if (usesInterview === 0) {
    // do something else
}

https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comparison_Operators了解有关JavaScript比较运算符的详情。

答案 2 :(得分:1)

你有很多方法可以做到......就是

var usesInterview = <?php echo [0|1];?>
usesInterview ? goingTrueWay() : goingFalsegWay();

<?php echo [0|1];?> ? goingTrueWay() : goingFalseWay();

或类似的东西:

var waysCollection = {
    0: function () {...} //routine for usesInterview == 0
    1: function () {...} //routine for usesInterview == 1
}
waysCollection[<?php echo [0|1];?>]();

你也可以使用其中一个早期建议:

if (<?php echo [0|1];?>) {
  // truthy branch
} else {
  // falsy branch
}

BTW,如果您希望usesInterview是布尔值,是/否触发器, - 使用true / false而不是0 / 1。以后更容易阅读和理解。对于前

var usesInterview = <?php echo [false|true];?>
if (usesInterview) {
  //do this if `true`
} else {
  //do this if `false`
}

答案 3 :(得分:0)

usesInterview为1时,它是truthy。所以它很简单:

if (usesInterview) {
  // truthy branch
} else {
  // falsy branch
}