2015-06-21 81 views
-4

我想檢查使用JavaScript的變量中的值與if條件。在這些情況下,變量location的值是var location="Banglore"。但每次去其他部分。使用javascript檢查變量中的值

我的代碼是

var location="Banglore"; 
    if(typeof(location)== "Bangalore") 
    { 
     var data_file = "http://api.openweathermap.org/data/2.5/ 
     find?  q=Bangalore&units=metric"; 
    } 
    else if(typeof(location) == "Chennai") 
    { 
     var data_file = "http://api.openweathermap.org/data/2.5/ 
     find?q=Chennai&units=metric"; 
    } 
else if(typeof(location) == "Cochi") 
    { 
     var data_file = "http://api.openweathermap.org/data/2.5/ 
     find? q=Cochi&units=metric"; 
    } 
else 
    { 
     var data_file = "http://api.openweathermap.org/data/2.5/ 
     find?q=Pune&units=metric"; 
    } 

在這些代碼總是去別的部分,即位置==普納condition.Any身體幫我

+2

這可能只是被複制錯誤,但在你的第一行一個錯字。我認爲它應該讀取'var location =「Bangalore」'。 – MrGrinst

+5

那麼,'typeof'將** **不會返回''Chennai'''。你認爲'typeof'的作用是什麼?提示:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof –

+1

您也可能與預定義的全局'window.location'發生衝突。如果您顯示的代碼位於全局名稱空間中,請將您的「位置」變量更改爲不同的名稱。 – jfriend00

回答

0

要設置位置爲「班加羅爾」和「如果'條件是'班加羅爾'。

+1

加上'typeof'的東西,並且可能查詢中的空格也是不正確的。 – Xufox

1

問題是你有錯誤的檢查值。

var location="Banglore"; 
    if(location == "Bangalore") // extra `a` after `g` 
    { 
     var data_file = "http://api.openweathermap.org/data/2.5/ 
     find?  q=Bangalore&units=metric"; 
    } 
    else if(typeof(location) == "Chennai") // typeof gives here "string" as result 
     //so your condition evaluates as 
     // "string" == "Chennai", and so on for the rest, 
     // hence it always goes to else block 
    { 
     var data_file = "http://api.openweathermap.org/data/2.5/ 
     find?q=Chennai&units=metric"; 
    } 

也沒有聲明變量局部塊裏面,如果你要使用它,鑑於外塊,這裏是塊的if..else內部聲明data_file。第一

1

第一件事,你已經比較錯誤的語法,

var location="Banglore"; 
    if(location == "Bangalore") // this should be location == "Banglore" 
    { 

第二件事是,

爲什麼使用typeof()檢查其他城市?據我所知,你應該使用

var location="Banglore"; 
    if(location == "Banglore") 
    { 
     var data_file = "http://api.openweathermap.org/data/2.5/ 
     find?q=Bangalore&units=metric"; 
    } 
    else if(location == "Chennai") 
    { 
     var data_file = "http://api.openweathermap.org/data/2.5/ 
     find?q=Chennai&units=metric"; 
    } 
else if(location == "Cochi") 
    { 
     var data_file = "http://api.openweathermap.org/data/2.5/ 
     find?q=Cochi&units=metric"; 
    } 
else 
    { 
     var data_file = "http://api.openweathermap.org/data/2.5/ 
     find?q=Pune&units=metric"; 
    } 

注意:您可能必須刪除查詢中的空白。

1

您應該使用switch語句來代替,這就是它的意思了......

var location = "Banglore", 
    data_file = "http://api.openweathermap.org/data/2.5/find?units=metric&q="; 

switch (location) { 
    case "Bangalore": 
     data_file += "Bangalore"; 
     break; 
    case "Chennai": 
     data_file += "Chennai"; 
     break; 
    case "Cochi": 
     data_file += "Cochi"; 
     break; 
    default: 
     data_file += "Pune"; 
}