Bagaimana saya bisa memeriksa apakah var adalah string dalam JavaScript?
Saya sudah mencoba ini dan tidak berhasil ...
var a_string = "Hello, I'm a string.";
if (a_string typeof 'string') {
// this is a string
}
javascript
string
variable-types
vitto
sumber
sumber
Jawaban:
Anda sudah dekat:
Pada catatan terkait: centang di atas tidak akan berfungsi jika string dibuat dengan
new String('hello')
jenis yang akan digunakanObject
. Ada solusi rumit untuk mengatasi hal ini, tetapi lebih baik untuk menghindari menciptakan string seperti itu, selamanya.sumber
if(typeof(str) === typeof(String()))
The
typeof
Operator bukanlah infiks (sehingga LHS dari contoh Anda tidak masuk akal).Anda harus menggunakannya seperti itu ...
Ingat,
typeof
adalah operator, bukan fungsi. Meskipun demikian, Anda akan melihattypeof(var)
banyak digunakan di alam liar. Ini masuk akal sepertivar a = 4 + (1)
.Juga, Anda juga dapat menggunakan
==
(operator perbandingan kesetaraan) karena kedua operan adalahString
s (typeof
selalu mengembalikan aString
), JavaScript didefinisikan untuk melakukan langkah-langkah yang sama seperti yang saya gunakan===
(operator perbandingan ketat).Seperti Box9 menyebutkan , ini tidak akan mendeteksi
String
objek yang dipakai .Anda dapat mendeteksi untuk itu dengan ....
jsFiddle .
...atau...
jsFiddle .
Tetapi ini tidak akan bekerja di
window
lingkungan multi (pikirkaniframe
s).Anda dapat menyiasati ini dengan ...
jsFiddle .
Tetapi sekali lagi, (seperti Box9 menyebutkan ), Anda lebih baik hanya menggunakan
String
format literal , misalnyavar str = 'I am a string';
.Bacaan lebih lanjut .
sumber
if(myVar.toUpperCase) alert('I am a string');
? Lihat: jsfiddle.net/tb3t4nsx{ toUpperCase: '' }
Menggabungkan jawaban sebelumnya memberikan solusi ini:
atau
sumber
Ekspresi berikut mengembalikan true :
Ekspresi berikut mengembalikan true :
Ekspresi berikut menghasilkan false (sic!):
Ekspresi berikut mengembalikan true :
Cara terbaik dan benar ( imho ):
sumber
Sekarang saya percaya ini lebih disukai untuk menggunakan bentuk fungsi typeof () jadi ...
sumber
typeof
, Anda hanya mengendalikan urutan operasi dengan tanda kurung itu. Beberapa orang mungkin merasa lebih mudah dibaca dalam keadaan tertentu.filename
grup hanya satu pernyataan, dan karena itu tidak berguna dan asing. Untung jawaban ini memiliki skor 0 karena salah, menyesatkan, dan tidak membantu; akan lebih baik jika memiliki skor negatif.periksa null atau tidak terdefinisi dalam semua kasus a_string
sumber
typeof null
dantypeof undefined
tidak akan pernah kembali'string'
, itutypeof a_string
sudah cukup. Maaf untuk necropostingPendekatan pribadi saya, yang tampaknya bekerja untuk semua kasus, sedang menguji kehadiran anggota yang semuanya hanya akan hadir untuk string.
Lihat: http://jsfiddle.net/x75uy0o6/
Saya ingin tahu apakah metode ini memiliki kekurangan, tetapi telah membantu saya selama bertahun-tahun.
sumber