Por que estou recebendo ...
TypeError não capturado: string.split não é uma função
... quando eu corro ...
var string = document.location;
var split = string.split('/');
Por que estou recebendo ...
TypeError não capturado: string.split não é uma função
... quando eu corro ...
var string = document.location;
var split = string.split('/');
Respostas:
Mude isso...
var string = document.location;
para isso...
var string = document.location + '';
Isso ocorre porque document.location
é um objeto Location . O padrão .toString()
retorna o local em formato de string, então a concatenação irá acionar isso.
Você também pode usar document.URL
para obter uma string.
toString()
vez de concatenação hacky?
+ ''
é um truque bastante comum para coerção de strings, mas algumas pessoas preferem o toString()
método. Eu não consideraria isso mais hacky do que usar o unário +
para conversão de número.
parseInt()
e parseFloat()
. Existe também Number()
. O +
é mais curto, é claro, mas menos legível para alguém não acostumado a códigos hacky ou menos experiente.
+ ''
método não muda nada para mim no navegador Chrome, mas muda toString()
.
document.location
não é uma string.
Você provavelmente está querendo usar document.location.href
ou em document.location.pathname
vez disso.
Na cláusula if, use ()
. Por exemplo:
stringtorray = "xxxx,yyyyy,zzzzz";
if (xxx && (stringtoarray.split(',') + "")) { ...
document.location
é um objeto. Experimente:var string=document.location.href