> For the complete documentation index, see [llms.txt](https://hanuce.gitbook.io/javascript-egitimi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hanuce.gitbook.io/javascript-egitimi/ilkel-primitive-veri-tipleri/tip-donusumleri.md).

# Tip Dönüşümleri

## `String` Tipine Dönüştürme

Bir değeri **`string`** tipine çevirmek için **`String()`** fonksiyonu veya **`.toString()`** metodu kullanılır. Örnek.

{% code lineNumbers="true" %}

```javascript
let sayi = 1923;
sayi = String(sayi);
alert(typeof sayi);
```

{% endcode %}

**`String()`** fonksiyonu **`NaN`**, **`Null`** ve **`Undefined`** değerini de **`string`** olarak çevirebilir. Öte yandan **`.toString()`** metodu daha sıkıdır. **`NaN`** değeri için çevrim yaparken diğer özel değerler için hata verir.

{% code lineNumbers="true" %}

```javascript
let tanimsiz;
let sayiOlmayan = NaN;
let bos = null;

tanimsiz = String(tanimsiz);
alert(typeof tanimsiz);

sayiOlmayan = String(sayiOlmayan);
alert(typeof sayiOlmayan);

bos = String(bos);
alert(typeof bos);
```

{% endcode %}

Yukarıdaki değerlerin hepsi **`string`** tipine dönüştürülür. Diğer yöntemde ise:

{% code lineNumbers="true" %}

```javascript
let tanimsiz;
let sayiOlmayan = NaN;
let bos = null;
let sayi = 1923;

sayiOlmayan = sayiOlmayan.toString(); // Çalışır.
alert(typeof sayiOlmayan);

sayiOlmayan = sayi.toString(); // Çalışır
alert(typeof sayi);

tanimsiz = tanimsiz.toString(); //hata verir
alert(typeof tanimsiz);

bos = bos.toString(); //hata verir
alert(typeof bos);
```

{% endcode %}

## `Number` Tipine Dönüştürme

> **`Number()`** | **`+`** | **`parseInt()`** | **`parseFloat()`**

Bir değeri **`number`** tipine dönüştürmek için **sayı tipine dönüştürülebilir bir değere sahip olması gerekir.  `Numbe`**&#x72; tipinde olmayan bir değişkeni **number** tipine dönüştürmek için birkaç yöntem var. İlk yöntem değişkenin önüne + işareti koymak.

{% code lineNumbers="true" %}

```javascript
let st1 = "18.3";
let st2 = "12";
let toplam = +st1 + +st2; // ortadaki + toplama işareti, diğerleri dönüştürme.
alert(toplam);
```

{% endcode %}

Diğer yöntemlerden biri de **`Number()`** fonksiyonudur.

{% code lineNumbers="true" %}

```javascript
let st1 = "18.3";
let st2 = "12";
let fark = Number(st1) - Number(st2);
alert(fark);
```

{% endcode %}

Bu yöntemler katı yöntem olup eğer değişken içinde sayısal olmayan bir karakter var ise **`NaN`** değeri verir.

{% code lineNumbers="true" %}

```javascript
let uzunluk = "27cm";
alert( Number(uzunluk) ); // NaN
```

{% endcode %}

Bu sebeple **`parseInt()`** veya **`parseFloat()`** fonksiyonları daha işlevsel olabilir. **`parseInt()`** ile tamsayıları, **`parseFloat()`** ile ondalıklı sayıları dönüştürebiliriz.

{% code lineNumbers="true" %}

```javascript
let uzunluk = "27cm";
let genislik = "22.4cm";
alert( parseInt(uzunluk) );
alert( parseFloat(genislik) );
```

{% endcode %}

Bu fonksiyonlar baştan ve sondan boşlukları kırpar ve ardından sol baştaki rakamlardan başlar. Sağa doğru rakamların bittiği yerde rakamı sonlandırır. **`parseInt()`** fonksiyonu isteğe bağlı bir parametre daha alır. Bu da taban bilgisidir. Örnek.

{% code lineNumbers="true" %}

```javascript
let renk = "0xFF";
alert( parseInt(renk,16) ); //255 sonucunu döndürür.
renk = "FF";
alert( parseInt(renk,16) ); // Başına 0x yazılmasa da 16 tabanını verince çevirir.
```

{% endcode %}

## `Boolean` Tipine Dönüştürme

> **`Boolean()`** | **`!!`**

Bir değeri **`boolean`** tipine çevirmek için **`Boolean()`** fonksiyonu veya **`!!`** operatörü kullanılır.&#x20;

**`Boolean`** tipine çevirmek için **`Boolean()`** fonksiyonu kullanılır. Örnek.

{% code lineNumbers="true" %}

```javascript
let bir = 1;
let sifir = 0;
alert( Boolean(bir) ); // true
alert( Boolean(sifir) ); // false
```

{% endcode %}

Matematiksel olarak **`true`** değer 1 **`false`** değer 0'dır. Tersten deneyelim.

{% code lineNumbers="true" %}

```javascript
let dogru = true;
let yanlis = false;
alert( Number(dogru) ); // 1
alert( Number(yanlis) ); // 0
```

{% endcode %}

Karakter dizilerinde ise boş string değeri **`false`** herhangi bir karakter içeren string **`true`** olur.

{% code lineNumbers="true" %}

```javascript
let bos = '';
let dolu = ' ';
alert( Boolean(bos) ); //false
alert( Boolean(dolu) ); //true
```

{% endcode %}

Bir değeri **`boolean`** tipine çevirmek için **`!!`** operatörü de kullanılır. Örnek.

<pre class="language-javascript" data-line-numbers><code class="lang-javascript">let bos = '';
let dolu = ' ';
let bir = 1;
let sifir = 0;
<strong>
</strong>alert( !!bos ); //false
alert( !!dolu ); //true
alert( !!sifir ); //false
alert( !!bir ); //true
</code></pre>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hanuce.gitbook.io/javascript-egitimi/ilkel-primitive-veri-tipleri/tip-donusumleri.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
