Dize

Çift tırnak işareti ("), tek tırnak işareti (') veya vurgu işareti (`) arasındaki herhangi bir karakter kümesi (harfler, sayılar, simgeler vb.) bir dize temelidir. Bu kursta zaten birkaç dize örneği görmüştünüz: Bir önceki modüldeki console.log örnekleri, dize temel öğelerini içeriyordu.

console.log( "Hello, World." );
> Hello, World.

"Hello, World." bir dize temel öğesidir. Tek tırnak veya vurgu işaretiyle 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şmez değeri denir. Çift ve tek tırnak aynı şekilde davranı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çindeki aynı çevreleyen karakterin bir örneği, dizeyi "kapatır" ve bu da hatalara neden olabilir:

console.log( '"I'm a string," I said.' );
> Uncaught SyntaxError: missing ) after argument list

Bunu önlemek için karakteri ters eğik çizgi (``) kullanarak kod dışına alın:

console.log( '"I\'m a string," I said.' );
> "I'm a string," I said.

Dize nesnesi

İşlev olarak çağrıldığında String nesnesi, belirtilen değeri dize değişmez değerine zorlar.

let myString = String( 10 );

myString
> "10"

typeof myString
> string

Prototip devralma bölümünde ayrıntılı olarak açıklandığı gibi, String nesnesini kurucu olarak kullanmanız nadiren gerekir. Dize değişmez değeri yerine, String nesnesi tarafından halihazırda verilmiş olan yöntem ve özelliklerle birlikte, 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

Sayı yerine dize bağlamında kullanıldığında, tek bir artı işareti (+), birden fazla dize değerini tek bir dizede birleştirerek birleştirme operatörü olarak işlev görür:

console.log( "My" + " string." );
> My string.

Dize değişmez değerleri ve şablon değişmez değerleri

Temel dize öğeleri oluşturmak için tek tırnak, çift tırnak ve vurgu işareti birbirinin yerine kullanılabilir. Ancak, şablon hazır değerlerini (bazen "şablon dizeleri" olarak da adlandırılır) belirtmek için vurgu işaretleri kullanabilirsiniz. Tek veya çift tırnak kullanılarak oluşturulan dize değişmez değerlerinden farklı olarak, şablon değişmez değerleri çok satırlı dizelere ve dize interpolasyonuna olanak tanır.

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 hazır değerleri, dolar işareti ve süslü ayraçlar (${}) ile işaretlenmiş yer tutucu ifadeleri içerebilir. Bu yer tutucular varsayılan olarak "interpolasyona tabidir". Yani ifadenin sonucu, son 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şmez değeri, etiketli şablon oluşturmak için bir özel işleve geçirilebilir. Etiketli şablon, bağımsız değişken grubu olarak tek bir şablondan yararlanan ve yer tutucularının yazar tarafından tanımlanan mantığa göre doldurulmasını sağlayan bir işlev çağrısıdır.

Bir etiket işlevinin ilk bağımsız değişkeni, bir dize değerleri dizisi içerir, kalan bağımsız değişkenler ise yer tutucuları tanımlar. Bu dize değerleri dizisi, şablonun içerdiği her yer tutucuda şablon değişmez değerini "bölerek" oluşturulur. Dizideki ilk öğe, ilk yer tutucuya kadar olan karakterleri, ikinci öğe ise birinci ve ikinci yer tutucular arasındaki karakterleri içerir ve bu şekilde devam eder. Her yer tutucu, ilişkili bir yer tutucuyla birlikte bağımsız bir değer olarak etiket işlevine aktarılır.

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 sınayın

Karakterlerden çıkış yapmak için hangi karakter kullanılır?

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

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

+
&
.