Dize

Ç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?

Çift tırnak işareti (")
Ters eğik çizgi ()
Eğik çizgi (/)

Dize birleştirme için hangi karakter kullanılır?

&
.
+