You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Herşey beklendiği gibi çalışıyor. Dikkat ederseniz köşeli parantez içerisindeki kelimeler tırnak içerisinde yazılır, tek tırnak veya çift tırnak önemli değildir. Her ikisi de aynı görevi görür.
123
+
Her şey beklendiği gibi çalışıyor. Dikkat ederseniz köşeli parantez içerisindeki kelimeler tırnak içerisinde yazılır, tek tırnak veya çift tırnak önemli değildir. Her ikisi de aynı görevi görür.
124
124
125
125
Bunun yanında aşağıdaki gibi değişken üzerinden de gidilebilir:
126
126
@@ -214,15 +214,15 @@ let obj = {};
214
214
obj.__proto__ = 5;
215
215
alert(obj.__proto__); // [object Object], beklendiği gibi çalışmadı.
216
216
```
217
-
Kodda göründüğü üzere, 5, ilkel bir tip olduğundan dolayı atanamadı ve görmezden gelindi.
217
+
Kodda görüldüğü üzere, 5, ilkel bir tip olduğundan dolayı atanamadı ve görmezden gelindi.
218
218
219
-
Bundan dolayı eğer kullanıcıya `anahtar` tanımlattırılırsa bu aslında hatalara ve güvenlik açıklarına neden olabilir.
219
+
Bundan dolayı eğer kullanıcıya bir `anahtar` tanımlattırılırsa bu aslında hatalara ve güvenlik açıklarına neden olabilir.
220
220
221
221
Böyle bir durumda kullanıcı "__proto__" seçerse tüm mantık yukarıdaki gibi çalışmaz hale gelir.
222
222
223
223
`__proto__`'yu normal özellik olarak tanıtma yöntemi de bulunmaktadır, bunu ilerleyen zamanlarda işlenecektir.
224
224
225
-
Farklı bir veri yapısı daha vardır [Map](info:map-set-weakmap-weakset). Bu <info:map-set-weakmap-weakset> bölümünden incelenebilir, ki bu her türlü anahtarı kabul eder.
225
+
[Map](info:map-set-weakmap-weakset) adında farklı bir veri yapısı daha vardır ve her türlü anahtarı kabul eder. <info:map-set-weakmap-weakset> bölümünden incelenebilir.
226
226
````
227
227
228
228
@@ -252,8 +252,8 @@ Yukarıdaki örnekte özellikler değişkenler ile aynı isme sahipler. Bu çeş
252
252
functionkullaniciOlustur(isim, yas) {
253
253
*!*
254
254
return {
255
-
isim, // isim: name ile aynı
256
-
yas //age: age ile aynı
255
+
isim, // isim: isim ile aynı
256
+
yas //yas: yas ile aynı
257
257
// ...
258
258
};
259
259
*/!*
@@ -293,9 +293,9 @@ alert( "yas" in kullanici ); // true, kullanici.age özelliği mevcut.
Yazıma dikkat edersenin`in` in sol tarafında *özellik ismi* tırnak içinde yazılır.
296
+
Yazıma dikkat ederseniz`in` in sol tarafında *özellik ismi* tırnak içinde yazılır.
297
297
298
-
Eğer tırnağı unutursanız bu durumda değişkenin değerini obje içinde arar halbuki bizim amacımız değişkenin isminin obje içinde aranmasıydı.
298
+
Eğer tırnağı unutursanız bu durumda değişkenin değerini obje içinde arar. Halbuki bizim amacımız değişkenin isminin obje içinde aramaktır.
299
299
300
300
Örneğin:
301
301
@@ -306,10 +306,10 @@ let anahtar = "yas";
306
306
alert( *!*anahtar*/!* in kullanici ); //true, değişkenden değerini alır ve kontrol eder.
307
307
```
308
308
309
-
````smart header="Özellik undefined dönderiyorsa nasıl kontrol edilmeli?"
310
-
Genelde sıkı karşılaştırma `"=== undefined"` doğru çalışır. Fakat burada özel bir durum mevcuttur ve sıkı karşılaştırma da başarısız olur, fakat bu durumda bile `"in"` doğru çalışır.
309
+
````smart header="Eğer özellik undefined döndürüyorsa nasıl kontrol edilmelidir?"
310
+
Genelde sıkı karşılaştırma `"=== undefined"` doğru çalışır. Fakat burada özel bir durum mevcuttur ve sıkı karşılaştırma da başarısız olur. Bu durumda bile `"in"` doğru çalışır.
311
311
312
-
Bu olay objenin özelliğinin var olduğu fakat `undefined` döndürdüğü durumda meydana gelir.
312
+
Bu olay objenin özelliğinin var olduğu fakat `undefined` döndürdüğü durumlarda meydana gelir.
313
313
314
314
```js run
315
315
let obj = {
@@ -360,9 +360,9 @@ Elbette `anahtar` yerine istediğiniz herhangi bir değişken ismini koyabilirsi
360
360
361
361
### Obje sıralaması
362
362
363
-
Objeler sıralı mıdır? Diğer bir deyişle, eğer döngü içerisinde obje yazdırılırsa bu objeye yerleştirme sırasına göre mi yazılır?
363
+
Objeler sıralı mıdır? Diğer bir deyişle; eğer döngü içerisinde obje yazdırılırsa bu objeye yerleştirme sırasına göre mi yazılır?
364
364
365
-
Kısa cevap: "özel bir şekilde sıralanır", eğer tamsayı ise değerlerine göre, diğer türlü objeye eklenme sırasına göre sıralanır.
365
+
Kısa cevap: "özel bir şekilde sıralanır". Eğer tam sayı ise değerlerine göre, tam sayı değil ise türlü objeye eklenme sırasına göre sıralanır.
366
366
367
367
Örneğin telefon kodları:
368
368
@@ -412,7 +412,7 @@ for (let ozellik in kullanici) {
412
412
alert( ozellik ); // isim, soyisim, yas
413
413
}
414
414
```
415
-
Peki telefon kodları (tam sayı değerleri) nasıl eklenme sırasına göre kullanılabilir? Bunun için her koddan önce `"+"` işaretini kullanmak yeterli olacaktır.
415
+
Peki telefon kodları (tam sayı değerleri) nasıl eklenme sırasına göre kullanılabilir? Bunun için her koddan önce `"+"` işaretini kullanmak yeterli olacaktır.
416
416
417
417
Şu şekilde:
418
418
@@ -432,9 +432,9 @@ for(let kod in kodlar) {
432
432
433
433
Olması gerektiği gibi çalışır.
434
434
435
-
## Referans İle Kopyalama
435
+
## Referans ile kopyalama
436
436
437
-
Objeler ile ilkel tipler (karakter dizisi, sayı, boolean vs.) arasındaki temel fark objelerin saklanması ve kopyalanması "referans" ile olur.
437
+
Objeler ile ilkel tipler (karakter dizisi, sayı, boolean vs.) arasındaki temel fark objelerin saklanması ve kopyalanması "referans" ile olur.
438
438
439
439
Fakat ilkel tipler tamamen kopyalanır.
440
440
@@ -464,7 +464,7 @@ let kullanici = {
464
464
465
465
Obje hafızada herhangi bir yerde saklandı ve `kullanici` değişkeni buna "referans" oldu.
466
466
467
-
**Obje değişkeni kopyalandığında aslında objenin referansı kopyalanır hafızadaki obje kopyalanmaz**
467
+
**Obje değişkeni kopyalandığında aslında objenin referansı kopyalanır, hafızadaki obje kopyalanmaz.**
468
468
469
469
Yine objeyi bir dolap olarak düşünürseniz değişken bu dolabın anahtarıdır. Kopyaladığınız zaman dolabı değil de anahtarı kopyalamış olursunuz.
alert(*!*kullanici.isim*/!*); //'İhsan', değişikliği kullanici referansında da etkili oldu. `Mümtaz` değişerek `İhsan` oldu.
494
494
```
495
495
496
-
Bu örnekten de anlaşılacağı üzere sadece bir tane obje var. Bir dolabın iki anahtarı olması gibi. Bu anahtarlardan biri `yonetici` diğeri `kullanici` dır. Yonetici ile dolabı açıp bir şey değiştirip daha sonra `kullanici` anahtarı ile açtığınızda dolabın içindeki değişikliği görebilirsiniz.
496
+
Bu örnekten de anlaşılacağı üzere sadece bir tane obje var. Bir dolabın iki anahtarı olması gibi. Bu anahtarlardan biri `yonetici` diğeri `kullanici` dır. `yonetıcı` ile dolabı açıp bir şey değiştirip daha sonra `kullanici` anahtarı ile açtığınızda dolabın içindeki değişikliği görebilirsiniz.
0 commit comments