这可能是疯狂的......但我还在学习。
让我们从第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则执行条件。为什么我不能两次声明声明,或至少在条件声明中声明?
我错过了这里的逻辑......可能很简单,但我正在学习。
答案 0 :(得分:2)
=
用于赋值,==
用于逻辑运算符(比较:等于)。因此,在第一种情况下(num = 2
),您将num
值分配给2
(分配返回值2
,因此评估为true
)并且您检查的第二种情况(num == 2
)num
是否等于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 = 2
将2
分配给变量num
。 Javascript分配返回指定的值。作为分配的结果,返回了数字2
。表达式if (num = 2)
的最终结果相当于if (2)
,相当于if (true)
,因为javascript将0
视为false,将任何非零值视为true。这就是为什么在第一种情况下你看到Testing Fail
打印到控制台。
答案 3 :(得分:1)
在第一种情况下,
=
是赋值运算符
第二,==是逻辑运算符。
实际上,最好使用===
代替==
。