簡體   English   中英

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 = 22分配給變量num JavaScript分配返回分配的值。 分配的結果是返回了2號。 表達式的最終結果if (num = 2)等於if (2) ,它等於if (true)因為javascript會將0視為false,並將任何非零值視為true。 這就是為什么在第一種情況下,您看到“ Testing Fail打印到控制台的原因。

在第一種情況下, =是賦值運算符

第二,==是邏輯運算符。

實際上,最好使用===代替==

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM