为什么!=工作而且= =不?

时间:2013-02-28 15:35:23

标签: javascript

这是我的代码:

  if (document.getElementById("hiddenButton").style.visibility != "visible") {
     document.getElementById("hiddenButton").style.visibility = "visible";
  }
  else {
     document.getElementById("hiddenButton").style.visibility = "hidden";

  }

当您单击另一个按钮时,此代码显示并隐藏HTML按钮。

但是我的问题是为什么代码可以工作,而这不是:

  if (document.getElementById("hiddenButton").style.visibility = "hidden") {
     document.getElementById("hiddenButton").style.visibility = "visible";
  }
  else {
     document.getElementById("hiddenButton").style.visibility = "hidden";

  }

6 个答案:

答案 0 :(得分:21)

您的情况实际上是一项任务:

if (document.getElementById("hiddenButton").style.visibility = "hidden") {

您应该使用==

if (document.getElementById("hiddenButton").style.visibility == "hidden") {

答案 1 :(得分:10)

=是一项任务操作。

!=是一个不等式算子。

==是一个相等运算符。

我猜您需要的是==运算符。所以用以下代码替换你的代码:

if (document.getElementById("hiddenButton").style.visibility == "hidden") {

答案 2 :(得分:6)

JS Comparison operators

==      is equal to 
===     is exactly equal to (value and type)
!=      is not equal

例如:

var x = 1;  //define and assigned and now x equal to 1
x = 3;        //now x equal to 3

if( x == 4) {
    //you won't see this alert
    alert('Hello, x is 4 now');
} else {
    //you will see this alert
    alert('Hello, x hasn not been changed and it is still ' + x.toString());
}

答案 3 :(得分:5)

我认为你的问题是你将赋值运算符(=)与等号运算符(==或===)混淆。赋值运算符将左侧设置为等于右侧的任何值,并且相等运算符(==或===)实际上测试是否相等。

答案 4 :(得分:3)

这是因为简单的“=”不适用于比较。请改用“==”。

答案 5 :(得分:2)

Left = Right

这意味着,“无论右侧是什么,都把它作为左侧的值。”

所有比较和其他检查都是用两个符号完成的,以便在您只是想检查一个值时限制歧义和不正确的变量赋值。

!= means not equal to
== means equal
=== means equal and same object/datatype
= means "Assign the right side (Or what it evaluates to) to the variable on the left