Volevo controllare se una variabile in uno Script di Apps era una stringa, ma ho trovato che instanceof non restituiva true quando la variabile era in effetti una stringa. Il seguente test:instanceof String non si comporta come previsto in Google Apps Script
function test_instanceof() {
var a = "a";
Logger.log('"a" is ' + ((a instanceof String) ? '' : 'not ') + 'a String');
var b = String("b");
Logger.log('String("b") is ' + ((b instanceof String) ? '' : 'not ') + 'a String');
}
registra questi due messaggi:
"a" is not a String
String("b") is not a String
I documenti non sono chiare sul sottoinsieme di ECMAScript che è supportato, anche se apparentemente instanceof è un operatore valido e String è una valida tipo, a giudicare dal fatto che il codice eseguito senza eccezioni.
Qual è il modo appropriato per verificare il tipo di una variabile?
Doh! Ho chiaramente speso troppo tempo a scrivere Python ultimamente e ho dimenticato questo dettaglio di JavaScript. Grazie per l'aggiornamento. –