![](/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.