Skip to content

Commit d0089b9

Browse files
authored
Merge pull request lydiahallie#224 from yusufkaracin/august17
Translates 95-101 to Turkish
2 parents 16628eb + 98a4715 commit d0089b9

File tree

1 file changed

+242
-1
lines changed

1 file changed

+242
-1
lines changed

tr-TR/README-tr_TR.md

Lines changed: 242 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[Instagram](https://www.instagram.com/theavocoder) hesabımda, günlük olarak çoktan seçmeli Javascript soruları paylaşıyorum, ayrıca burada da paylaşacağım!
44

5-
Temelden ileri düzeye: Javascript'i ne kadar iyi bildiğinizi test edin, bilginizi biraz tazeleyin ya da mülakatanıza hazırlanın! :muscle: :rocket: Repoyu haftalık olarak yeni sorularla güncelliyorum. Son güncelleme: <a href=#20190805><b>5 Ağustos</b></a>
5+
Temelden ileri düzeye: Javascript'i ne kadar iyi bildiğinizi test edin, bilginizi biraz tazeleyin ya da mülakatanıza hazırlanın! :muscle: :rocket: Repoyu haftalık olarak yeni sorularla güncelliyorum. Son güncelleme: <a href=#20190817><b>17 Ağustos</b></a>
66

77
Cevaplar, soruların altında gizlenmiştir. Görmek için sadece tıklayın. İyi şanşlar :heart:
88

@@ -2972,3 +2972,244 @@ Yukarıdaki örnek çalışır. `[ 'banana', 'apple', 'orange', 'pear' ]` dizisi
29722972

29732973
</p>
29742974
</details>
2975+
2976+
---
2977+
2978+
###### <a name=20190817></a>95. Çıktısı Nedir?
2979+
2980+
```javascript
2981+
function nums(a, b) {
2982+
if
2983+
(a > b)
2984+
console.log('a is bigger')
2985+
else
2986+
console.log('b is bigger')
2987+
return
2988+
a + b
2989+
}
2990+
2991+
console.log(nums(4, 2))
2992+
console.log(nums(1, 2))
2993+
```
2994+
2995+
- A: `a is bigger`, `6` ve `b is bigger`, `3`
2996+
- B: `a is bigger`, `undefined` ve `b is bigger`, `undefined`
2997+
- C: `undefined` ve `undefined`
2998+
- D: `SyntaxError`
2999+
3000+
<details><summary><b>Cevap</b></summary>
3001+
<p>
3002+
3003+
#### Cevap: B
3004+
3005+
JavaScript'te, noktalı virgülü (`;`) özellikle yazmak _zorunda değiliz_, ancak JavaScript motoru ifadelerden sonra noktalı virgül eklemektedir. bu **Automatic Semicolon Insertion**, **Otomatik Noktalı Virgül Ekleme**, olarak adlandırılır. İfade, örneğin, değişkenler ya da `throw`, `return`, `break`, vb. gibi anahtar kelimeler olabilir.
3006+
3007+
Burada, bir `return` ifadesi yazdık, ve _yeni bir satırda_ başka bir değer olarak `a + b`. Ancak, `a + b` yeni satırda olduğundan, JavaScript motoru onun aslında bizim döndürmek istediğimiz değer olduğunu bilmiyor. Onun yerine, `return`'den sonra otomatik olarak noktalı virgül ekliyor. Şöyle düşünebilirsiniz:
3008+
3009+
```javascript
3010+
return;
3011+
a + b
3012+
```
3013+
3014+
Fonksiyon `return` anahtar kelimesinden sonra çalışmayı durduracağından, `a + b` asla ulaşılamaz demektir. Eğer hiçbir değer döndürülmezse, fonksiyon `undefined` döndürür. Dikkat etmeniz gereken, `if/else` ifadelerinden sonra otomatik ekleme yapılmadığıdır!
3015+
3016+
</p>
3017+
</details>
3018+
3019+
---
3020+
3021+
###### 96. Çıktısı Nedir?
3022+
3023+
```javascript
3024+
class Person {
3025+
constructor() {
3026+
this.name = "Lydia"
3027+
}
3028+
}
3029+
3030+
Person = class AnotherPerson {
3031+
constructor() {
3032+
this.name = "Sarah"
3033+
}
3034+
}
3035+
3036+
const member = new Person()
3037+
console.log(member.name)
3038+
```
3039+
3040+
- A: `"Lydia"`
3041+
- B: `"Sarah"`
3042+
- C: `Error: cannot redeclare Person`
3043+
- D: `SyntaxError`
3044+
3045+
<details><summary><b>Cevap</b></summary>
3046+
<p>
3047+
3048+
#### Cevap: B
3049+
3050+
Sınıfları diğer sınıf/fonksiyon yapıcılara eşitleyebiliriz. Bu örnekte, `Person``AnotherPerson`'a eşitliyoruz. Bu yapıcıdaki `name` `Sarah`'dır, yani `Person` instance'ı olan `member` üzerindeki `name` özelliği `"Sarah"`'tır.
3051+
3052+
</p>
3053+
</details>
3054+
3055+
---
3056+
3057+
###### 97. Çıktısı Nedir?
3058+
3059+
```javascript
3060+
const info = {
3061+
[Symbol('a')]: 'b'
3062+
}
3063+
3064+
console.log(info)
3065+
console.log(Object.keys(info))
3066+
```
3067+
3068+
- A: `{Symbol('a'): 'b'}` ve `["{Symbol('a')"]`
3069+
- B: `{}` ve `[]`
3070+
- C: `{ a: "b" }` ve `["a"]`
3071+
- D: `{Symbol('a'): 'b'}` ve `[]`
3072+
3073+
<details><summary><b>Cevap</b></summary>
3074+
<p>
3075+
3076+
#### Cevap: D
3077+
3078+
Symbol _sayılabilir_, "_enumerable_" değildir. Object.keys methodu nesne üzerindeki tüm _sayılabilir_ özellikleri döndürür. Symbol gizli kalır ve boş bir dizi döndürülür. Tüm nesne loglandığı zaman, bütün özellikler görülebilir, sayılabilir olmayanlar bile.
3079+
3080+
Bu symbol'ün birçok özelliğinden birisidir: tamamen benzersiz bir değer temsil etmenin yanında (ki nesneler üzerindeki kazara isim çakışmasını önler, örneğin aynı nesneye özellikler eklemek isteyen 2 kütüphaneyle çalışırken), ayrıca bu yolla nesne üzerindeki özellikleri "saklayabilirsiniz" (gerçi tamamen değil. `Object.getOwnPropertySymbols()` methodunu kullanarak symbol'lere hala erişebilirsiniz).
3081+
3082+
</p>
3083+
</details>
3084+
3085+
---
3086+
3087+
###### 98. Çıktısı Nedir?
3088+
3089+
```javascript
3090+
const getList = ([x, ...y]) => [x, y]
3091+
const getUser = user => { name: user.name, age: user.age }
3092+
3093+
const list = [1, 2, 3, 4]
3094+
const user = { name: "Lydia", age: 21 }
3095+
3096+
console.log(getList(list))
3097+
console.log(getUser(user))
3098+
```
3099+
3100+
- A: `[1, [2, 3, 4]]` ve `undefined`
3101+
- B: `[1, [2, 3, 4]]` ve `{ name: "Lydia", age: 21 }`
3102+
- C: `[1, 2, 3, 4]` ve `{ name: "Lydia", age: 21 }`
3103+
- D: `Error` ve `{ name: "Lydia", age: 21 }`
3104+
3105+
<details><summary><b>Cevap</b></summary>
3106+
<p>
3107+
3108+
#### Cevap: A
3109+
3110+
`getList` fonksiyonu argüman olarak bir dizi alır. `getList` fonksiyonunun parentezleri arasında, bu diziyi anında parçalıyoruz. Şu şekilde görebilirsiniz:
3111+
3112+
`[x, ...y] = [1, 2, 3, 4]`
3113+
3114+
`...y` rest parametresi ile, dizi içinde "geriye kalan" tüm argümanları topluyoruz. Geriye kalan argümanlar `2`, `3`, ve `4` bu durumda. `y`'nin değeri tüm rest parametleri içeren bir dizi. `x`'in değeri `1`'a eşit, yani `[x, y]` logladığımız zaman, `[1, [2, 3, 4]]` loglanır.
3115+
3116+
`getUser` fonksiyonu bir nesne alıyor. Ok fonksiyonlar ile, eğer sadece bir değer döndürmek istiyorsak süslü parentezleri yazmak _zorunda değiliz._ Ancak, bir ok fonksiyondan bir _nesne_ döndürmek istiyorsanız, parentezler arasında yazmak zorundasınız, aksi halde değer döndürülmez! Aşağıdaki fonksiyon bir nesne döndürecektir:
3117+
3118+
```const getUser = user => ({ name: user.name, age: user.age })```
3119+
3120+
Bu örnekte değer döndürülmediği için, fonksiyon `undefined` döndürür.
3121+
3122+
</p>
3123+
</details>
3124+
3125+
---
3126+
3127+
###### 99. Çıktısı Nedir?
3128+
3129+
```javascript
3130+
const name = "Lydia"
3131+
3132+
console.log(name())
3133+
```
3134+
3135+
- A: `SyntaxError`
3136+
- B: `ReferenceError`
3137+
- C: `TypeError`
3138+
- D: `undefined`
3139+
3140+
<details><summary><b>Cevap</b></summary>
3141+
<p>
3142+
3143+
#### Cevap: C
3144+
3145+
`name` değişkeni string bir değer saklıyor, ki bu bir fonksiyon değil, bu yüzden çağrılamaz.
3146+
3147+
TypeError'lar bir değer beklenilen tipte olmadığı zaman fırlatılır. `name`'i çağırmaya çalıştığımızdan, JavaScript `name`'in bir fonksiyon olmasını bekliyor. Ancak o bir string, bu yüzden TypeError fırlatılır: name is not a function!
3148+
3149+
SyntaxError'lar JavaScript'in geçerli olmadığı bir şeyler yazdığız zaman fırlatılır, örneğin `return``retrun` olarak yazdığınız zaman.
3150+
3151+
ReferenceError'lar erişmeye çalıştığınız değer için JavaScript referans bulamadığı zaman fırlatılır.
3152+
3153+
</p>
3154+
</details>
3155+
3156+
---
3157+
3158+
###### 100. Çıktısı Nedir?
3159+
3160+
```javascript
3161+
// 🎉✨ 100. soru! ✨🎉
3162+
3163+
const output = `${[] && 'Im'}possible!
3164+
You should${'' && `n't`} see a therapist after so much JavaScript lol`
3165+
```
3166+
3167+
- A: `possible! You should see a therapist after so much JavaScript lol`
3168+
- B: `Impossible! You should see a therapist after so much JavaScript lol`
3169+
- C: `possible! You shouldn't see a therapist after so much JavaScript lol`
3170+
- D: `Impossible! You shouldn't see a therapist after so much JavaScript lol`
3171+
3172+
<details><summary><b>Cevap</b></summary>
3173+
<p>
3174+
3175+
#### Cevap: B
3176+
3177+
`[]` doğrusal bir değerdir. `&&` operatörü ile, eğer soldaki değer doğrusal bir değerse sağdaki değer döndürülür. Bu örnekte, soldaki değer `[]` doğrusal bir değerdir, böylece `"Im"` döndürülür.
3178+
3179+
`""` yanlış-ımsı bir değerdir. Eğer soldaki değer yanlış-ımsı ise, bir şey döndürülmez. `n't` döndürülmedi.
3180+
3181+
</p>
3182+
</details>
3183+
3184+
---
3185+
3186+
###### 101. Çıktısı Nedir?
3187+
3188+
```javascript
3189+
const one = (false || {} || null)
3190+
const two = (null || false || "")
3191+
const three = ([] || 0 || true)
3192+
3193+
console.log(one, two, three)
3194+
```
3195+
3196+
- A: `false` `null` `[]`
3197+
- B: `null` `""` `true`
3198+
- C: `{}` `""` `[]`
3199+
- D: `null` `null` `true`
3200+
3201+
<details><summary><b>Cevap</b></summary>
3202+
<p>
3203+
3204+
#### Cevap: C
3205+
3206+
`||` operatörü ile, ile doğrusal operand'ı döndürebiliriz. Eğer tüm değerler yanlış-ımsı ise, son operand döndürülür.
3207+
3208+
`(false || {} || null)`: boş nesne `{}` doğrusal bir değerdir. İlk (ve tek) doğrusal değer, döndürülür. `one` `{}` eşittir.
3209+
3210+
`(null || false || "")`: tüm operand'lar yanlış-ımsı. Bu demektir ki son operand, `""` döndürülür. `two` `""` eşittir.
3211+
3212+
`([] || 0 || "")`: boş dizi `[]` doğrusal bir değerdir. Bu ilk doğrusal değer, döndürülür. `three` `[]` eşittir.
3213+
3214+
</p>
3215+
</details>

0 commit comments

Comments
 (0)