Dlaczego dostaję ...
Uncaught TypeError: string.split nie jest funkcją
... kiedy biegnę ...
var string = document.location;
var split = string.split('/');
Dlaczego dostaję ...
Uncaught TypeError: string.split nie jest funkcją
... kiedy biegnę ...
var string = document.location;
var split = string.split('/');
Odpowiedzi:
Zmień to...
var string = document.location;
do tego...
var string = document.location + '';
Dzieje się tak, ponieważ document.location
jest to obiekt lokalizacji . Wartość domyślna .toString()
zwraca lokalizację w postaci ciągu, więc konkatenacja to wyzwoli.
Możesz również użyć, document.URL
aby uzyskać ciąg.
toString()
zamiast hakerskiej konkatenacji?
+ ''
Jest dość powszechne trick strun przymusu, ale niektórzy ludzie wolą toString()
metodę. Nie uważałbym tego za bardziej hakerskie niż użycie jednostki jednoargumentowej +
do konwersji liczb.
parseInt()
i parseFloat()
. Jest też Number()
. +
Jest krótszy oczywiście, ale mniej czytelny dla kogoś nie jest używany do kodu hacky lub mniej doświadczonych.
+ ''
metoda nie robi nic dla mnie zmienić w przeglądarce Chrome, ale toString()
nie.
Uruchom to
// you'll see that it prints Object
console.log(typeof document.location);
chcesz document.location.toString()
lubdocument.location.href
document.location
nie jest ciągiem.
Prawdopodobnie chcesz użyć document.location.href
lub document.location.pathname
zamiast tego.
W klauzuli if użyj ()
. Na przykład:
stringtorray = "xxxx,yyyyy,zzzzz";
if (xxx && (stringtoarray.split(',') + "")) { ...
document.location
jest przedmiotem. Spróbuj:var string=document.location.href