2015-07-10 50 views
1

我使用下面的代碼:如何在getURLParameter(name)函數中設置默認值?

<script type="text/javascript"> 

function getURLParameter(name) { 
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null; 
} 
</script> 

然後我用在jAlert URL參數彈出對話框如下:

<script> 
alert('Warning', 'Your'+getURLParameter('model') + 'is outdated.'); 
</script> 

如何指定,如果URL參數名稱是例如「Generic」或「Undefined」,將其設置爲某個默認參數?

由於

+0

你的意思是輸入參數的名稱?還是功能 – BhavO

+0

的返回值添加如果檢查語句,如果名字是!名稱,然後將其設置某事 – BhavO

回答

0

這將檢查name PARAM是否設定與否;如果沒有,它就會默認值:

function getURLParameter(name) { 

    if (!name) 
     name = 'default Value'; 

    return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null; 
} 
0
  • name = name || 'default value';

是一種習慣,並會爲你節省幾個按鍵(即if(!){}||)。

如果您接受了許多JavaScript的falsy值,它就沒用了,也不是if(!name){ name = 'default value'; }

如果您需要接受falsy值,以下是對於正確的版本是

  • if(typeof name === 'undefined'){ name = 'default value'; }

function defaultArg(name) { 
 
    name = name || '<strong>my default name</strong>'; 
 

 

 
    document.write("My name is " + name + '</br>\n'); 
 
} 
 

 
defaultArg(); 
 
defaultArg(undefined); 
 
defaultArg(false); 
 
defaultArg(null); 
 
defaultArg(0); 
 
defaultArg("Peter"); 
 
defaultArg(1); 
 
defaultArg('null'); 
 
defaultArg('undefined');
function defaultArg2(name) { 
 
    if(typeof name === 'undefined') name = '<strong>my default name</strong>'; 
 

 

 
    document.write("My name is " + name + '</br>\n'); 
 
} 
 
document.write('</br>') 
 
defaultArg2(); 
 
defaultArg2(undefined); 
 
defaultArg2(false); 
 
defaultArg2(null); 
 
defaultArg2(0); 
 
defaultArg2("Peter"); 
 
defaultArg2(1); 
 
defaultArg2('null'); 
 
defaultArg2('undefined');