Чому я отримую ...
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()
. Це +
, звичайно, коротше, але менш читабельне для тих, хто не звик до хакі-коду чи менш досвідченого.
+ ''
метод нічого для мене не зміниться в браузері Chrome , але toString()
робить.
document.location
не рядок.
Ви, мабуть, хочете використовувати document.location.href
або document.location.pathname
замість цього.
У клаузулі, якщо, використовуйте ()
. Наприклад:
stringtorray = "xxxx,yyyyy,zzzzz";
if (xxx && (stringtoarray.split(',') + "")) { ...
document.location
є об’єктом. Спробуйте:var string=document.location.href