Quería comprobar si una variable en una secuencia de comandos de aplicaciones era una cadena, pero descubrí que la instanciaof no devolvía la verdad cuando la variable era en realidad una cadena. La siguiente prueba:instanceof String no se comporta como se esperaba en 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 estos dos mensajes:
"a" is not a String
String("b") is not a String
Los documentos no están claras en el subconjunto de ECMAScript que se apoya, aunque aparentemente es un operador instanceof válido y es una cadena válida escriba, a juzgar por el hecho de que el código se ejecutó sin excepción.
¿Cuál es la forma adecuada de verificar el tipo de variable?
Doh! Claramente, he pasado demasiado tiempo escribiendo Python últimamente y olvidé este detalle de JavaScript. Gracias por el refresco –