экземпляр String не работает должным образом в скрипте Google Apps
Я хотел проверить, является ли переменная в скрипте приложения строкой, но обнаружил, что instanceof не возвращает true, когда переменная фактически является строкой. Следующий тест:
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');
}
Регистрирует эти два сообщения:
"a" is not a String
String("b") is not a String
Документы не имеют четкого представления о поддерживаемом подмножестве ECMAScript, хотя, очевидно, instanceof является допустимым оператором, а String является допустимым типом, исходя из того факта, что код выполняется без исключения.
Как правильно проверить тип переменной?