2013-05-28 23 views
21

JavaScript'te bir dizeyi aşağıdaki yollarla bildirebilirim;JavaScript'te bir ilkel dizge (dizgi değişmezi) "instanceof" nasıl yapılır

var a = "Hello World"; 
var b = new String("Hello World"); 

ama String bir örneği değil ...

console.log(a instanceof String); //false; 
console.log(b instanceof String); //true; 

Peki türü veya " instanceof" bir dize literal buluyorsunuz?

JavaScript, her dize için bir new String() oluşturmak zorunda kalabilir mi?

cevap

46

kullanımı yeni bir dize oluşturmak için new String() yazmaya gerek yoktur. var x = 'test'; bildirimi yazarken, ilkel veri türünden x dizesini bir dize olarak oluşturur. Özel özellikleri, söz konusu x nesnesine, object literal ile yaptığımız gibi ekleyemiyoruz. yani. x.custom = 'abc';x.custom, tanımsız bir değer verecektir. Böylece ihtiyacımız gereği nesneyi oluşturmamız gerekiyor. new String(), typeof() Object ile bir nesne oluşturacak ve string oluşturmayacaktır. Bu nesneye özel özellikler ekleyebiliriz.

5

typeof kullanın ve sonuçta oluşan dizgiyi karşılaştırın. Detaylar için bakınız docs. typeof "foo" === "string" yerine instanceof.

+1

Bu bir yöntem değil! – Bergi

+0

Doküman bağlantısı için teşekkürler; ama [instanceof] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof) aşağıdaki gibidir: "Instanceof operatörü, nesnenin prototip zincirindeki constructor.prototype öğesinin varlığını test eder. ." – jpaugh

2

ait

İlgili konular