|
| 1 | +--- |
| 2 | +chapter: 2 |
| 3 | +pageNumber: 13 |
| 4 | +--- |
| 5 | + |
| 6 | +# Türler |
| 7 | + |
| 8 | +Bilgisayarlar karmaşıktır ve sayılardan daha karmaşık değişkenler kullanabilirler. İşte bu noktada değişken türleri devreye girer. Değişkenlerin çeşitli türleri vardır ve farklı diller farklı türleri destekler. |
| 9 | + |
| 10 | +En yaygın türler şunlardır: |
| 11 | + |
| 12 | +* **Number**: Sayılar tam sayılar (örneğin, `1`, `-5`, `100`) veya yüzdeli değerler (örneğin, `3.14`, `-2.5`, `0.01`) olabilir. JavaScript tamsayılar ve yüzdeli değerler için ayrı bir türe sahip değildir; her ikisini de sayı olarak ele alır. |
| 13 | +* **String**: Stringler, tek tırnak (örneğin, `'hello'`) veya çift tırnak (örneğin, `"world"`) ile temsil edilen karakter dizileridir. |
| 14 | +* **Boolean**: Boolean'lar doğru veya yanlış bir değeri temsil eder. Bunlar `true` veya `false` olarak yazılabilir (tırnak işaretleri olmadan). |
| 15 | +* **Null**: Null türü, "değer yok" anlamına gelen bir null değerini temsil eder. Tırnak işaretleri olmadan `null` şeklinde yazılabilir. |
| 16 | +* **Undefined**: Undefined türü, atanmamış bir değeri temsil eder. Bir değişken tanımlanmış, ancak bir değer atanmamışsa, `undefined`dır. |
| 17 | +* **Object**: Obje, her biri bir ad ve değere sahip olan bir özellikler topluluğudur. Küme parantezleri (`{}`) kullanarak bir nesne oluşturabilir ve isim-değer çiftleri kullanarak ona özellikler atayabilirsiniz. |
| 18 | +* **Array**: Dizi, bir öğe koleksiyonunu tutabilen özel bir obje türüdür. Köşeli parantez (`[]`) kullanarak bir dizi oluşturabilir ve ona bir değerler atayabilirsiniz. |
| 19 | +* **Function**: Fonksiyon, tanımlanabilen ve daha sonra adıyla çağrılabilen bir kod bloğudur. Fonksiyonlar argüman (girdi) kabul edebilir ve bir değer (çıktı) döndürebilir. Bir fonksiyonu `function` anahtar sözcüğünü kullanarak oluşturabilirsiniz. |
| 20 | + |
| 21 | +JavaScript, açık bir şekilde değişkenlerin hangi veri türünü kullandığını belirtmek için ayrıca bir deklarasyon yapmaya gerek duymadan (*_loosely typed_*) *"gevşek bir şekilde yazılmış"* bir dildir. Sadece bir değişkenin tanımlandığını belirtmek için `var` anahtar kelimesini kullanmanız yeterlidir ve yorumlayıcı, veri türünü bağlama ve alıntıların kullanımına dayanarak belirleyecektir. |
| 22 | + |
| 23 | + |
| 24 | +{% exercise %} |
| 25 | +Aşağıdaki değerlerle üç değişken tanımlayın ve onlara başlangıç değerleri atayın: `age` bir sayı, `name` bir string (dize) ve `isMarried` bir boolean (mantıksal değer) olsun. |
| 26 | +{% initial %} |
| 27 | +let age = |
| 28 | +let name = |
| 29 | +let isMarried = |
| 30 | +{% solution %} |
| 31 | +let age = 30 |
| 32 | +let name = "Cecilia" |
| 33 | +let isMarried = true |
| 34 | + |
| 35 | +{% validation %} |
| 36 | +assert(typeof age === "number" && typeof name === "string" && typeof isMarried === "boolean"); |
| 37 | + |
| 38 | +{% context %} |
| 39 | +{% endexercise %} |
| 40 | + |
| 41 | +`typeof` operatörü, bir değişkenin veri türlerini kontrol etmek için kullanılır. |
| 42 | +```javascript |
| 43 | +typeof "John" // "string" döndürür |
| 44 | +typeof 3.14 // "number" döndürür |
| 45 | +typeof NaN // "number" döndürür |
| 46 | +typeof false // "boolean" döndürür |
| 47 | +typeof [1,2,3,4] // "object" döndürür |
| 48 | +typeof {name:'John', age:34} // "object" döndürür |
| 49 | +typeof new Date() // "object" döndürür |
| 50 | +typeof function () {} // "function" döndürür |
| 51 | +typeof myCar // "undefined" döndürür |
| 52 | +typeof null // "object döndürür |
| 53 | +``` |
| 54 | + |
| 55 | +JavaScript'de kullanılan veri tipleri, içerdikleri değerlere göre iki kategoriye ayrılabilir. |
| 56 | + |
| 57 | +Değer içerebilen veri türleri: |
| 58 | + |
| 59 | +* `string` |
| 60 | +* `number` |
| 61 | +* `boolean` |
| 62 | +* `object` |
| 63 | +* `function` |
| 64 | + |
| 65 | +{% hint style="info" %} |
| 66 | +JavaScript'te kullanılabilen nesne türleri `Object`, `Date`, `Array`, `String`, `Number` ve `Boolean`'dır.{% endhint %} |
| 67 | + |
| 68 | +Değer içeremeyen veri türleri: |
| 69 | + |
| 70 | +* `null` |
| 71 | +* `undefined` |
| 72 | + |
| 73 | +Primitive (*İlkel*) veri değeri, ek özellikleri ve yöntemleri olmayan basit bir veri değeridir ve bir obje değildir. Primitive veri değerleri değiştirilemezlerdir. 7 Primitive veri türü vardır: |
| 74 | + |
| 75 | +* string |
| 76 | +* number |
| 77 | +* bigint |
| 78 | +* boolean |
| 79 | +* undefined |
| 80 | +* symbol |
| 81 | +* null |
| 82 | + |
| 83 | +{% exercise %} |
| 84 | +`person`adında bir değişken tanımlayın ve içinde aşağıdaki özellikleri içeren bir nesneyle başlatalım: `age`(sayı), `name` (dize) ve `isMarried` (boolean). |
| 85 | +{% initial %} |
| 86 | +let person = |
| 87 | + |
| 88 | +{% solution %} |
| 89 | +let person = { |
| 90 | + name: "Mary", |
| 91 | + age: 25, |
| 92 | + isMarried: false |
| 93 | +}; |
| 94 | + |
| 95 | +{% validation %} |
| 96 | +assert(typeof person.age === "number" && typeof person.name === "string" && typeof person.isMarried === "boolean"); |
| 97 | + |
| 98 | +{% context %} |
| 99 | +{% endexercise %} |
0 commit comments