Supponiamo di avere la seguente funzione di esempio non funzionante in uno script di app di google. La funzione è progettata per essere chiamato da un foglio di Google con un argomento stringa:Come si passa un argomento al debugger di script di Google Apps?
function myFunction(input) {
var caps = input.toUpperCase()
var output = caps.substrin(1, 4)
return output
}
Anche se questo script di esempio dovrebbe rompere sulla linea 3 quando si seleziona myFunction e premere il debug, in quanto non esiste tale metodo come "substrin ()," si romperà sulla linea 2, perché non si può mettere definito in tutte le protezioni:
TypeError: Cannot call method "toUpperCase" of undefined. (line 2, file "Code")
domanda: c'è un modo ufficiale per passare una stringa in un google-apps Script per il test/debug senza eseguire una funzione aggiuntiva
function myOtherFunction() {
myFunction("testString")
}
e debug che?
Quindi questo scegli 'test' se l'input inizia come indefinito, ma altrimenti usa l'input? Come decide quale usare? E non c'è l'interfaccia utente di Google per questo? – Menasheh
Sì. Aggiungi un Logger.log (output) prima di tornare per essere in grado di visualizzare l'output –
input = input || 'test' è una scorciatoia per se (! input) input = 'test'; il logico o ("||") converte l'input in vero o falso, e se falso, sceglie il secondo operando. Nota, tuttavia, che 0 valuterà in falso, quindi se viene passato 0, l'input sarà 'test'. È possibile evitare questo utilizzando: input = (input! == undefined)? input: 'test'; D'altra parte, * any * string testerà come vero: ("", "0", "false", "undefined") valuteranno tutti su true. – HardScale