2016-07-22 22 views
2

我想設置一個參數來知道調用某個端口時要使用哪個uri。有條件的三元運算符給出錯誤:期望賦值或函數調用,而是在設置變量時看到一個表達式

這裏是我的代碼:

var portConfig = '443'; 
    (portConfig === '443') ? uri = 'wss://' : uri = 'http://'; 
    console.log(uri); 
    var Ip = uri + "hereis.myurl.com"; 
    var port = portConfig; 
    console.log(Ip); 

我收到以下錯誤:

Expected an assignment or function call and instead saw an expression

我甚至已經設置了URI的是一個函數種皮TESTB但發生同樣的錯誤裏面。我已經讀過這個問題,看起來像是一個錯誤的錯誤。我應該使用if語句 - 它工作正常嗎?

+0

三元不能包含分配新建分配FY,返回值可以然而被分配。 – adeneo

回答

4

每個文檔,正確的方法是:

uri = (portConfig === '443') ? 'wss://' : 'http://'; 

它確實期望轉讓,不表達。

實際上,您使用的方式可以在沒有瀏覽器錯誤的情況下進行瀏覽和分析,因爲分配會返回指定的值。但這不是推薦的方式,因爲三元運算符的設計目的是爲了返回值(即使您之後不使用該值,它們也會始終返回值),與if()條件不同,並且認爲它不像您一樣使用它使用if()

+0

芭蕾舞......這讓人很有意義。我現在完全理解它。謝謝!!! –

2

這是你應該怎麼寫呢

uri = (portConfig === '443') ? 'wss://' : 'http://'; 
相關問題