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.location
adalah objek Lokasi . Default .toString()
mengembalikan lokasi dalam bentuk string, sehingga penggabungan akan memicunya.
Anda juga bisa menggunakan document.URL
untuk 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.href
atau document.location.pathname
sebaliknya.
Dalam klausul jika, gunakan ()
. Sebagai contoh:
stringtorray = "xxxx,yyyyy,zzzzz";
if (xxx && (stringtoarray.split(',') + "")) { ...
document.location
adalah sebuah objek. Coba:var string=document.location.href