Javascript变量声明与等价声明

Javascript变量声明与等价声明,javascript,Javascript,这可能是疯狂的空洞。。。但我还在学习 让我们来学习代码学院的课程,我在第1节第28课的低水平上学习 说明: 编写自己的if/else语句。 唯一的指示是,对语句求值的结果是一个到控制台的日志,我完成了我的第一门课程 我写道: var num = 1; if(num = 2){ console.log("Testing Fail"); } else{ console.log("I finished my first course!"); } 这不起作用。。。但是想了一会儿,我打了一针 var

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

让我们来学习代码学院的课程,我在第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,那么就执行这个条件。为什么我不能声明一个语句两次,或者至少在条件语句中声明一次

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

=用于赋值,==用于逻辑运算符比较:等于。因此,在第一种情况下num=2,您将num值分配给2赋值返回值2,因此计算结果为true;在第二种情况下num==2,您检查num是否等于2,计算结果为false


另外,还有一个===逻辑运算符,用于检查值是否完全等于value和equal type。

正是因为=,在您使用==的第二次尝试中,它才起作用

此=用于分配,例如:

var num=2;
if(num==2)
此==用于比较,例如:

var num=2;
if(num==2)
所以你不能用赋值指令来计算等式,希望你能得到:D,祝你编码顺利, =是赋值运算符

在第二种情况下,==是逻辑运算符


实际上,最好使用===而不是==

其他人已经指出了区别:第一种情况下如果num=2,第二种情况下如果num=2。但没有人指出第一个案件到底发生了什么。在第一种情况下,如果num=2,则表达式num=2将2赋值给变量num.Javascript赋值返回赋值。作为分配的结果,返回了编号2。表达式的最终结果if num=2相当于if 2,后者相当于if true,因为javascript将0视为false,将任何非零值视为true。这就是为什么在第一种情况下,您会看到测试失败打印到控制台。

@Andrew Heid:很高兴帮助您严格平等更好,只有在您关心值的类型时,否则可能会更糟。