Javascript If语句从未到达else分支-“If(x=y)”

Javascript If语句从未到达else分支-“If(x=y)”,javascript,if-statement,Javascript,If Statement,我有一个奇怪的问题: 下面是一个JavaScript函数 function calculateSum() { var e2 = document.getElementById('hotel_names'); var selValue2 = e2.options[e2.selectedIndex].value; if (selValue2='1') { alert("helloworld"); } else { alert("byeworl

我有一个奇怪的问题:

下面是一个JavaScript函数

function calculateSum()
 {
   var e2 = document.getElementById('hotel_names');
   var selValue2 = e2.options[e2.selectedIndex].value;

   if (selValue2='1')
   {
   alert("helloworld");
   }
   else
   {
   alert("byeworld");
   }
//function closes
 }
它捕获HTML元素选择的选项值,并显示相应的消息…或者它应该是。问题是无论选择什么,它总是显示1

另一方面,下面的工作

function calculateSum()
     {
       var e2 = document.getElementById('hotel_names');
       var selValue2 = e2.options[e2.selectedIndex].value;

       alert(selValue2);
     }
第二个功能在每次从选项中选择选项时显示正确的数字。
你知道为什么第一个不起作用吗?

条件语句使用双等号,称为相等运算符-

  if (selValue2 == '1'){
    ...
  }
通过只使用一个变量,您实际上要做的是为变量赋值。这称为赋值运算符

selValue2 = '1'

条件语句使用称为相等运算符的双等号-

  if (selValue2 == '1'){
    ...
  }
通过只使用一个变量,您实际上要做的是为变量赋值。这称为赋值运算符

selValue2 = '1'

您需要一个相等运算符。您正在使用赋值运算符。平等是

selValue2 == '1'
任务是

selValue2 = '1'

您需要一个相等运算符。您正在使用赋值运算符。平等是

selValue2 == '1'
任务是

selValue2 = '1'

除了其他答案之外,还有一点需要补充。我建议使用===而不是==进行比较


它检查被比较的参数的值和类型,通常更快。

只需在其他答案中添加一点。我建议使用===而不是==进行比较


它检查被比较的参数的值和类型,通常更快。

可能值得注意的是,有些人采用相反的相等比较模式,以避免在输入错误时出错,例如,如果“1”==selValue2@num-这就是所谓的尤达条件:P@num-我是从一个-@pan-发生在我们当中最好的人身上:有时你需要的只是另一双眼睛:@lix看起来像是阿特伍德重新记录了那篇文章中的前30个答案可能值得注意的是,有些人采取了一种相反的平等比较模式,以避免做出错误的判断此错误与输入错误有关,例如,如果“1”==selValue2@num-这就是所谓的尤达条件:P@num-我是从一个-@pan-发生在我们当中最好的人身上:有时你需要的只是另一双眼睛:@lix看起来像是阿特伍德从那篇文章中重新记录了前30个答案