Mengapa saya mendapatkan ...
TypeError Tidak Tertangkap: string.split bukan sebuah fungsi
... saat aku lari ...
var string = document.location;
var split = string.split('/');
Mengapa saya mendapatkan ...
TypeError Tidak Tertangkap: string.split bukan sebuah fungsi
... saat aku lari ...
var string = document.location;
var split = string.split('/');
Jawaban:
Ubah ini ...
var string = document.location;
untuk ini...
var string = document.location + '';
Ini karena document.locationadalah objek Lokasi . Default .toString()mengembalikan lokasi dalam bentuk string, sehingga penggabungan akan memicunya.
Anda juga bisa menggunakan document.URLuntuk mendapatkan string.
toString()daripada rangkaian hacky?
+ ''adalah trik yang cukup umum untuk pemaksaan tali, tetapi beberapa orang lebih suka toString()metode ini. Saya tidak akan menganggapnya lebih hacky daripada menggunakan unary +untuk konversi angka.
parseInt()dan parseFloat(). Ada juga Number(). Ini +lebih pendek tentu saja, tetapi kurang dapat dibaca untuk seseorang yang tidak terbiasa dengan kode hacky atau kurang berpengalaman.
+ ''metode tidak mengubah apa pun bagi saya di Chrome Browser tapi toString()tidak.
jalankan ini
// you'll see that it prints Object
console.log(typeof document.location);
Anda ingin document.location.toString()ataudocument.location.href
document.location bukanlah sebuah string.
Anda mungkin ingin menggunakan document.location.hrefatau document.location.pathnamesebaliknya.
Dalam klausul jika, gunakan (). Sebagai contoh:
stringtorray = "xxxx,yyyyy,zzzzz";
if (xxx && (stringtoarray.split(',') + "")) { ...
document.locationadalah sebuah objek. Coba:var string=document.location.href