如何测试传递给函数的变量?

时间:2010-03-03 12:00:23

标签: javascript variables

快速提问,我正在尝试将值传递给变量,然后在变量设置为特定的情况下运行函数。我该怎么做?

我有以下示例,如果变量类型设置为1,我想将值名称赋值给表单字段。

function test(name,type) {
  if (type=1) {
    document.myform.name.value = name;
  }
}

和html正文中的链接:

<a href="javascript:test('myname','1');">FILL IN MY NAME</a>

我也试过以下但没有运气:

function test(name,type) {
  var checktype = type;
  if (checktype = 1) {
    document.myform.name.value = name;
  }
}

我很确定这样的事情是可能的,只是不确定我做错了什么。

8 个答案:

答案 0 :(得分:3)

试试这个:

function test(name,type) {
  var checktype = type;
  if (checktype == 1) {
    document.myform.name.value = name;
  }
}

您错过了==

答案 1 :(得分:2)

您想使用==,而不是=。使用单个符号将值1赋给变量checktype,而不是测试相等性:

function test(name,type) {
  if (type == 1) {
    document.myform.name.value = name;
  }
}

答案 2 :(得分:2)

要避免此类错误,请尝试执行此操作。

function test(name,type) {
  if (1 == type) {
    document.myform.name.value = name;
  }
}

在这种情况下,如果您输入错误,1 =键入,那么您会收到错误并找到正确的方法。

答案 3 :(得分:2)

如果变量未传递给函数参数,则参数地址将为Null。因此,您需要使用函数内的if语句检查地址。即:

bool flag(int & value)
{
  if (&value == NULL) {
      return false;
  }
  else {
      return true;
  }
}

答案 4 :(得分:1)

Javascript使用==进行相等性检查。

答案 5 :(得分:1)

function test(name,type) {
  if (type === "1") {
    document.myform.name.value = name;
  }
}

无需在函数内部使用其他变量来存储值。如果你知道变量的类型,也可以使用===' instead of ==`。

参见 Strict equal

  

如果操作数是,则返回true   严格相等(见上文)没有   类型转换。

答案 6 :(得分:1)

您需要使用comparison operator代替assignment operator

function test(name, type) {
  if (type == 1) {
    document.myform.name.value = name;
  }
}

如果您正在使用赋值运算符,则整个表达式将计算为指定的值。这意味着type = 1评估为等于 true 1,并且始终满足分支条件。

答案 7 :(得分:0)

function test(name,type) {
  if (type==1) {
    document.myform.name.value = name;
  }
}