JavaScript'te bir değişkenin dize olup olmadığını kontrol etme
JavaScript'te bir değişkenin string mi yoksa başka bir şey mi olduğunu nasıl belirleyebilirim?
1539
3
JavaScript'te bir değişkenin string mi yoksa başka bir şey mi olduğunu nasıl belirleyebilirim?
Bende işe yarayan şey bu:
typeof` operatörünü kullanabilirsiniz:
Bu web sayfası]1'den örnek. (Örnek biraz değiştirilmiştir).
Bu,
new String()
ile oluşturulan dizgiler durumunda beklendiği gibi çalışmaz, ancak bu nadiren kullanılır ve[1][2]'a karşı önerilir. Arzu ederseniz, bunların nasıl ele alınacağını öğrenmek için diğer yanıtlara bakın.En iyi yol:
Bunların her biri, "new Object()" vb. gibi uygun sınıf işlevi tarafından oluşturulmuştur.
Ayrıca, Duck-Typing: "Ördeğe benziyorsa, ördek gibi yürüyorsa ve ördek gibi kokuyorsa - bir Dizi olmalıdır" Yani, özelliklerini kontrol edin.
Umarım bu yardımcı olur.
Düzenleme; 12/05/2016
Unutmayın, her zaman farklı yaklaşımların kombinasyonlarını da kullanabilirsiniz. İşte typeof ile eylemlerin çizgi içi haritasını kullanmanın bir örneği:
İşte satır içi haritaların kullanımına ilişkin daha 'gerçek bir dünya' örneği:
Bu fonksiyon bir değişkenin gerçekten var olup olmadığını anlamak için [ custom ] "type-casting" -- daha ziyade "type-/-value-mapping" -- kullanacaktır. Artık o iğrenç saçları
null
&0
arasında ayırabilirsiniz!Çoğu zaman tipi umurunuzda bile olmaz. Tiplemeyi atlatmanın bir başka yolu da Duck-Type setlerini birleştirmektir:
Hem
Number.prototype
hem de String.prototypebir
.toString() yöntemine sahiptir. Siz sadece sayının string eşdeğerinin aynı olduğundan emin oldunuz ve ardından bunuhttp
fonksiyonuna birNumber
olarak aktardığınızdan emin oldunuz. Başka bir deyişle, türünün ne olduğunu önemsemedik bile.Umarım bu size çalışacak daha fazla şey verir :)