2012-07-12 75 views
22

打電話至JS功能檢查參數傳遞給Java腳本函數

alertStatement() 

功能定義

functio alertStatement(link){ 
if (link){ 
      alert('A');  
    } 

if(link!=null){ 
     alert('B');  
    } 
} 

這兩個語句在Windows包膜工作正常使用Tomcat 的,但他們沒有在生產(Linux服務器)上執行它 是否有任何其他方式來比較變量以使其工作?

我得到它的工作使用下面的Java腳本代碼:現在下面的代碼不顯示警報彈出

functio alertStatement(link){ 
if (link!==undefined){ 
    alert('A');  
    } 

因此,在過去的未定義爲我工作,由於某種原因,空比較沒有工作

+0

您看到什麼症狀會讓您覺得有問題? – 2012-07-12 22:10:38

+0

你能定義「工作正常」嗎?你期望會發生什麼? – PPvG 2012-07-12 22:18:52

+0

很抱歉的混亂,當我呼籲的窗口函數沒有參數那麼這兩個警報報表不彈出。在Linux中,我可以看到兩個警報框被彈出。 – KAPILP 2012-07-13 00:54:22

回答

50

要查看參數有使用價值,只是檢查,如果該參數是不確定的。這有兩個目的。它不僅檢查,如果事情獲得通過,但也如果有一個可用值:

function alertStatement(link) { 
    if (link !== undefined) { 
     // argument passed and not undefined 
    } else { 
     // argument not passed or undefined 
    } 
} 

有些人喜歡使用的typeof這樣的:

function alertStatement(link) { 
    if (typeof link !== "undefined") { 
     // argument passed and not undefined 
    } else { 
     // argument not passed or undefined 
    } 
} 

null是一個特定的值。 undefined是什麼,如果它沒有通過。

如果你只是想知道如果有什麼是通過與否並不在乎它的價值是什麼,你可以使用arguments.length

function alertStatement(link) { 
    if (arguments.length) { 
     // argument passed 
    } else { 
     // argument not passed 
    } 
} 
+5

的arguments.length'=== 0'表明的一個觀點是不通過警告框,所以我未定義比較。當通過alertStatement(null)或alertStatement(undefined)調用當前代碼時,它會執行第一個分支,因爲null == undefined。 – 2012-07-12 22:11:30

+3

@Mike - 你試圖解決什麼問題,我的解決方案無法解決?我不明白downvote的原因。我在測試鏈接參數是否傳遞了合法值。 – jfriend00 2012-07-12 22:12:33

+1

對於OP的具體情況'arguments.length'會工作得很好,但是這是可以測試任何具體的論點有一個很好的價值,如果你或一些其他編碼器晚些時候增加了一個說法並不需要維護一個更通用的解決方案。這也很好,所以我仍然不確定爲什麼downvote。 – jfriend00 2012-07-12 22:16:22