Javascript var声明与等效

时间:2014-06-13 02:09:56

标签: javascript

这可能是疯狂的......但我还在学习。

让我们从第1课第28课开始学习代码学院的课程(因为我实际上是在那个低级别学习)。

说明: 编写自己的if / else语句。 唯一的指示是评估语句的结果是“我完成了我的第一个课程!”控制台的日志。

我写道:

var num = 1;

if(num = 2){
console.log("Testing Fail");
}
else{
console.log("I finished my first course!");
} 

这不起作用......但在思考片刻之后,我试了一下

var num = 1;

if(num == 2){
console.log("Testing Fail");
}
else{
console.log("I finished my first course!");
}

这很有用。所以。我命名我的变量num并将其设置为1.然后我说如果num等于2,那么console.log会写“测试失败” - 否则它会写“我完成了我的第一道菜!”......

这并不能解释为什么我的第一次尝试不起作用。 我声明我的变量等于1,但后来我在if / else语句中说如果我的变量等于2则执行条件。为什么我不能两次声明声明,或至少在条件声明中声明?

我错过了这里的逻辑......可能很简单,但我正在学习。

4 个答案:

答案 0 :(得分:2)

=用于赋值,==用于逻辑运算符(比较:等于)。因此,在第一种情况下(num = 2),您将num值分配给2(分配返回值2,因此评估为true)并且您检查的第二种情况(num == 2num是否等于2(评估为false)。

<强> P.S。 : 还有===逻辑运算符,用于检查值是否完全相等(等值和相等类型)。

答案 1 :(得分:2)

仅仅因为&#34; =&#34;,在第二次尝试中你使用了&#34; ==&#34;和工作。

这&#34; =&#34;用于分配,例如:

var num=2;

这&#34; ==&#34;比较例如:

if(num==2)

所以你不能用一个赋值指令来评估一个平等,希望你得到它:D,你的编码好运

答案 2 :(得分:2)

其他人已经指出了不同之处:第一种情况为if (num = 2),第二种情况为if (num == 2)。但是没有人指出第一种情况究竟发生了什么。在您执行if (num = 2)的第一种情况下,表达式num = 22分配给变量num。 Javascript分配返回指定的值。作为分配的结果,返回了数字2。表达式if (num = 2)的最终结果相当于if (2),相当于if (true),因为javascript将0视为false,将任何非零值视为true。这就是为什么在第一种情况下你看到Testing Fail打印到控制台。

答案 3 :(得分:1)

在第一种情况下, =是赋值运算符

第二,==是逻辑运算符。

实际上,最好使用===代替==