instanceof String não se comporta como esperado no Script do Google Apps

Eu queria verificar se uma variável em um Script do Google Apps era uma String, mas descobri que a instância não estava retornando true quando a variável era, na verdade, uma string. O seguinte teste:

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 essas duas mensagens:

"a" is not a String
String("b") is not a String

Os documentos não são claros no subconjunto de ECMAScript suportado, embora aparentemente instanceof seja um operador válido e String seja um tipo válido, a julgar pelo fato de o código ser executado sem uma exceção.

Qual é a maneira apropriada de verificar o tipo de uma variável?

questionAnswers(1)

yourAnswerToTheQuestion