![](/img/trans.png)
[英]confusion over simple variable declaration jQuery “$variable” vs javascript “var”
[英]Javascript var declaration vs equivalent
这可能是疯狂的疯狂……但我仍在学习。
让我们从第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,然后将其设置为等于1。然后我说,如果num等于2,则console.log会写“ testing failed”-否则写“我完成了我的第一门课程!” ...
它没有解释为什么我的第一次尝试没有奏效。 我声明变量等于1,但随后在我的if / else语句中说,如果变量等于2,则执行条件。 为什么我不能两次声明一个语句,或者至少不能在一个条件语句中声明?
我在这里缺少逻辑……可能很简单,但我正在学习。
=
用于分配,而==
用于逻辑运算符(比较:等于)。 因此,在第一种情况( num = 2
)中,您将num
值分配给了2
(赋值返回值2
,因此被评估为true
),在第二种情况( num == 2
)中,您检查了num
等于2
(被评估为false
)。
PS:还有===
逻辑运算符,用于检查值是否完全相等(等于值和等于类型)。
仅仅因为“ =”,在第二次尝试中,您使用了“ ==”并且可以工作。
此“ =”用于分配,例如:
var num=2;
例如,此“ ==”用于比较:
if(num==2)
因此,您不能使用赋值指令来评估相等性,希望您得到它:D,祝您编程愉快
其他人已经指出的区别: 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
打印到控制台的原因。
在第一种情况下, =
是赋值运算符
第二,==是逻辑运算符。
实际上,最好使用===
代替==
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.