2017-04-17 67 views
2

我有如下JavaScript方法,我可以在方法調用中使用null作爲參數嗎?

function showMsg(id) { 
    id = id! = null && id != undefined ? id : ''; 
    //doing some task 
} 

showMsg(id)正從不同的事件稱爲具有其不需要任何參數,所以我對Onload事件如下調用此方法一定的價值,但onLoad事件ID

function onLoading(){ 
    showMsg(null); 
} 

它會導致任何問題?目前它的行爲是正確的。但是我仍然想知道在調用null作爲參數的方法時可能遇到的問題。

任何建議幫助必須讚賞。

+0

直到你有一個'null'的參數檢查它可以擁有它。 –

+0

參考http://stackoverflow.com/questions/2647867/how-to-determine-if-variable-is-undefined-or-null – Anil

+0

* id = id!= null && id!= undefined?id:''; * short id = id ||「」; –

回答

3

我可以使用null作爲方法調用參數?

簡短的回答是YES ,您可以使用null爲你的函數的參數,因爲它是JS的原始價值之一。

文檔:

你可以看到它在JavaScript null Reference

null值代表的故意沒有任何物體的價值。它是JavaScript的原始值之一。

而且你可以從文件看到:

在API的空往往是在一個對象可以預期的地方檢索但沒有對象是相關的。

換句話說,它可以代替任何其他預期的對象,特別是函數參數。

注:

雖然你可以通過null作爲函數的參數,你必須避免調用method或訪問null對象的property,它會拋出一個Uncaught ReferenceError

+1

非常感謝您的幫助 – Zia

+0

歡迎您,很高興它有所幫助。 –

0

在JavaScript中,函數的參數默認爲undefined,但如果需要, 可以將null作爲參數傳遞給JS函數。

0

您可以在函數定義中檢查null。 Javascript的功能本質上是可變的。所以,你可以選擇不帶任何參數地調用它。你所需要做的就是檢查id是否在函數內部是未定義的。一種方法是:

function showMsg(id){ 
    if(!id) { //This would check for both null and undefined values 

    }else { 
     //logic when id is some valid value 
    } 
    } 

    You should add any other checks per your requirements. This is just to mention that you don't even need to bother to pass any parameter. 
相關問題