5

假設我在google-apps腳本中有以下破解示例函數。功能旨在被從一個谷歌片與字符串參數稱爲:如何將參數傳遞給Google Apps腳本調試程序?

function myFunction(input) { 
    var caps = input.toUpperCase() 
    var output = caps.substrin(1, 4) 
    return output 
} 

雖然該示例腳本應該打破在第3行當選擇myFunction的並按調試,因爲沒有這樣的方法如「substrin( )「,這將打破第2行,因爲你不能把不確定的全部大寫:

TypeError: Cannot call method "toUpperCase" of undefined. (line 2, file "Code")

問: 是否有一個字符串傳遞給一個官方的方式一個谷歌,Google Apps腳本測試/調試不需要額外的功能

function myOtherFunction() { 
myFunction("testString") 
} 

和調試?

回答

6

您編寫的函數確實需要一個參數,除了在函數本身中包含默認值之外,沒有辦法避免這種情況。看下面的例子

function myFunction(input) { 
    input= input||'test'; 
    var caps = input.toUpperCase(); 
    var output = caps.substrin(1, 4); 
    return output; 
} 
+0

所以這將選擇「測試」,如果輸入開始未定義,但否則使用輸入?它如何決定使用哪一個?並沒有谷歌用戶界面呢? – Menasheh

+0

是的。在返回之前添加Logger.log(輸出)以便能夠可視化輸出 –

+0

input = input ||如果(!input)input ='test','test'是 的簡寫。 邏輯或(「||」)將輸入轉換爲true或false,如果爲false,則選擇第二個操作數。 但是,請注意,0將評估爲false,因此如果通過0,輸入將是'測試'。 您可以通過以下方式避免此問題: input =(input!== undefined)?輸入:'test';另一方面,* any *字符串將測試爲true: (「」,「0」,「false」,「undefined」)將全部評估爲true。 – HardScale