Merhaba Webkolog Dostları!
Bugün, JavaScript'in temel yapı taşlarından değişkenler ve veri tipleri konularını detaylıca inceleyeceğiz. Kod yazmaya başlarken verileri nasıl sakladığımızı ve bu verilerin ne tür bilgiler taşıyabileceğini anlamak, sağlam bir temel oluşturmanın ilk adımıdır. Hazırsanız, bilgilerin dünyasına dalış yapalım!
Değişkenler Nedir?
Bir programlama dilinde değişkenler, verileri depolamak için kullanılan isimlendirilmiş bellek konumlarıdır. Tıpkı bir kutu gibi düşünebilirsiniz; bu kutuya bir etiket yapıştırır (isim veririz) ve içine istediğimiz veriyi (değeri) koyarız. JavaScript'te değişken tanımlamak için üç ana anahtar kelime kullanırız: var
, let
ve const
.
var
Anahtar Kelimesi (Eski Yöntem)
var
, JavaScript'in ilk zamanlarından beri kullanılan bir değişkendir. Fonksiyon kapsamına (function scope) sahiptir, yani tanımlandığı fonksiyon içinde her yerden erişilebilir. Ancak bazı beklenmedik davranışlara yol açabildiği için modern JavaScript'te kullanımı önerilmez.
var mesaj = "Merhaba Dünya!";
console.log(mesaj); // "Merhaba Dünya!"
let
Anahtar Kelimesi (Modern Yaklaşım)
let
, ES6 (ECMAScript 2015) ile birlikte gelen ve var
'ın yerini alan daha modern bir yöntemdir. Blok kapsamına (block scope) sahiptir, yani tanımlandığı kod bloğu (if
, for
, while
gibi) veya süslü parantez {}
arasında geçerlidir. Bu, kodunuzu daha öngörülebilir ve hatasız yapar.
let sayi = 10;
if (sayi > 5) {
let yeniSayi = 20;
console.log(yeniSayi); // 20
}
// console.log(yeniSayi); // Hata! yeniSayi bu blok dışında tanımlı değil.
const
Anahtar Kelimesi (Sabitler İçin)
const
da ES6 ile gelen bir anahtar kelimedir ve adından da anlaşılacağı gibi sabit değerler tanımlamak için kullanılır. let
gibi blok kapsamına sahiptir ancak en önemli farkı, bir kere atanan değerin daha sonra değiştirilememesidir. Özellikle bir değişkenin değerinin hiçbir zaman değişmemesi gereken durumlarda tercih edilir.
const PI = 3.14;
// PI = 3.14159; // Hata! Sabit bir değişkene yeniden değer atanamaz.
const isim = "Ali";
// isim = "Veli"; // Hata!
Önemli Not: const
ile bir referans tip (örneğin diziler veya objeler) tanımlarsanız, o değişkenin kendisi yeniden atanamaz ancak içerdiği elemanlar veya özellikler değiştirilebilir.
const sayilar = [1, 2, 3];
sayilar.push(4); // Geçerli işlem, diziye eleman eklendi
console.log(sayilar); // [1, 2, 3, 4]
// sayilar = [5, 6]; // Hata! Sabit bir diziye yeniden atama yapılamaz.
const ogrenci = { ad: "Ayşe", yas: 20 };
ogrenci.yas = 21; // Geçerli işlem, objenin özelliği değiştirildi
console.log(ogrenci.yas); // 21
JavaScript Veri Tipleri
JavaScript, dinamik bir dil olduğu için bir değişkenin tipini belirtmemiz gerekmez; atadığımız değere göre otomatik olarak tipi belirlenir. JavaScript'te 7 temel veri tipi bulunur:
1. Primitive (İlkel) Veri Tipleri
- String (Metin): Metinsel ifadeleri depolamak için kullanılır. Tek tırnak (
''
), çift tırnak (""
) veya backtick (``
) ile tanımlanır.let ad = "Webkolog"; let soyad = 'Yazar'; let tamIsim = `Benim adım ${ad} ${soyad}.`; // Template literals
- Number (Sayı): Hem tam sayıları hem de ondalıklı sayıları depolamak için kullanılır.
let tamSayi = 10; let ondalikliSayi = 3.14;
Sayı olmayan bir değerin sayıya dönüştürülmeye çalışılıp başarısız olduğunda
NaN
(Not-a-Number) değeri döner.console.log(10 / "elma"); // NaN
- Boolean (Mantıksal): Sadece iki değeri vardır:
true
(doğru) veyafalse
(yanlış). Genellikle koşullu ifadelerde kullanılır.let isActive = true; let isFinished = false;
- Undefined (Tanımsız): Bir değişkene değer atanmadığında veya bir fonksiyon bir değer döndürmediğinde otomatik olarak bu değere sahip olur.
let deger; console.log(deger); // undefined
- Null (Boş): Bilinçli olarak hiçbir değere sahip olmadığını belirtmek için kullanılır. Bir nesnenin değerini "yok etmek" için atayabilirsiniz.
let bosDeger = null; console.log(bosDeger); // null console.log(typeof null); // object (Bu, JavaScript'in eski bir hatasıdır, null bir primitif tiptir.)
- Symbol (Sembol): ES6 ile gelen, benzersiz ve değiştirilemez değerler oluşturmak için kullanılır. Genellikle objelere benzersiz özellik anahtarları eklemek için kullanılır.
const id = Symbol('id'); const id2 = Symbol('id'); console.log(id === id2); // false (Her Symbol benzersizdir)
- BigInt (Büyük Tamsayı): Sayı tipinin temsil edebileceği maksimum değerden daha büyük tamsayıları depolamak için ES2020 ile tanıtılmıştır. Bir sayının sonuna
n
eklenerek tanımlanır.const buyukSayi = 1234567890123456789012345678901234567890n;
2. Reference (Referans) Veri Tipleri
Primitif tiplerden farklı olarak, referans tipleri doğrudan değeri depolamazlar; değerin bellekteki adresini (referansını) tutarlar. Bu kategoriye Objeler ve Diziler (Array) girer.
- Object (Nesne): Anahtar-değer çiftlerinden oluşan karmaşık veri yapılarıdır.
let kullanici = { ad: "Mehmet", soyad: "Yılmaz", yas: 30, hobiler: ["Kitap okumak", "Yürüyüş yapmak"] }; console.log(kullanici.ad); // "Mehmet" console.log(kullanici["hobiler"][0]); // "Kitap okumak"
- Array (Dizi): Sıralı bir şekilde birden fazla değeri depolayan özel bir obje türüdür. Elemanlara indeks numaralarıyla erişilir.
let meyveler = ["Elma", "Armut", "Çilek"]; console.log(meyveler[0]); // "Elma" console.log(typeof meyveler); // object (Diziler de bir obje türüdür)
- Function (Fonksiyon): Belirli bir görevi yerine getiren kod bloklarıdır. JavaScript'te fonksiyonlar da aslında birer objedir.
function selamla(isim) { return `Merhaba, ${isim}!`; } console.log(selamla("Zeynep")); // "Merhaba, Zeynep!" console.log(typeof selamla); // "function"
Veri Tipi Dönüşümleri
JavaScript bazen veri tiplerini otomatik olarak dönüştürse de (implicit type coercion), bazen de manuel olarak dönüştürmek isteyebiliriz (explicit type conversion).
- Sayıya Dönüştürme:
let strSayi = "123"; let sayi1 = Number(strSayi); // 123 (Sayı) let sayi2 = parseInt("456px"); // 456 (Sadece tam sayıyı alır) let sayi3 = parseFloat("3.14metre"); // 3.14 (Ondalıklı sayıyı alır)
- Metine Dönüştürme:
let num = 123; let str = String(num); // "123" (Metin) let bool = true; let strBool = String(bool); // "true" (Metin)
Sonuç
JavaScript'te değişkenleri doğru bir şekilde tanımlamak ve veri tiplerini anlamak, daha temiz, güvenli ve hatasız kod yazmanızı sağlar. Özellikle let
ve const
kullanımına alışmak, modern JavaScript geliştirmesinde büyük önem taşır. Hangi veri tipinin ne zaman kullanılacağını bilmek, programlarınızın performansını ve okunabilirliğini artıracaktır.
Umarım bu makale, değişkenler ve veri tipleri konusundaki bilgilerinizi pekiştirmenize yardımcı olmuştur. Kodlama yolculuğunuzda daima öğrenmeye ve keşfetmeye devam edin!
Webkolog'u takipte kalın!
Hepinize bol kodlu ve başarılı projeler dilerim!
0 yorum:
Yorum Gönder