ÃoÄu zaman operatörler ve fonksiyonlar otomatik olarak deÄeri doÄru tipe dönüÅtürürler. Buna âtip dönüÅtürmeâ denir.
ÃrneÄin alert otomatik olarak verilen tüm deÄerleri karakter dizisine çevirir ve ekranda gösterir. Matematiksel operatörler ise deÄerleri sayılara çevirir.
Tabi bunun yanında doÄrudan tipi sizin tarafınızdan deÄiÅtirilmesi gereken deÄiÅkenler vardır.
Bu bölümde objeler hakkında bilgi verilmeyecektir. Ãnce ilkel tiplerin iyice öÄrenilmesi lazım, sonra objelerin öÄrenilmesi ve daha sonra Objelerin ilkel çevirileri bölümünde objelerin dönüÅtürülmesi öÄrenilebilir.
toString
Bir deÄeri karakter dizisi olarak kullanmak istiyorsanız toStringâi kullanabilirsiniz.
ÃrneÄin alert(deger) deÄeri gösterir. Ayrıca String(deger) de kullanılabilir.
let value = true;
alert(typeof value); // boolean
value = String(value); // Åimdi deÄer karakter dizisi = "true"
alert(typeof value); // karakter dizisi
EÄer false deÄeri karakter dizisi dönüÅtürme iÅlemine tabi tutarsanız "false", nullâu tutarsanız "null" olur.
Number
Sayısal dönüÅtürme iÅlemleri matematiksel operasyonlarda otomatik olarak gerçekleÅir.
ÃrneÄin sayı olmayan iki deÄer / iÅlemine tutulduÄunda:
alert( "6" / "2" ); // 3, karakterler sayılara dönüÅtürülür ve iÅlem öyle yapılır.
EÄer isterseniz Number(value) fonksiyonu ile deÄeri sayıya dönüÅtürebilirsiniz:
let str = "123";
alert(typeof str); // string
let num = Number(str); // sayı olan 123
alert(typeof num); // number
Bu Åekilde fonksiyon ile deÄer dönüÅtürme iÅlemi genelde karakter dizi olarak aldıÄımız formlarda kullanılır. Aslında sayı kullanılmak istenmektedir. Fakat yazı kutusunun içeriÄine sayı dahilinde yazılanları kontrol etmeniz gerekmektedir. Böyle bir fonksiyona sayı olmayan bir deÄer geldiÄinde fonksiyon NaN deÄeri döndürür. Yani (Not a Number) sayı deÄil.
let age = Number("Bir sayı yerine herhangi bir yazı");
alert(age); // NaN, dönüÅtüremedi!
Sayısal dönüÅtürme kuralları:
| DeÄer | Sonuç⦠|
|---|---|
undefined |
NaN |
null |
0 |
true ve false |
1 veya 0 |
string |
Ãnce baÅta ve sondaki whitespaceâler silinir. Sonra eÄer kalan deÄerde hiçbir karakter yok ise sonuç 0. EÄer içerisinde sayısal olmayan bir deÄer var ise bu durumda NaN deÄeri alınır. |
Ãrnekler:
alert( Number(" 123 ") ); // 123
alert( Number("123z") ); // NaN (Hata "z" bir rakam deÄil)
alert( Number(true) ); // 1
alert( Number(false) ); // 0
Lütfen null ve undefinedâın aynı davranmadıklarını bilin. null 0 olurken undefined NaN yani sayı deÄildir.
Neredeyse tüm matematiksel operasyonlar önce deÄerleri sayılara çevirmeye çalıÅır. EÄer bir taraf sayıya çevrilemediyse bu durumda karakter olarak diÄeri ile birleÅtirme iÅlemi yapılır.
Bu birleÅtirme iÅlemine örnek:
alert( 1 + '2' ); // '12' (SaÄ tarafta karakter var)
alert( '1' + 2 ); // '12' (Sol tarafta karakter var)
GördüÄünüz gibi sadece bir tarafın karakter olması yeterlidir. EÄer iki tarafta sayıya dönüÅebiliyorsa bu durumda gerçek toplama iÅlemi yapılır.
Boolean
Boolean dönüÅtürme en kolay olanıdır.
Lojik operasyonlarda (durum testlerinde bu operasyonları iÅlenecek) otomatik olarak bu dönüÅtürme gerçekleÅir. Bunun yanında gerekli olduÄunda Boolean(value) da kullanılabilir.
DönüÅtürücü kuralları:
- âboÅâ olan
0, veya boÅ karakter dizisi,null,undefined,Nangibi deÄerlerfalseolur. - DiÄer türlü deÄerler
trueolur.
ÃrneÄin:
alert( Boolean(1) ); // true
alert( Boolean(0) ); // false
alert( Boolean("merhaba") ); // true
alert( Boolean("") ); // false
"0" trueâdurPHP gibi bazı diller "0"'ı false olarak alırlar. Fakat JavaScript için boÅ olmayan karakter dizileri her zaman true olur.
alert( Boolean("0") ); // true
alert( Boolean(" ") ); // içerisinde boÅluk olan karakter dizisi true olur.
Ãzet
Ãç tane çok kullanılan tip dönüÅtürücü bulunmaktadır; karakter dizisine dönüÅtüren, sayıya dönüÅtüren ve boolean deÄere dönüÅtüren.
toString â Bir çıktı verildiÄinde otomatik olarak bu fonksiyon çalıÅır. String(value) kullanılarak da dönüÅtürme iÅlemi yapılabilir.
Number â Matematiksel operasyonlar otomatik olarak yaparlar. Ayrıca Number(value) ile de dönüÅtürme iÅlemi yapılabilir.
DönüÅtürme iÅlemi aÅaÄıdaki kuralları kapsar:
| DeÄer | Sonuç⦠|
|---|---|
undefined |
NaN |
null |
0 |
true / false |
1 / 0 |
string |
Ãnce baÅta ve sondaki whitespaceâler silinir. Sonra eÄer kalan deÄerde hiçbir karakter yok ise sonuç 0. EÄer içerisinde sayısal olmayan bir deÄer var ise bu durumda NaN deÄeri alınır. |
ToBoolean â Lojik operatörlerde otomatik çalıÅır ayrıca Boolean(value) ile de dönüÅtürme iÅlemi yapılabilir.
Kuralları Åu Åekildedir:
| DeÄer | Sonuç⦠|
|---|---|
0, null, undefined, NaN, "" |
false |
| diÄer her türlü deÄer | true |
Bu kuralların çoÄu akılda kalıcıdır. Genelde programcıların hata yaptıkları yer:
undefinedsayı olarakNaNâdır halbukinullsayı olarak0dır."0"bu ve" "bu karakter dizisi boolean olarak ikisi de true olarak dönüÅür.
Objeler bu bölüme konu edinmedi. Daha sonra Objelerin ilkel çevirileri konusunda özel olarak objeler hakkında bilgi verilecektir.
Yorumlar
<code>kullanınız, birkaç satır eklemek için ise<pre>kullanın. EÄer 10 satırdan fazla kod ekleyecekseniz plnkr kullanabilirsiniz)