Почему я получаю ...
Uncaught TypeError: string.split не является функцией
... когда я бегу ...
var string = document.location;
var split = string.split('/');
Почему я получаю ...
Uncaught TypeError: string.split не является функцией
... когда я бегу ...
var string = document.location;
var split = string.split('/');
Ответы:
Измените это ...
var string = document.location;
к этому...
var string = document.location + '';
Это потому, что document.locationэто объект Location . По умолчанию .toString()местоположение возвращается в строковой форме, поэтому конкатенация вызовет это.
Вы также можете использовать document.URLдля получения строки.
toString()вместо хакерской конкатенации?
+ ''довольно распространенный прием для приведения строк, но некоторые люди предпочитают этот toString()метод. Я бы не считал это более хакерским, чем использование унарных +чисел для преобразования чисел.
parseInt()и parseFloat(). Также есть Number(). +Короче конечно, но менее читабельным для кого - то не используется для Hacky кода или менее опытных.
+ ''метод ничего не меняет в браузере Chrome, но меняет toString().
запустить это
// you'll see that it prints Object
console.log(typeof document.location);
ты хочешь document.location.toString()илиdocument.location.href
document.location не строка.
Вы, вероятно, захотите использовать document.location.hrefили document.location.pathnameвместо него.
В clausule if используйте (). Например:
stringtorray = "xxxx,yyyyy,zzzzz";
if (xxx && (stringtoarray.split(',') + "")) { ...
document.locationэто объект. Попробуйте:var string=document.location.href