如果语句运行在false?

时间:2010-09-01 11:27:29

标签: javascript

使用javascript

我有一个功能

function test(variable)
{
  if(variable != 'undefined')
  {
     console.log('variable is not set');
     console.log('variable', where); 
  }
}

我使用test();

来称呼它

然后我在控制台得到了    '哪里没有设置'     'where设置为undefined'

为什么?

<小时/>的更新 这个功能不是我实际使用的。

如果变量未定义,函数不应该执行任何操作。

示例是显示if语句不起作用。

但问题实际上是我使用if variable != 'undefined'而不是variable != undefined

4 个答案:

答案 0 :(得分:6)

您在同一个console.log分支中同时进行了if次呼叫。这样做:

function test(variable)
{
  if(variable != 'undefined')
  {
     console.log('where is not set');
  }
  else
  {
     console.log('where is set as ', where); 
  }
}

除此之外:如果要测试变量是否未定义,请使用typeof operator测试类型:typeof variable != 'undefined'。目前,您只测试variable是否不等于字符串值'undefined'

答案 1 :(得分:4)

您正在测试variable是否具有"undefined"字符串内容

你可能想要的是

if(typeof variable != 'undefined')

其余的功能对我来说也没有意义。 where来自哪里?

答案 2 :(得分:-1)

我不太明白你的问题,但尝试使用不同的参数名称而不是“变量”。看看错误是否仍然存在。

另外调用这样的函数:test(paramterValueHere);

最佳

答案 3 :(得分:-1)

试试这个;

if(variable !== 'undefined')