Sitemap
KADİR SELİM PEHLİVAN

KADİR SELİM PEHLİVAN

Frontend Dev.

JavaScript var,let,const Nedir ?

Değişken oluşturma(Declaration) ve tanımlama(initialization)

4 min readOct 8, 2026

--

Declaration Nedir?

Declaration, programa bir değişken kullanacağımızı bildirmektir.

Örneğin :

let age;

Javascript’e age adında değişken kullanacağım demiş oluyoruz.

Burada age değişkeninin declaration'ını yapıyoruz.

  • let → değişken oluşturmak için kullanılan keyword
  • age→ değişkenin ismi
  • let name → declaration

Initialization Nedir?

Initialization, oluşturduğumuz değişkene ilk değerini vermektir.

Örneğin:

let age = 23;

Burada age değişkenine ilk defa 23 değerini veriyoruz.

Artık değişkenin bir başlangıç değeri vardır.

  • declaration’ı → let age
  • initialization’ı → 23 değerinin verilmesi

JavaScript’te var, let, const ve Scope

JavaScript’te değişken oluşturmak için temel olarak var, let ve const keyword'leri kullanılır. Üçü de değişken tanımlamak için kullanılsa da scope, yeniden değer atama ve yeniden tanımlama gibi konularda birbirlerinden farklı davranırlar.

var Nedir?

var, JavaScript'te değişken tanımlamak için kullanılan eski yöntemdir.

var age = 23;

Burada age isminde bir değişken oluşturduk ve başlangıç değerini 23 olarak verdik.

var ile oluşturulan değişkenlerin en önemli özelliklerinden biri function scope olmasıdır.

function example() {

var name = "Kadir";
console.log(name);

}

example();

name değişkenine function içerisinde erişilebilir ancak function dışından erişilemez.

Ayrıca var ile oluşturulan bir değişkene daha sonra tekrar değer atanabilir:

var age = 23;
age = 24;

var ile aynı scope içerisinde aynı isimde bir değişken tekrar tanımlanabilir:

var age = 23;
var age = 24;

Bu davranış modern JavaScript kodlarında istenmeyen durumlara yol açabileceği için günümüzde genellikle let ve const tercih edilir.

let Nedir?

let, modern JavaScript'te değişken tanımlamak için kullanılan keyword'lerden biridir.

let age = 23;

let ile oluşturulan değişkenlerin önemli özelliklerinden biri block scope olmasıdır.

Örneğin:

if (true) {
let age = 23;
console.log(age);
}

Burada age yalnızca if bloğu içerisinde kullanılabilir.

if (true) {
let age = 23;
}
console.log(age); // Hata

Çünkü age, oluşturulduğu block'un dışından erişilebilir değildir.

let ile oluşturulan değişkenlerin değerleri daha sonra değiştirilebilir:

let age = 23;
age = 24;

Ancak aynı scope içerisinde aynı isimle tekrar tanımlanamaz:

let age = 23;
let age = 24; // Hata

Bu nedenle let, değeri zaman içerisinde değişebilen değişkenler için kullanılır.

const Nedir?

const da modern JavaScript'te değişken tanımlamak için kullanılır.

const age = 23;

const değişkenleri de let gibi block scope özelliğine sahiptir.

En önemli farkı ise oluşturulduktan sonra değişkene tekrar değer atanamamasıdır.

const age = 23;
age = 24; // Hata

Bu nedenle değeri değişmeyecek değişkenlerde const kullanılır.

Get KADİR SELİM PEHLİVAN’s stories in your inbox

Join Medium for free to get updates from this writer.

Örneğin:

const birthYear = 2003;

Buradaki değerin daha sonra değiştirilmesi gerekmiyorsa const uygun bir tercihtir.

const kullanırken değişkenin oluşturulduğu anda bir başlangıç değerinin verilmesi gerekir:

const age; // Hata

Doğru kullanım:

const age = 23;
Press enter or click to view image in full size

Modern JavaScript’te genel olarak:

  • Değeri değişmeyecekse → const
  • Değeri değişecekse → let
  • var →Genellikle Eski JavaScript kodlarında karşımıza çıkar

şeklinde düşünebiliriz.

Bu nedenle yeni JavaScript kodlarında çoğu durumda let ve const tercih edilir.

Scope Nedir?

Scope, bir değişkenin kod içerisinde nereden erişilebilir olduğunu belirleyen kapsamdır.

Başka bir ifadeyle:

Scope, bir değişkenin yaşam alanını ve erişilebilir olduğu bölgeyi belirler.

Örneğin:

let name = "Kadir";
function greet() {
console.log(name);
}

name function içerisinde oluşturulmadığı için dış scope'tan erişilebilir.

Ancak:

function greet() {
let message = "Hello";
}
console.log(message); // Hata

Burada message, function içerisinde tanımlandığı için dışarıdan erişilemez.

JavaScript’te Temel Scope Türleri

Global Scope

Herhangi bir function veya block içerisinde olmayan değişkenler global scope’ta bulunur.

let name = "Kadir";

Bu değişkene uygun olduğu sürece farklı scope’lardan erişilebilir.

Function Scope

Bir function içerisinde oluşturulan değişkenler function scope içerisinde bulunur.

function greet() {
let message = "Hello";
}

message, function dışından erişilemez.

Block Scope

{} içerisinde oluşturulan alan block scope olarak düşünülebilir.

if (true) {
let age = 23;
}

Buradaki age yalnızca block içerisinde kullanılabilir.

let ve const block scope özelliğine sahiptir.

Kısaca

JavaScript’te var, let ve const değişken tanımlamak için kullanılır ancak davranışları farklıdır.

var eski bir değişken tanımlama yöntemidir ve function scope kullanır.

let değeri daha sonra değiştirilebilen ve block scope özelliğine sahip değişkenler için kullanılır.

const ise yeniden değer atanmayacak değişkenler için kullanılır ve block scope özelliğine sahiptir.

Scope ise bir değişkenin nereden erişilebilir olduğunu belirleyen kapsamdır.

Modern JavaScript’te genel yaklaşım olarak öncelikle const kullanmak, değer değişmesi gerekiyorsa let kullanmak ve var kullanımından kaçınmak tercih edilir.

JSP Projelerinde var Kullanımı

Modern JavaScript projelerinde genellikle const ve let tercih edilmesine rağmen, özellikle JSP, jQuery ve SAP Commerce gibi legacy veya uzun süredir geliştirilen projelerde var kullanımı oldukça yaygındır.

Örneğin:

var $button = $('.button');
var _self = $(this);
var form = $('#loginForm');

Buradaki $button, $self gibi isimlendirmeler jQuery object'lerini belirtmek için kullanılan bir naming convention'dır. var ise değişkenin tanımlanmasını sağlar.

Bu tür projelerde var kullanımının temel nedeni, projenin JavaScript kodlarının ES6 öncesi dönemden gelen coding convention'lara dayanmasıdır. let ve const ES6 ile birlikte geldiği için eski projelerde var kullanımı çok daha yaygındır.

Ayrıca mevcut kodun tamamını let ve const kullanacak şekilde değiştirmek her zaman basit değildir. Çünkü var function scope, let ve const ise block scope kullanır. Bu nedenle eski kodları doğrudan değiştirmek bazı durumlarda mevcut davranışların bozulmasına neden olabilir.

Bu yüzden JSP/SAP Commerce gibi projelerde var kullanımı görmek, JavaScript'in güncel kullanımının yanlış olduğu anlamına gelmez. Daha çok projenin yaşı, mevcut coding standardı, kullanılan frontend teknolojileri ve geriye dönük uyumluluk gereksinimleriyle ilgilidir.

Kısacası:

Yeni bir JavaScript projesinde genellikle const ve let tercih edilirken, JSP/SAP Commerce gibi legacy projelerde mevcut kod yapısını ve proje standardını korumak amacıyla var kullanımıyla sıkça karşılaşabiliriz.

--