2015-05-31 55 views
0

我是新來的Javascript,我不明白爲什麼我得到這段代碼的錯誤。請幫我理解我錯了什麼語法。Javascript函數未定義的錯誤代碼

var isEven = function(number){ 
    if(number % 2 = 0){ 
     return true; 
    } else { 
     return false; 
    }; 
}; 

isEven(5); 
+1

你是在什麼瀏覽器中運行的?在Chrome中,至少它在控制檯中給出了一個相當明顯的錯誤信息:'在作業中左手邊無效' – CodingIntrigue

+1

@Rraham這是一個codecademy的教程 - 我不熟悉如何響應錯誤消息 - 但現在我'知道這將意味着什麼 – Justin

回答

2

變化

if(number % 2 = 0) 

if(number % 2 === 0) 

,因爲你想測試,如果號碼的模2沒有餘數。你寫的是一個非法的作業。

+0

謝謝!我一直忘記這來自VBA背景。非常感激。 – Justin

1
(number % 2 = 0) 

應該是

(number % 2 == 0) 

(number % 2 === 0) 

一個等號是分配,雙等號 「等於」。

更多信息:

三重等號匹配類型和值。 (這是一個好習慣養成使用時可能。)類型有像「數字」,「對象」,「串」等

(number % 2 == 0) // true 
(number % 2 == "0") // true 
(number % 2 === 0) // true 
(number % 2 === "0") // false 

否則,可能==與其他事物的計算機認爲零工作,可能爲空,可能是空引號,或者可能不是,JS打字中有太多警告,===可以防止大部分類型的頭痛。

1

您在if語句中使用了賦值運算符而不是等號運算符。這會導致JavaScript錯誤,因爲操作符左側的值不是變量,而是表達式。

你想要做的是檢查平等。爲此,請在您的if語句中將=更改爲===

if (number % 2 === 0)