Çift tırnak işaretleri ("
), tek tırnak işaretleri ('
) veya ters tırnak işaretleri (") arasında kalan tüm karakterler (harfler, sayılar, simgeler vb.) dize ilkelleridir. Bu kursta birkaç dize örneği görmüştünüz: Önceki modüldeki console.log
örnekleri dize ilkellerini içeriyordu.
console.log( "Hello, World." );
> Hello, World.
"Hello, World."
, dize ilkel bir öğesidir. Tek tırnak veya ters tırnak işareti kullanarak da aynı sonucu elde edersiniz:
console.log( 'Hello, World.' );
> Hello, World.
console.log(`Hello, World.`);
> Hello, World.
Tırnak içine alınmış karakter dizisine dize değişmezi denir. Çift ve tek tırnak işaretleri aynı şekilde çalışır ve biri diğerini dizenin kendisinde bir karakter olarak içerebilir:
console.log( "I'm a string." );
> I'm a string.
console.log( '"A string," I said.' );
> "A string," I said.
Dize içinde aynı kapsayıcı karakterin bir örneği, dizeyi "kapatır" ve büyük olasılıkla hatalara neden olur:
console.log( '"I'm a string," I said.' );
> Uncaught SyntaxError: missing ) after argument list
Bunu önlemek için ters eğik çizgi (\
) kullanarak karakterden kaçının:
console.log( '"I\'m a string," I said.' );
> "I'm a string," I said.
Dize nesnesi
String
nesnesi, işlev olarak çağrıldığında belirtilen bir değeri dize değişmez değerine zorlar.
let myString = String( 10 );
myString
> "10"
typeof myString
> string
Prototip kalıtım bölümünde ayrıntılı olarak açıklandığı gibi, String
nesnesini bir kurucu olarak kullanmanız nadiren gerekir. Bir dize değişmezi yerine, String
nesnesi tarafından zaten sağlanan yöntem ve özelliklerin yanı sıra belirtilen değeri içeren bir dize nesnesi oluşturur.
let stringObj = new String( "My new string." );
typeof stringObj
> object
stringObj
> String { "My new string." }
Birleştirme
Tek bir artı işareti (+
), sayılar yerine dize bağlamında kullanıldığında birleştirme operatörü olarak çalışır ve birden fazla dize değerini tek bir dizede birleştirir:
console.log( "My" + " string." );
> My string.
Dize değişmezleri ve şablon değişmezleri
Tek tırnak, çift tırnak ve ters eğik çizgi, dize primitifleri oluşturmak için birbirinin yerine kullanılabilir. Ancak, şablon literallerini (bazen "şablon dizesi" olarak da adlandırılır) belirtmek için ters tırnak işaretlerini de kullanabilirsiniz. Tek veya çift tırnak işaretiyle oluşturulan dize değişmez değerlerinin aksine, şablon değişmez değerleri birden çok satırlık dizelere ve dize eklemeye izin verir.
const myString = "This
is a string.";
> Uncaught SyntaxError: "" string literal contains an unescaped line break
const myString = `This
is a string.`;
console.log( myString );
> This
is a string.
Şablon literalleri, dolar işareti ve küme paranteziyle (${}
) işaretlenmiş yer tutucu ifadeleri içerebilir. Bu yer tutucular varsayılan olarak "doldurulur". Yani ifadenin sonucu, nihai dizedeki yer tutucunun yerini alır.
console.log( "The result is " + ( 2 + 4 ) + "." );
> The result is 6.
console.log( `The result is ${ 2 + 4 }.` );
> The result is 6.
Bir şablon değişmezi, özel işleve iletilerek etiketli şablon oluşturulabilir. Bu işlev çağrısı, bağımsız değişken grubu olarak tek bir şablon değişmezini kullanır ve yer tutucularının yazar tarafından tanımlanan mantığa göre doldurulmasına olanak tanır.
Etiket işlevinin ilk bağımsız değişkeni bir dize değeri dizisi içerir ve kalan bağımsız değişkenler yer tutucuları tanımlar. Bu dize değerleri dizisi, şablon değişmez değerinin içerdiği her yer tutucuda "bölünmesi" ile oluşturulur. Dizideki ilk öğe, ilk yer tutucuya kadarki tüm karakterleri, ikinci öğe ise ilk ve ikinci yer tutucular arasındaki tüm karakterleri içerir. Her yer tutucu, ilişkili bir yer tutucuyla bağımsız bir değer olarak etiket işlevine iletilir.
const myNoun = "template literal";
function myTagFunction( myStrings, myPlaceholder ) {
const myInitialString = myStrings[ 0 ];
console.log( `${ myInitialString }modified ${ myPlaceholder }.` );
}
myTagFunction`I'm a ${ myNoun }.`;
> "I'm a modified template literal."
Öğrendiklerinizi test etme
Karakterleri kod dışında bırakmak için hangi karakter kullanılır?
"
)/
)∖
)Dize birleştirme için hangi karakter kullanılır?
.
+
&