ES6 ile bir değişkenden diğer değişkene atama konusunda diziler, nesneler, parametre içerik eşlemesi gibi alanlarda birçok yenilik yapılmıştır. Bu bölüm gelişmiş atama özelliklerine ayrılmıştır.
Klasik bir programlama dilinde “=” kullanarak bir değişken diğer değişkene değer ataması ve nesne ise referans ataması yapılır. Örneğin, bir yer değiştirme işlemi için geçici bir değişkene ihtiyaç duyulurdu ve klasik çözüm (ES5’te) aşağıdaki gibiydi.
1 2 3 4 5 6 |
var list = [ 1, 2, 3 ]; console.log(list); var tmp = list[0]; list[0] = list[2]; list[2] = tmp; console.log(list); |
1 2 |
Array(3) [1, 2, 3] Array(3) [3, 2, 1] |
Bir dizide iki değişkeni yerini değiştirmek için tmp adında bir değişken geçici olarak kullanılmıştır. Yeni atama yapısında tmp değişkenine gerek kalmadan bu işlemi yapmaya olanak sağlar. Örneğin (ES6),
1 2 3 |
let list = [ 1, 2, 3 ] [ list[2], list[1],list[0] ] = [ list[0], list[1], list[2]] console.log(list) |
Örnekte dizi üzerinde iki sayının yeri tek satırda değiştirilmiştir. Örneğin a ve b gibi iki değişkenin yerini değiştirmek için [a, b] = [b, a] şeklinde bir tanımlama yeterlidir. Bu özellik, klasik atamaya göre daha esnek bir kullanım sunmaktadır.
Bir dizi üzerinden istediğiniz elemanları değişkenlere atmak son derece kolaydır. Örneğin,
1 2 3 4 |
var list = [ 7, 42 ] var [ a = 1, b = 2, c = 3, d ] = list console.log(a, b, c, d) |
1 |
7 42 3 undefined |
ilk satırdaki list değişkenin değerler 0 ve 1 bölümde a ve b üzerine atanmıştır. a, b, c geçerli değerleri sırasıyla 1, 2, 3’tür ancak a, b list’ten gelen değerlerle değişir. d ise bir geçerli değeri olmadığı ve değer almadığı içn undefined olarak görüntülenir.
Hiç geçerli değer kullanmadan da veriler alınabilir. Ayrıca, dizi üzerinde istenmeyen kısımlar “,” ile geçilebilir. Örneğin,
1 2 3 4 5 |
const a1 = [1,2,3,4,5] const [birinci, ikinci] = a1 console.log(birinci, ikinci) const [m, n, , , y] = a1 console.log(m, n, y) |
1 |
1 2 5 |