Web Sayfalarının Beyni: Javascript -4

Mustafa Ozturk
2 min readJun 11, 2022

--

Bir önceki yazımızda fonksiyonlar ve nesnelerden bahsettik. Bu yazımızda Es6 ile gelen rest, spread ve destructuring araçlarına bakacağız.

Geçen yazımızda 2 parametre alarak toplama işlemi yapan bir fonksiyon yazmıştık. Peki hesap makinelerinde sadece 2 sayıyı mı toplayabiliyoruz? Tabiki hayır. İstediğimiz kadar değeri toplayabiliyoruz. Peki nasıl? Rest operatörü sayesinde bir fonksiyona istediğimiz kadar değer atayabiliyoruz.

Rest Operatörü nedir?

Rest operatörü bir değişkenin dizi gibi davranmasını sağlar. Yani o değişkene istediğimiz kadar değer atayabiliriz ve değişkenimiz artık bir dizidir.

rest operatörünü kullanmak için değişkenin başına … konması gerekir.

Peki şimdi de şöyle düşünelim. Bizim sayılarla dolu bir dizimiz var ve bu dizideki elemanları toplama fonksiyonuna göndermek istiyorum. Ne yapacağım? Diziyi direk parametre olarak gönderirsek istemediğimiz sonuç ile karşılaşırız. Burada da karşımıza dizileri parçalama operatörü olan spread çıkıyor. Aşağıdaki kodda add fonksiyonunu çağırıyorum fakat sonuç olarak toplamı değil arrayin kendisini gösteriyor. Bu sorunu çözmek için spread operatörü kullanmalıyız.

Rest operatörünü kullanırken parametre olarak en sona tanımlanması gerekir. Eğer tanımlanmazsa 10.satırdaki hata alınır.

Spread Operatörü Nedir?

Spread operatörü, bir arrayi elemanlarına ayırmak için kullanılır. Kullanımı rest ile aynıdır. Fakat burada 3 noktayı dizinin başına getirmemiz gerekir.

Aşağıdaki kodda yazan Math.max girilen sayılardan en büyüğünü gösteren bir fonksiyondur. Parametre olarak …value alır.

Rest ve spread operatörlerinden bahsettik. Bir tek kaldı de destructuring.

Destructuring Operatörü Nedir?

Destructuring, bir obje veya bir array içinden her bir elemanın alınıp bir değişken içine kaydedilmesidir.

Aşağıdaki kodda human objesinin özelliklerini destructuring olmadan ve destructuring kullanarak console ekranında gösterdik. Sonuç aynı olmasına rağmen neden destructuringi kullanalım? Birçok yerde objemiz olduğunu ve bu obje özelliklerine sürekli objeAdi.özellik gibi erişmeye çalıştığınızı düşünün. Her yeri obje adı ile doldurmak yerine kullanmak istediğim özelliği değişken adı olarak tanımlarız ve onu kullanırız.

--

--