From 9c94eb537957f08de6df47f751ed4fd2efd7d9c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yig=CC=86it=20Tosun?= Date: Sun, 24 Jul 2022 12:51:20 +0300 Subject: [PATCH 01/13] Translate 06_day_loops to Turkish --- Turkish/06_Day_Loops/06_day_loops.md | 483 +++++++++++++++++++++++++++ 1 file changed, 483 insertions(+) create mode 100644 Turkish/06_Day_Loops/06_day_loops.md diff --git a/Turkish/06_Day_Loops/06_day_loops.md b/Turkish/06_Day_Loops/06_day_loops.md new file mode 100644 index 0000000..8f9d9cb --- /dev/null +++ b/Turkish/06_Day_Loops/06_day_loops.md @@ -0,0 +1,483 @@ +
+

30 Days Of JavaScript: Loops

+ + + + + Twitter Follow + + + Author: + Asabeneh Yetayeh
+ January, 2020 +
+
+ +[<< Gün 5](../05_Day_Arrays/05_day_arrays.md) | [Gün 7 >>](../07_Day_Functions/07_day_functions.md) + +![Gün 5](../images/banners/day_1_6.png) + +- [📔 Gün 6](#-day-6) + - [Döngüler](#loops) + - [for Döngüsü](#for-loop) + - [while Döngüsü](#while-loop) + - [do while Döngüsü](#do-while-loop) + - [for of Döngüsü](#for-of-loop) + - [break](#break) + - [continue](#continue) + - [💻 Egzersiz:Gün 6](#-exercisesday-6) + - [Egzersiz: Seviye 1](#exercises-level-1) + - [Egzersiz: Seviye 2](#exercises-level-2) + - [Egzersiz: Seviye 3](#exercises-level-3) + +# 📔 Gün 6 + +## Döngüler + +Hayatta yaptığımız aktivitelerin çoğu tekrarlarla doludur. console.log() kullanarak 0'dan 100'e çıktı almanızı istediğimi düşünün. Bu basit görevi uygulamak 2 ila 5 dakikanızı alabilir, bu tür sıkıcı ve tekrarlayan görevler döngü kullanılarak yapılabilir. Videoları izlemeyi tercih ederseniz, linke tıklayabilirsiniz (\*Yazarın önerisi). [Eğitim videosu](https://www.youtube.com/channel/UCM4xOopkYiPwJqyKsSqL9mw) + +Programlama dillerinde tekrarlayan görevleri gerçekleştirmek için farklı türde döngüler kullanırız. Aşağıdaki örnekler, JavaScript ve diğer programlama dillerinde yaygın olarak kullanılan döngülerdir. + +### for Döngüsü + +```js +// For döngüsü yapısı +for(initialization, condition, increment/decrement){ + // code goes here +} +``` + +```js +for(let i = 0; i <= 5; i++){ + console.log(i) +} + +// 0 1 2 3 4 5 +``` + +```js +for(let i = 5; i >= 0; i--){ + console.log(i) +} + +// 5 4 3 2 1 0 +``` + +```js +for(let i = 0; i <= 5; i++){ + console.log(`${i} * ${i} = ${i * i}`) +} +``` + +```sh +0 * 0 = 0 +1 * 1 = 1 +2 * 2 = 4 +3 * 3 = 9 +4 * 4 = 16 +5 * 5 = 25 +``` + +```js +const countries = ['Finland', 'Sweden', 'Denmark', 'Norway', 'Iceland'] +const newArr = [] +for(let i = 0; i < countries.length; i++){ + newArr.push(countries[i].toUpperCase()) +} + +// ["FINLAND", "SWEDEN", "DENMARK", "NORWAY", "ICELAND"] +``` + +Dizideki tüm öğeleri ekleme + +```js +const numbers = [1, 2, 3, 4, 5] +let sum = 0 +for(let i = 0; i < numbers.length; i++){ + sum = sum + numbers[i] // daha kısa yazmak istersek, sum += numbers[i] + +} + +console.log(sum) // 15 +``` + +Mevcut diziye dayalı yeni bir dizi oluşturma + +```js +const numbers = [1, 2, 3, 4, 5] +const newArr = [] +let sum = 0 +for(let i = 0; i < numbers.length; i++){ + newArr.push( numbers[i] ** 2) + +} + +console.log(newArr) // [1, 4, 9, 16, 25] +``` + +```js +const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] +const newArr = [] +for(let i = 0; i < countries.length; i++){ + newArr.push(countries[i].toUpperCase()) +} + +console.log(newArr) // ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"] +``` + +### while Döngüsü + +```js +let i = 0 +while (i <= 5) { + console.log(i) + i++ +} + +// 0 1 2 3 4 5 +``` + +### do while Döngüsü + +```js +let i = 0 +do { + console.log(i) + i++ +} while (i <= 5) + +// 0 1 2 3 4 5 +``` + +### for of Döngüsü + +Diziler için for of döngüsünü kullanırız. Dizideki her bir elemanın indeksiyle ilgilenmiyorsak eğer, bir diziyi yinelemenin en kolay yoludur. + +```js +for (const element of arr) { + // code goes here +} +``` + +```js + +const numbers = [1, 2, 3, 4, 5] + +for (const num of numbers) { + console.log(num) +} + +// 1 2 3 4 5 + +for (const num of numbers) { + console.log(num * num) +} + +// 1 4 9 16 25 + +// dizideki tüm sayıları ekleyerek +let sum = 0 +for (const num of numbers) { + sum = sum + num + // daha kısa yazmak istersek, sum += num + // bundan sonraki kodlarda daha kısa syntax kullanacağız(+=, -=, *=, /= etc) +} +console.log(sum) // 15 + +const webTechs = [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Redux', + 'Node', + 'MongoDB' +] + +for (const tech of webTechs) { + console.log(tech.toUpperCase()) +} + +// HTML CSS JAVASCRIPT REACT NODE MONGODB + +for (const tech of webTechs) { + console.log(tech[0]) // get only the first letter of each element, H C J R N M +} + +``` + +```js +const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] +const newArr = [] +for(const country of countries){ + newArr.push(country.toUpperCase()) +} + +console.log(newArr) // ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"] +``` + +### break + +Break bir döngüyü durdurmak için kullanılır. + +```js +for(let i = 0; i <= 5; i++){ + if(i == 3){ + break + } + console.log(i) +} + +// 0 1 2 +``` + +Yineleme işleminde 3 e eşit olduğunda döngüden çıkılır. + +### continue + +Belirli bir yineleme işlemini atlamak için kullanılır. + +```js +for(let i = 0; i <= 5; i++){ + if(i == 3){ + continue + } + console.log(i) +} + +// 0 1 2 4 5 +``` + +🌕 Çok cesursun, buralara kadar geldin. Artık tekrarlayan ve sıkıcı görevleri döngü içerisinde yazma gücüne sahip oldunuz. 6. gün zorluklarını yeni tamamladınız ve mükemmelliğe giden yolda 6 adım öndesiniz. Şimdi beyniniz ve kasınız için bazı egzersizler yapın. + +## 💻 Egzersiz:Gün 6 + +### Egzersiz: Seviye 1 + + ```js + const countries = [ + 'Albania', + 'Bolivia', + 'Canada', + 'Denmark', + 'Ethiopia', + 'Finland', + 'Germany', + 'Hungary', + 'Ireland', + 'Japan', + 'Kenya' + ] + + const webTechs = [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Redux', + 'Node', + 'MongoDB' + ] + + const mernStack = ['MongoDB', 'Express', 'React', 'Node'] + ``` + +1. for döngüsünü kullanarak 0'dan 10'a kadar yineleyin, while ve do while döngüsünü kullanarak aynısını yapın +2. for döngüsünü kullanarak 10'dan 0'a kadar yineleyin, while ve do while döngüsünü kullanarak aynısını yapın +3. for döngüsünü kullanarak 0'dan n'ye kadar yineleyin +4. console.log() kullanarak aşağıdaki kalıbı oluşturan bir döngü yazın: + + ```js + # + ## + ### + #### + ##### + ###### + ####### + ``` + +5. Aşağıdaki deseni yazdırmak için döngüyü kullanın: + + ```sh + 0 x 0 = 0 + 1 x 1 = 1 + 2 x 2 = 4 + 3 x 3 = 9 + 4 x 4 = 16 + 5 x 5 = 25 + 6 x 6 = 36 + 7 x 7 = 49 + 8 x 8 = 64 + 9 x 9 = 81 + 10 x 10 = 100 + ``` + +6. Aşağıdaki deseni yazdırmak için döngüyü kullanın: + + ```sh + i i^2 i^3 + 0 0 0 + 1 1 1 + 2 4 8 + 3 9 27 + 4 16 64 + 5 25 125 + 6 36 216 + 7 49 343 + 8 64 512 + 9 81 729 + 10 100 1000 + ``` + +7. 0'dan 100'e kadar yineleme yapmak ve yalnızca çift sayıları yazdırmak için for döngüsü kullanın +8. 0'dan 100'e kadar yineleme yapmak ve yalnızca tek sayıları yazdırmak için for döngüsü kullanın +9. 0'dan 100'e kadar yineleme yapmak ve yalnızca asal sayıları yazdırmak için for döngüsü kullanın +10. 0'dan 100'e kadar yineleme yapmak ve tüm sayıların toplamını yazdırmak için for döngüsünü kullanın. + + ```sh + The sum of all numbers from 0 to 100 is 5050. + ``` + +11. 0'dan 100'e kadar yineleme yapmak için for döngüsünü kullanın ve tüm çiftlerin toplamını ve tüm oranların toplamını yazdırın + + ```sh + The sum of all evens from 0 to 100 is 2550. And the sum of all odds from 0 to 100 is 2500. + ``` + +12. 0'dan 100'e kadar yineleme yapmak için for döngüsünü kullanın ve tüm çiftlerin toplamını ve tüm oranların toplamını yazdırın. Çiftlerin toplamını ve oranların toplamını dizi olarak yazdırın. + + ```sh + [2550, 2500] + ``` + +13. 5 rastgele sayı dizisi oluşturan küçük bir komut dosyası geliştirin +14. 5 rastgele sayı dizisi oluşturan küçük bir komut dosyası geliştirin ve sayılar benzersiz olmalıdır. +15. Altı karakterlik rastgele bir kimlik oluşturan küçük bir komut dosyası geliştirin + + ```sh + 5j2khz + ``` + +### Egzersiz: Seviye 2 + +1. Herhangi bir sayıda rastgele karakter oluşturan küçük bir komut dosyası geliştirin + + ```sh + fe3jo1gl124g + ``` + + ```sh + xkqci4utda1lmbelpkm03rba + ``` + +1. Rastgele bir onaltılık sayı üreten bir komut dosyası yazın. + + ```sh + '#ee33df' + ``` + +1. Rastgele bir RGB renk numarası üreten bir komut dosyası yazın. + + ```sh + rgb(240,180,80) + ``` + +1. Seviye 1 deki ülkeler dizisini kullanarak aşağıdaki yeni diziyi oluşturun. + + ```sh + ["ALBANIA", "BOLIVIA", "CANADA", "DENMARK", "ETHIOPIA", "FINLAND", "GERMANY", "HUNGARY", "IRELAND", "JAPAN", "KENYA"] + ``` + +1. Seviye 1 deki ülkeler dizisini kullanarak, ülkeler uzunluğu için bir dizi oluşturun'. + + ```sh + [7, 7, 6, 7, 8, 7, 7, 7, 7, 5, 5] + ``` + +1. Aşağıdaki diziyi oluşturmak için country dizisini kullanın: + + ```sh + [ + ['Albania', 'ALB', 7], + ['Bolivia', 'BOL', 7], + ['Canada', 'CAN', 6], + ['Denmark', 'DEN', 7], + ['Ethiopia', 'ETH', 8], + ['Finland', 'FIN', 7], + ['Germany', 'GER', 7], + ['Hungary', 'HUN', 7], + ['Ireland', 'IRE', 7], + ['Iceland', 'ICE', 7], + ['Japan', 'JAP', 5], + ['Kenya', 'KEN', 5] + ] + ``` + +2. Yukarıdaki ülkeler dizisinde, 'land' kelimesini içeren bir ülke veya ülkeler olup olmadığını kontrol edin. 'land' içeren ülkeler varsa, onu dizi olarak yazdırın. 'land' kelimesini içeren bir ülke yoksa, 'All these countries are without land' yazdırın. + + ```sh + ['Finland','Ireland', 'Iceland'] + ``` + +3. Yukarıdaki ülkeler dizisinde, 'ia' alt dizesiyle biten bir ülke veya ülkeler olup olmadığını kontrol edin. Sonu ile biten ülkeler varsa dizi olarak yazdırın. 'ai' kelimesini içeren bir ülke yoksa, 'These are countries ends without ia'' yazdırın. + + ```sh + ['Albania', 'Bolivia','Ethiopia'] + ``` + +4. Yukarıdaki ülkeler dizisini kullanarak en fazla karakter içeren ülkeyi bulun. + + ```sh + Ethiopia + ``` + +5. Yukarıdaki ülkeler dizisini kullanarak sadece 5 karakter içeren ülkeyi bulun. + + ```sh + ['Japan', 'Kenya'] + ``` + +6. webTechs dizisindeki en uzun kelimeyi bulun +7. Aşağıdaki diziyi oluşturmak için webTechs dizisini kullanın + + ```sh + [["HTML", 4], ["CSS", 3],["JavaScript", 10],["React", 5],["Redux", 5],["Node", 4],["MongoDB", 7]] + ``` + +8. MongoDB, Express, React ve Node kullanılarak oluşturulan bir uygulamaya MERN yığın uygulaması denir. mernStack dizisini kullanarak MERN kısaltmasını oluşturun. +9. Bir for döngüsü veya for of döngüsü kullanarak ["HTML", "CSS", "JS", "React", "Redux", "Node", "Express", "MongoDB"] dizisini yineleyin. +10. Bu bir meyve dizisidir, ['banana', 'orange', 'mango', 'lemon'] ters bir yöntem kullanmadan döngü kullanarak sırayı tersine çeviriniz. +11. Dizinin tüm öğelerini aşağıda gösterildiği gibi yazdırın. + + ```js + const fullStack = [ + ['HTML', 'CSS', 'JS', 'React'], + ['Node', 'Express', 'MongoDB'] + ] + ```` + + ```sh + HTML + CSS + JS + REACT + NODE + EXPRESS + MONGODB + ``` + +### Egzersiz: Seviye 3 + +1. Ülkeler dizisini kopyala. (Mutasyondan kaçının) +1. Diziler değişkendir. Orijinali değiştirmeden dizinin bir kopyasını oluşturun. Kopyalanan diziyi sıralayın ve sortedCountries değişkeninde saklayın. +1. webTechs dizisini ve mernStack dizisini sıralayın. +1. [countries dizisindeki](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) en yüksek sayıda karakteri içeren ülkeyi bulun. +1. [countries dizisinden](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) 'land' kelimesini içeren tüm ülkeleri ayıklayın ve dizi olarak yazdırın. +1. [countries dizisinden](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) sadece dört karakter içeren tüm ülkeleri ayıklayın ve dizi olarak yazdırın. +1. [countries dizisinden](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) iki veya daha fazla kelime içeren tüm ülkeleri çıkartın ve dizi olarak yazdırın. +1. [countries dizisini](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) ters çevirin, her ülkeyi büyük harf yapın ve bir dizi olarak saklayın. + +🎉 TEBRİKLER ! 🎉 + +[<< Gün 5](../05_Day_Arrays/05_day_arrays.md) | [Gün 7 >>](../07_Day_Functions/07_day_functions.md) From 56eb2f19de4613e5f93468a5f63171a0ee96c736 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yig=CC=86it=20Tosun?= Date: Sun, 24 Jul 2022 13:31:08 +0300 Subject: [PATCH 02/13] Add links for paragraph --- Turkish/06_Day_Loops/06_day_loops.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Turkish/06_Day_Loops/06_day_loops.md b/Turkish/06_Day_Loops/06_day_loops.md index 8f9d9cb..c1087a6 100644 --- a/Turkish/06_Day_Loops/06_day_loops.md +++ b/Turkish/06_Day_Loops/06_day_loops.md @@ -18,17 +18,17 @@ ![Gün 5](../images/banners/day_1_6.png) - [📔 Gün 6](#-day-6) - - [Döngüler](#loops) - - [for Döngüsü](#for-loop) - - [while Döngüsü](#while-loop) - - [do while Döngüsü](#do-while-loop) - - [for of Döngüsü](#for-of-loop) - - [break](#break) + - [Döngüler](#donguler) + - [for Döngüsü](#for-dongusu) + - [while Döngüsü](#while-dongusu) + - [do while Döngüsü](#do-while-dongusu) + - [for of Döngüsü](#for-of-dongusu) + - [break](#break)x - [continue](#continue) - - [💻 Egzersiz:Gün 6](#-exercisesday-6) - - [Egzersiz: Seviye 1](#exercises-level-1) - - [Egzersiz: Seviye 2](#exercises-level-2) - - [Egzersiz: Seviye 3](#exercises-level-3) + - [💻 Egzersiz:Gün 6](#-egzersiz-gun-6) + - [Egzersiz: Seviye 1](#egzersiz-seviye-1) + - [Egzersiz: Seviye 2](#egzersiz-seviye-2) + - [Egzersiz: Seviye 3](#egzersiz-seviye-3) # 📔 Gün 6 From 6db0f3d91451a633b0893d019e5885233b829d3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yig=CC=86it=20Tosun?= Date: Sun, 24 Jul 2022 13:34:39 +0300 Subject: [PATCH 03/13] Change image path --- Turkish/06_Day_Loops/06_day_loops.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Turkish/06_Day_Loops/06_day_loops.md b/Turkish/06_Day_Loops/06_day_loops.md index c1087a6..7e20d74 100644 --- a/Turkish/06_Day_Loops/06_day_loops.md +++ b/Turkish/06_Day_Loops/06_day_loops.md @@ -15,7 +15,7 @@ [<< Gün 5](../05_Day_Arrays/05_day_arrays.md) | [Gün 7 >>](../07_Day_Functions/07_day_functions.md) -![Gün 5](../images/banners/day_1_6.png) +![Gün 5](../../images/banners/day_1_6.png) - [📔 Gün 6](#-day-6) - [Döngüler](#donguler) @@ -23,7 +23,7 @@ - [while Döngüsü](#while-dongusu) - [do while Döngüsü](#do-while-dongusu) - [for of Döngüsü](#for-of-dongusu) - - [break](#break)x + - [break](#break) - [continue](#continue) - [💻 Egzersiz:Gün 6](#-egzersiz-gun-6) - [Egzersiz: Seviye 1](#egzersiz-seviye-1) From 5e715f6302dbddd1d67e2448e5f690b2a9d2fab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hasan=20H=C3=BCseyin=20Alav?= <73330164+hsynalv@users.noreply.github.com> Date: Sun, 24 Jul 2022 16:55:28 +0300 Subject: [PATCH 04/13] day 6 translated to Turkish day 6 translated to Turkish --- Turkish/06_Day_Loops_Donguler/06_day_loops.md | 451 ++++++++++++++++++ .../06_day_starter/data/countries.js | 195 ++++++++ .../06_day_starter/index.html | 17 + .../06_day_starter/scripts/main.js | 2 + 4 files changed, 665 insertions(+) create mode 100644 Turkish/06_Day_Loops_Donguler/06_day_loops.md create mode 100644 Turkish/06_Day_Loops_Donguler/06_day_starter/data/countries.js create mode 100644 Turkish/06_Day_Loops_Donguler/06_day_starter/index.html create mode 100644 Turkish/06_Day_Loops_Donguler/06_day_starter/scripts/main.js diff --git a/Turkish/06_Day_Loops_Donguler/06_day_loops.md b/Turkish/06_Day_Loops_Donguler/06_day_loops.md new file mode 100644 index 0000000..df503a1 --- /dev/null +++ b/Turkish/06_Day_Loops_Donguler/06_day_loops.md @@ -0,0 +1,451 @@ +
+

30 Günde JavaScript: Loops - Döngüler

+ + + + + Twitter Follow + + + Author: + Asabeneh Yetayeh
+ Çevirmen: + Hasan Hüseyin Alav
+ Temmuz 2022 +
+
+ +[<< 5. Gün](../05_Day_Arrays/05_day_arrays.md) | [8. Gün >>](../07_Day_Functions/07_day_functions.md) + +![Day 6](/images/banners/day_1_6.png) + +- [📔 6. gün](#-day-6) + - [Loops - Döngüler](#loops) + - [For Döngüsü](#for-loop---for-döngüsü) + - [while Döngüsü](#while-loop---while-döngüsü) + - [do while Döngüsü](#do-while-loop-do-while-döngüsü) + - [for of Döngüsü](#for-of-loop---for-of-döngüsü) + - [break](#break) + - [continue](#continue) + - [💻 Alıştırmalar - Pratik: 6. Gün](#💻-alıştırma---prtik-6-gün) + - [Alıştırmalar - Pratik: 1. Seviye](#pratik-1-seviye) + - [Alıştırmalar - Pratik: 2. Seviye](#pratik-2-seviye) + - [Alıştırmalar - Pratik: 3. Seviye](#pratik-3-seviye) + +# 📔 6. Gün + +## Loops - Döngüler + +Yazılım kariyerimizde bir çok defa aynı işi tekrar tekrar yapmamız gerekebilir. Basit olarak Console.log() kullanarak 0'den 100'e kadar çıktı yazdırmayı deneyelim. Bu basit uygulamayı gerçekleştirmek bile 2 ila 5 dakika arasında zamanımızı alabilir; bu tür yorucu ve tekrarlayan görevler döngü kullanılarak gerçekleştirilebilir. Videoları izlemeyi tercih ediyorsanız. [video örnekleri](https://www.youtube.com/channel/UCM4xOopkYiPwJqyKsSqL9mw) + +Tekrar eden görevleri gerçekleştirmek için programlama dillerinde farklı döngü türleri kullanırız. Aşağıdaki örnekler, JavaScript ve diğer programlama dillerinde yaygın olarak kullanılan döngülerdir. + +### for Loop - for Döngüsü + +```js +// For Döngüsünün yapısı +for(başlangıç_değeri, şart, arttırma/azaltma){ + // uygulamak istediğimiz kod +} +``` + +```js +for(let i = 0; i <= 5; i++){ + console.log(i) +} + +// 0 1 2 3 4 5 +``` + +```js +for(let i = 5; i >= 0; i--){ + console.log(i) +} + +// 5 4 3 2 1 0 +``` + +```js +for(let i = 0; i <= 5; i++){ + console.log(`${i} * ${i} = ${i * i}`) +} +``` + +```sh +0 * 0 = 0 +1 * 1 = 1 +2 * 2 = 4 +3 * 3 = 9 +4 * 4 = 16 +5 * 5 = 25 +``` + +```js +const countries = ['Finland', 'Sweden', 'Denmark', 'Norway', 'Iceland'] +const newArr = [] +for(let i = 0; i < countries.length; i++){ + newArr.push(countries[i].toUpperCase()) +} + +// ["FINLAND", "SWEDEN", "DENMARK", "NORWAY", "ICELAND"] +``` + +Dizideki tüm elemanları toplama + +```js +const numbers = [1, 2, 3, 4, 5] +let sum = 0 +for(let i = 0; i < numbers.length; i++){ + sum = sum + numbers[i] + // daha pratik kullanım için, sum += numbers[i] + +} + +console.log(sum) // 15 +``` + +Mevcut diziyi temel alan yeni bir dizi oluşturma + +```js +const numbers = [1, 2, 3, 4, 5] +const newArr = [] +let sum = 0 +for(let i = 0; i < numbers.length; i++){ + newArr.push( numbers[i] ** 2) + +} + +console.log(newArr) // [1, 4, 9, 16, 25] +``` + +```js +const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] +const newArr = [] +for(let i = 0; i < countries.length; i++){ + newArr.push(countries[i].toUpperCase()) +} + +console.log(newArr) // ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"] +``` + +### while loop - while Döngüsü + +while anahtar kelimesinin yanında belirtilen şarta doğru olduğu sürece çalışan bir döngü türüdür. Eğer koşul sürekli doğru çıkacak şekilde ayarlanırsa while döngüsü uygulama kasten kesilmediği sürece sonsuza kadar devam edebilir. Bu yüzden buraya dikkat etmek gerekebilir. + +```js +let i = 0 +while (i <= 5) { + console.log(i) + i++ +} + +// 0 1 2 3 4 5 +``` + +### do while loop do while döngüsü + + +do while döngüsü Koşul ile belirtilen alanın doğru olup olmadığına bakmadan kod bloğunu bir kez çalıştırır ve daha sonra Koşul ile belirtilen alan doğru (true) olduğu sürece kod bloğunun çalışması için kullanılır. + +```js +let i = 0 +do { + console.log(i) + i++ +} while (i <= 5) + +// 0 1 2 3 4 5 +``` + +### for of loop - for of döngüsü + +ES6, geleneksel bir döngüden daha basit olan bir döngü olan yeni bir döngü yöntemi sunar ve her tür için ve giriş döngülerinin eksikliklerini telafi eder. + +`for..of `Deyimi, yinelenen nesneler üzerinde yinelemek için bir döngü oluşturur. ES6'da tanıtılan `for..of` döngü , yeni yinelemeli protokollerin yerini alır. `for..in` ve `forEach()` destekler. `for..of` Array (Diziler), String (Metinler), Map (Haritalar), Set (Kümeler), Array benzeri nesneler (örneğin arguments veya NodeList), ve diğer yinelenen veri yapıları arasında yineleme yapmanızı sağlar. + +```js +for (const element of arr) { + // uygulamak istediğimiz kod +} +``` + +```js + +const numbers = [1, 2, 3, 4, 5] + +for (const num of numbers) { + console.log(num) +} + +// 1 2 3 4 5 + +for (const num of numbers) { + console.log(num * num) +} + +// 1 4 9 16 25 + +// array içindeki tüm nsayıları toplama +let sum = 0 +for (const num of numbers) { + sum = sum + num + // daha pratik kullanım için, sum += num + // bundan sonra pratik olan bu syntax türünün kullanacağız(+=, -=, *=, /= etc) +} +console.log(sum) // 15 + +const webTechs = [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Redux', + 'Node', + 'MongoDB' +] + +for (const tech of webTechs) { + console.log(tech.toUpperCase()) +} + +// HTML CSS JAVASCRIPT REACT NODE MONGODB + +for (const tech of webTechs) { + console.log(tech[0]) // her öğenin yalnızca ilk harfini alın, H C J R N M +} + +``` + +```js +const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] +const newArr = [] +for(const country of countries){ + newArr.push(country.toUpperCase()) +} + +console.log(newArr) // ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"] +``` + +### break + +Break, bir döngüyü kesmek için kullanılır. + +```js +for(let i = 0; i <= 5; i++){ + if(i == 3){ + break; + } + console.log(i) +} + +// 0 1 2 +``` + + i değeri 3 sayısına eşit olduğunda döngüyü durdurur +### continue + +Belirli bir döngü aşamasını atlamak için `continue` anahtar kelimesi kullanılır. + +```js +for(let i = 0; i <= 5; i++){ + if(i == 3){ + continue + } + console.log(i) +} + +// 0 1 2 4 5 +``` + +🌕 Adım adım öğrenmeye devam. 6. günü başarıyla bitirdiğmize göre şimdi sıra alıştırma ve pratik yapmada. + +## 💻 Alıştırma - Prtik: 6. Gün + +### Pratik: 1. seviye + + ```js + const countries = [ + 'Albania', + 'Bolivia', + 'Canada', + 'Denmark', + 'Ethiopia', + 'Finland', + 'Germany', + 'Hungary', + 'Ireland', + 'Japan', + 'Kenya' + ] + + const webTechs = [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Redux', + 'Node', + 'MongoDB' + ] + + const mernStack = ['MongoDB', 'Express', 'React', 'Node'] + ``` + +1. while ve do while kullanarak 0 dan 10'a kadar giden bir döngü kurun. +2. while ve do while kullanarak 10 dan 0'a kadar giden bir döngü kurun. +3. 0'dan n' e kadar giden bir for döngüsü kurun. +4. Console.log() kullanarak aşağıdaki çıktıyı almayı deneyin. + + ```js + # + ## + ### + #### + ##### + ###### + ####### + ``` + +5. Aşağıdaki çıktıyı almak için bir döngü kurun: + + ```sh + 0 x 0 = 0 + 1 x 1 = 1 + 2 x 2 = 4 + 3 x 3 = 9 + 4 x 4 = 16 + 5 x 5 = 25 + 6 x 6 = 36 + 7 x 7 = 49 + 8 x 8 = 64 + 9 x 9 = 81 + 10 x 10 = 100 + ``` + +6. Aşağıdaki çıktıyı almak için bir döngü kurun: + + ```sh + i i^2 i^3 + 0 0 0 + 1 1 1 + 2 4 8 + 3 9 27 + 4 16 64 + 5 25 125 + 6 36 216 + 7 49 343 + 8 64 512 + 9 81 729 + 10 100 1000 + ``` + +7. 0'dan 100'e kadar olan çift sayıları bir döngü yardımı ile ekrana yazdırın. +8. 0'dan 100'e kadar olan tek sayıları bir döngü yardımı ile ekrana yazdırın +9. 0'dan 100'e kadar olan asal sayıları bir döngü yardımı ile ekrana yazdırın +10. 0 ile 100 arasındaki tüm sayıların toplamını ekrana yazıdırn + + ```sh + 0 ile 100 arasındaki sayıların toplamı: 5050. + ``` + +11. 0 ile 100 arasındaki tek ve çift sayıların toplamını bulun + + ```sh + Çift sayıların toplamı 2550 + Tek sayıların toplamı 2500 + ``` + +### Pratik: 2. seviye + +1. Herhangi bir sayıda rastgele id numarası atayan bir fonksiyon yazın + + ```sh + fe3jo1gl124g + ``` + + ```sh + xkqci4utda1lmbelpkm03rba + ``` + +2. Rastgele hexadecimal sayı üreten bir fonksiyon yazın. + + ```sh + '#ee33df' + ``` + +3. Rastgele bir rgb renk numarası oluşturan fonksiyon yazın. + + ```sh + rgb(240,180,80) + ``` + + ```sh + ["ALBANIA", "BOLIVIA", "CANADA", "DENMARK", "ETHIOPIA", "FINLAND", "GERMANY", "HUNGARY", "IRELAND", "JAPAN", "KENYA"] + ``` + +4. Yukarıdaki array'i kullanarak rastgele yeni bir dizi oluşturun. + +5. Yukarıdaki array'i kullanarak ülkelerin harf uzunluklarını içeren bir dizi olşturun'. + + ```sh + [7, 7, 6, 7, 8, 7, 7, 7, 7, 5, 5] + ``` + +6. Yukarıdaki diziyi kullanarak aşağıdaki diziyi oluşturun: + + ```sh + [ + ['Albania', 'ALB', 7], + ['Bolivia', 'BOL', 7], + ['Canada', 'CAN', 6], + ['Denmark', 'DEN', 7], + ['Ethiopia', 'ETH', 8], + ['Finland', 'FIN', 7], + ['Germany', 'GER', 7], + ['Hungary', 'HUN', 7], + ['Ireland', 'IRE', 7], + ['Iceland', 'ICE', 7], + ['Japan', 'JAP', 5], + ['Kenya', 'KEN', 5] + ] + ``` + +7. Yukarıdaki ülkeler dizisinde "land" sözcüğünü içeren bir ülke veya ülke olup olmadığını kontrol edin. "land" içeren ülkeler varsa bunu dizi halinde yazdırın. + + ```sh + ['Finland','Ireland', 'Iceland'] + ``` + +8. Yukarıdaki ülkeler dizisinde "ia" sözcüğünü içeren bir ülke veya ülke olup olmadığını kontrol edin. "ia" içeren ülkeler varsa bunu dizi halinde yazdırın.. + + ```sh + ['Albania', 'Bolivia','Ethiopia'] + ``` + +9. Yukarıdaki ülkeler dizisini kullanarak en fazla karakter içeren ülkeyi bulun. + + ```sh + Ethiopia + ``` + +10. Yukarıdaki ülkeler dizisini kullanarak, yalnızca 5 karakter içeren ülkeyi bulun. + + ```sh + ['Japan', 'Kenya'] + ``` + + +### Pratik: 3. seviye + +1. Countries dizisini kopyalayın(Avoid mutation) +2. Diziler değişebilir. Dizinin orjinalini değişirmeden bir kopyasını oluşturun. Oluşturduğunuz diziyi alfabetik olarak sıralayın ve sortedCountries dizisine atayın +3. webTechs dzisini ve mernStack dizisini sıralayın +4. [countries array](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js)inden "land" sözüğü ile biten ülkeleri farklı bir diziye atayın +5. [countries array](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) inden en uzun karakterli ülkeyi bulun +6. [countries array](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) inde 4 karakterli ülkeleri yazdırın +7. [countries array](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) inde iki veya daha fazla kelime içieren ülkeleri farklı bir diziye atayın +8. [countries array](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) i ters çevirin ve ülkelerin tüm harflerini büyük hale gertirin + +🎉 Tebrikler ! 🎉 + +[<< 6. Gün](../05_Day_Arrays/05_day_arrays.md) | [7. Gün >>](../07_Day_Functions/07_day_functions.md) diff --git a/Turkish/06_Day_Loops_Donguler/06_day_starter/data/countries.js b/Turkish/06_Day_Loops_Donguler/06_day_starter/data/countries.js new file mode 100644 index 0000000..d0c4ec4 --- /dev/null +++ b/Turkish/06_Day_Loops_Donguler/06_day_starter/data/countries.js @@ -0,0 +1,195 @@ +const countries = [ + 'Afghanistan', + 'Albania', + 'Algeria', + 'Andorra', + 'Angola', + 'Antigua and Barbuda', + 'Argentina', + 'Armenia', + 'Australia', + 'Austria', + 'Azerbaijan', + 'Bahamas', + 'Bahrain', + 'Bangladesh', + 'Barbados', + 'Belarus', + 'Belgium', + 'Belize', + 'Benin', + 'Bhutan', + 'Bolivia', + 'Bosnia and Herzegovina', + 'Botswana', + 'Brazil', + 'Brunei', + 'Bulgaria', + 'Burkina Faso', + 'Burundi', + 'Cambodia', + 'Cameroon', + 'Canada', + 'Cape Verde', + 'Central African Republic', + 'Chad', + 'Chile', + 'China', + 'Colombi', + 'Comoros', + 'Congo (Brazzaville)', + 'Congo', + 'Costa Rica', + "Cote d'Ivoire", + 'Croatia', + 'Cuba', + 'Cyprus', + 'Czech Republic', + 'Denmark', + 'Djibouti', + 'Dominica', + 'Dominican Republic', + 'East Timor (Timor Timur)', + 'Ecuador', + 'Egypt', + 'El Salvador', + 'Equatorial Guinea', + 'Eritrea', + 'Estonia', + 'Ethiopia', + 'Fiji', + 'Finland', + 'France', + 'Gabon', + 'Gambia, The', + 'Georgia', + 'Germany', + 'Ghana', + 'Greece', + 'Grenada', + 'Guatemala', + 'Guinea', + 'Guinea-Bissau', + 'Guyana', + 'Haiti', + 'Honduras', + 'Hungary', + 'Iceland', + 'India', + 'Indonesia', + 'Iran', + 'Iraq', + 'Ireland', + 'Israel', + 'Italy', + 'Jamaica', + 'Japan', + 'Jordan', + 'Kazakhstan', + 'Kenya', + 'Kiribati', + 'Korea, North', + 'Korea, South', + 'Kuwait', + 'Kyrgyzstan', + 'Laos', + 'Latvia', + 'Lebanon', + 'Lesotho', + 'Liberia', + 'Libya', + 'Liechtenstein', + 'Lithuania', + 'Luxembourg', + 'Macedonia', + 'Madagascar', + 'Malawi', + 'Malaysia', + 'Maldives', + 'Mali', + 'Malta', + 'Marshall Islands', + 'Mauritania', + 'Mauritius', + 'Mexico', + 'Micronesia', + 'Moldova', + 'Monaco', + 'Mongolia', + 'Morocco', + 'Mozambique', + 'Myanmar', + 'Namibia', + 'Nauru', + 'Nepal', + 'Netherlands', + 'New Zealand', + 'Nicaragua', + 'Niger', + 'Nigeria', + 'Norway', + 'Oman', + 'Pakistan', + 'Palau', + 'Panama', + 'Papua New Guinea', + 'Paraguay', + 'Peru', + 'Philippines', + 'Poland', + 'Portugal', + 'Qatar', + 'Romania', + 'Russia', + 'Rwanda', + 'Saint Kitts and Nevis', + 'Saint Lucia', + 'Saint Vincent', + 'Samoa', + 'San Marino', + 'Sao Tome and Principe', + 'Saudi Arabia', + 'Senegal', + 'Serbia and Montenegro', + 'Seychelles', + 'Sierra Leone', + 'Singapore', + 'Slovakia', + 'Slovenia', + 'Solomon Islands', + 'Somalia', + 'South Africa', + 'Spain', + 'Sri Lanka', + 'Sudan', + 'Suriname', + 'Swaziland', + 'Sweden', + 'Switzerland', + 'Syria', + 'Taiwan', + 'Tajikistan', + 'Tanzania', + 'Thailand', + 'Togo', + 'Tonga', + 'Trinidad and Tobago', + 'Tunisia', + 'Turkey', + 'Turkmenistan', + 'Tuvalu', + 'Uganda', + 'Ukraine', + 'United Arab Emirates', + 'United Kingdom', + 'United States', + 'Uruguay', + 'Uzbekistan', + 'Vanuatu', + 'Vatican City', + 'Venezuela', + 'Vietnam', + 'Yemen', + 'Zambia', + 'Zimbabwe' +] diff --git a/Turkish/06_Day_Loops_Donguler/06_day_starter/index.html b/Turkish/06_Day_Loops_Donguler/06_day_starter/index.html new file mode 100644 index 0000000..2b6cbab --- /dev/null +++ b/Turkish/06_Day_Loops_Donguler/06_day_starter/index.html @@ -0,0 +1,17 @@ + + + + + 30DaysOfJavaScript:06 Day + + + +

30DaysOfJavaScript:06 Day

+

Loops

+ + + + + + + \ No newline at end of file diff --git a/Turkish/06_Day_Loops_Donguler/06_day_starter/scripts/main.js b/Turkish/06_Day_Loops_Donguler/06_day_starter/scripts/main.js new file mode 100644 index 0000000..421fb87 --- /dev/null +++ b/Turkish/06_Day_Loops_Donguler/06_day_starter/scripts/main.js @@ -0,0 +1,2 @@ +console.log(countries) +alert('Open the console and check if the countries has been loaded') \ No newline at end of file From 869173619e40491f51d854d9c60be1b856ce01ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hasan=20H=C3=BCseyin=20Alav?= <73330164+hsynalv@users.noreply.github.com> Date: Sun, 24 Jul 2022 17:29:11 +0300 Subject: [PATCH 05/13] redirect bug fixed --- Turkish/readMe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Turkish/readMe.md b/Turkish/readMe.md index 6810a6a..eaeea93 100644 --- a/Turkish/readMe.md +++ b/Turkish/readMe.md @@ -7,7 +7,7 @@ | 03 | [Boolean, Operatörler, Tarih](./03_Day_Booleans_operators_date/03_booleans_operators_date.md) | | 04 | [Koşullar](./04_Day_Conditionals/04_day_conditionals.md) | | 05 | [Diziler](./05_Day_Arrays/05_day_arrays.md) | -| 06 | [Döngüler](./06_Day_Loops/06_day_loops.md) | +| 06 | [Döngüler](./06_Day_Loops_Donguler/06_day_loops.md) | | 07 | [Fonksiyonlar](./07_Day_Functions/07_day_functions.md) | | 08 | [Nesneler](./08_Day_Objects/08_day_objects.md) | | 09 | [Yüksek Dereceli Fonksiyonlar](./09_Day_Higher_order_functions/09_day_higher_order_functions.md) | From 596599fdf59a83aefcc94533fe52429af82a4386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hasan=20H=C3=BCseyin=20Alav?= <73330164+hsynalv@users.noreply.github.com> Date: Mon, 25 Jul 2022 00:21:01 +0300 Subject: [PATCH 06/13] day 7 translated to Turkish --- Turkish/07_Day_Functions/07_day_functions.md | 716 ++++++++++++++++++ .../07_day_starter/data/countries.js | 195 +++++ .../07_day_starter/index.html | 17 + .../07_day_starter/scripts/main.js | 2 + 4 files changed, 930 insertions(+) create mode 100644 Turkish/07_Day_Functions/07_day_functions.md create mode 100644 Turkish/07_Day_Functions/07_day_starter/data/countries.js create mode 100644 Turkish/07_Day_Functions/07_day_starter/index.html create mode 100644 Turkish/07_Day_Functions/07_day_starter/scripts/main.js diff --git a/Turkish/07_Day_Functions/07_day_functions.md b/Turkish/07_Day_Functions/07_day_functions.md new file mode 100644 index 0000000..ab180b4 --- /dev/null +++ b/Turkish/07_Day_Functions/07_day_functions.md @@ -0,0 +1,716 @@ +
+

30 günde JavaScript: Fonksiyonlar

+ + + + + Twitter Follow + + + Author: + Asabeneh Yetayeh
+ Çevirmen: + Hasan Hüseyin Alav
+ Temmuz 2022 +
+
+ +[<< Day 6](../06_Day_Loops_Donguler/06_day_loops.md) | [Day 8 >>](../08_Day_Objects/08_day_objects.md) + +![Thirty Days Of JavaScript](/images/banners/day_1_7.png) + +- [📔 7. Gün](#-day-7) + - [Functions - Fonksiyonlar](#functions---fonksiyonlar) + - [Klasik fonksiyon Tanımlama](#klasik-fonksiyon-tanımlama) + - [Anonymous Function - İsimsiz fonksiyon](#anonymous-function---i̇simsiz-fonksiyon) + - [Expression Function](#expression-function) + - [Parametresiz ve dönüş değeri olmayan fonksiyon](#parametresiz-ve-dönüş-değeri-olamayan-fonksiyon) + - [Fonksiyonlarda return kullanımı](#bir-değer-döndüren-fonksiyon) + - [Bir parametreli fonksiyon](#parametreli-fonksiyon) + - [İki parametreli fonksiyon](#i̇ki-parametreli-fonksiyon) + - [Çok parametreli fonksiyon](#çok-parametreli-fonksiyon) + - [Sınırsız sayıda parametreyle çalışan fonksiyon](#sınırsız-sayıda-parametreyle-çalışan-fonksiyon) + - [Klasik fonksiyonda sınırsız sayıda parametre](#klasik-fonksiyonda-sınırsız-sayıda-parametre) + - [Kendi kendine çağırılan fonksiyon - Self Invokinf function](#kendi-kendine-çağırılan-fonksiyon) + - [Arrow Function](#arrow-function) + - [Arrow function'da sınırsız sayıda parametre](#arrow-functionda-sınırsız-sayıda-parametre) + - [Default parametre ile fonksiyon kullanımı](#default-parametre-ile-fonksiyon-kullanımı) + - [Function declaration versus Arrow function](#function-declaration-versus-arrow-function) + - [💻 Exercises](#-exercises) + - [Exercises: Level 1](#exercises-level-1) + - [Exercises: Level 2](#exercises-level-2) + - [Exercises: Level 3](#exercises-level-3) + +# 📔 7. Gün + +## Functions - Fonksiyonlar + + +Şimdiye kadar birçok JavaScript fonksiyonu yazdık. Bu bölümde, custom fonksiyonlara odaklanacağız. Fonksiyon nedir? Fonksiyon üretmeye başlamadan önce, fonksiyonun ne olduğunu ve neden fonksiyona ihtiyacımız olduğunu anlayayım. + +Bir fonksiyon, belirli bir görevi gerçekleştirmek üzere tasarlanmış yeniden kullanılabilir bir kod bloğu veya programlama tanımıdır. + +Bir fonksiyon, bir `function` anahtar kelimesi ve ardından fonksiyon adı ve ardından parantez () ile belirtilir. Parantez bir parametre alabilir. Bir fonksiyon bir parametre alırsa buna bağımsız değişken denir. Bir fonksiyon varsayılan bir parametre de alabilir. Bir fonksiyonda veri saklamak için, bir fonksiyonun belirli veri türlerini döndürmesi gerekir. Bir fonksiyonu aradığımız veya devreye aldığımız değeri elde etmek için. +Fonksiyon kod oluşturur: + +- temiz ve okunması kolay +- yeniden kullanılabilir +- kolay test edilir + +Bir fonksiyon birkaç şekilde tanımlanabilir veya oluşturulabilir: + +- _Klasik Declaration function_ +- _Expression function_ +- _Anonymous function_ +- _Arrow function_ + +### Klasik Fonksiyon Tanımlama + +Bir fonksiyonun nasıl tanımlanacağını ve çağırılacağını görelim. + +```js +//parametresiz fonksiyon tanımıı +function functionName() { + // istenilen kod parçası +} +functionName() // fonksiyon, fonksiyon adı ve parantezler ile çağırılır +``` + +### Anonymous Function - İsimsiz Fonksiyon + + +```js +const anonymousFun = function() { + console.log( + 'İsimsiz bir fonksiyonum ve değerim anonim olarak saklanıyor' + ) +} +``` + +### Expression Function + +Expression functions are anonymous functions. After we create a function without a name and we assign it to a variable. To return a value from the function we should call the variable. Look at the example below. + +Expression functions isimsiz fonksiyonlardır. İsimsiz bir fonksiyon oluşturduktan sonra bir değişkene atarız. Fonksiyondan bir değer geri getirmek için değişkeni çağırmalıyız. Aşağıdaki örneğe bakın. + +```js + +// Function expression +const square = function() { + console.log("Bu bir expression function türünde fonksiyondur") +} + +``` + +### Parametresiz ve dönüş değeri olamayan fonksiyon + +Fonksiyon, parametre olmadan tanımlanabilir. (Şu ana kadar tanımladıklarımız zaten parametresizdi) + +**Example:** + +```js +function square() { + let num = 2 + let square = num * num + console.log(square) +} + +square() // 4 + +// parametresiz fonksiyon örenek 2: +function addTwoNumbers() { + let numOne = 10 + let numTwo = 20 + let sum = numOne + numTwo + + console.log(sum) +} + +addTwoNumbers() // fonksiyon, kendisine verilen isim ile çağırılmalı +``` + +```js + function printFullName (){ + let firstName = 'Asabeneh' + let lastName = 'Yetayeh' + let space = ' ' + let fullName = firstName + space + lastName + console.log(fullName) +} + +printFullName() // fonksiyon çağırımına bir örnek +``` + +### Bir değer döndüren fonksiyon + +Fonksiyonlar geriye bir değer döndürebilir. bu işlemi `return` anahtar kelimesini kullanarak sağlarız. Normal fonksiyondan farklı olarak bir field'a atanabilir veya bir metot içerisinde parametre olarak kullanılabilir. + +```js +function printFullName (){ + let firstName = 'Asabeneh' + let lastName = 'Yetayeh' + let space = ' ' + let fullName = firstName + space + lastName + return fullName +} +console.log(printFullName()) +``` + +```js + + function addTwoNumbers() { + let numOne = 2 + let numTwo = 3 + let total = numOne + numTwo + return total + + } + +console.log(addTwoNumbers()) +``` + +### Parametreli fonksiyon + +Bir fonksiyonda farklı veri türlerini (number, string, boolean, object, function) parametre olarak geçebiliriz. + +```js +// bir parametreli fonksiyon +function functionName(parm1) { + // istenilen kod parçası +} +functionName(parm1) // fonksiyonu çağırma sırasında parantezler arasına bir parametreye ihtiyaç duyar + +function areaOfCircle(r) { + let area = Math.PI * r * r + return area +} + +console.log(areaOfCircle(10)) // bağımsız bir değişkenle çağırılmalı + +function square(number) { + return number * number +} + +console.log(square(10)) +``` + +### İki parametreli fonksiyon + +```js +// iki parametreli fonksiyon +function functionName(parm1, parm2) { + //istenilen kod parçası +} +functionName(parm1, parm2) //fonksiyonu çağırma sırasında parantezler arasında iki tane parametreye ihtiyaç duyar + +// Parametresiz fonksiyon giriş yapmaz, bu nedenle parametrelerle bir fonksiyon yapalım +function sumTwoNumbers(numOne, numTwo) { + let sum = numOne + numTwo + console.log(sum) +} +sumTwoNumbers(10, 20) // fonksiyon çağırımı +// Bir işlev geri dönmezse veri depolamaz, bu nedenle geri dönmelidir + +function sumTwoNumbers(numOne, numTwo) { + let sum = numOne + numTwo + return sum +} + +console.log(sumTwoNumbers(10, 20)) +function printFullName(firstName, lastName) { + return `${firstName} ${lastName}` +} +console.log(printFullName('Asabeneh', 'Yetayeh')) +``` + +### Çok parametreli fonksiyon + +```js +// çok parametreli fonksiyon +function functionName(parm1, parm2, parm3,...){ + //istenilen kod parçası +} +functionName(parm1,parm2,parm3,...) // fonksiyon çağırımı sırasında birden çok parametreye ihtiyaç duyar + + +// bu fonksiyon, bir diziyi parametre olarak alır ve dizideki sayıları toplar +function sumArrayValues(arr) { + let sum = 0; + for (let i = 0; i < arr.length; i++) { + sum = sum + arr[i]; + } + return sum; +} +const numbers = [1, 2, 3, 4, 5]; + //fonksiyon çağırımı +console.log(sumArrayValues(numbers)); + + + const areaOfCircle = (radius) => { + let area = Math.PI * radius * radius; + return area; + } +console.log(areaOfCircle(10)) + +``` + +### Sınırsız sayıda parametreyle çalışan fonksiyon + +Fonksiyonlarla çalışırken kaç tane parametre gerekebileceğini bilemeyebiliriz. Javascript'te bize sınırsız sayıda parametre alan fonksiyon yazabilme imkanı tanır. Bu şekilde bir fonksiyon tanımlamanın iki yolu vardır. + +#### Klasik fonksiyonda sınırsız sayıda parametre + + A function declaration provides a function scoped arguments array like object. Any thing we passed as argument in the function can be accessed from arguments object inside the functions. Let us see an example + + Bu fonksiyonun tanımlanmasını fonksiyon scope'nda object temelli arguments anahtar kelimesi ile erişilir. Parametre olarak atanan her öğeye arguments üzerinden ulaşabiliriz. Bir örneğine bakmak gerekirse; + + ```js +// arguments nesnesine erişelim +​ +function sumAllNums() { + console.log(arguments) +} + +sumAllNums(1, 2, 3, 4) +// Arguments(4) [1, 2, 3, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ] + +``` + +```js +// fonksiyon tanımı +​ +function sumAllNums() { + let sum = 0 + for (let i = 0; i < arguments.length; i++) { + sum += arguments[i] + } + return sum +} + +console.log(sumAllNums(1, 2, 3, 4)) // 10 +console.log(sumAllNums(10, 20, 13, 40, 10)) // 93 +console.log(sumAllNums(15, 20, 30, 25, 10, 33, 40)) // 173 +``` + +> Arrow function'da sınırsız sayıda parametre konusunu Arraw fonksiyonu gördükten sonra görebilirsiniz. + + +### Kendi kendine çağırılan fonksiyon + +JavaScript sözdiziminde birçok ilginç şey vardır, bunlardan biri kendi kendine çalışan (kendi kendini çağıran) fonksiyonların tanımıdır. Böyle bir fonksiyonu şu şekilde tanımlayabiliriz: + +```js +(function(n) { + console.log(n * n) +})(2) // 4, but instead of just printing if we want to return and store the data, we do as shown below + +let squaredNum = (function(n) { + return n * n +})(10) + +console.log(squaredNum) +``` + +Yukarıdaki fonksiyon, tanımlandıktan hemen sonra çağrılır. Kendi kendini çağıran işlevlerin yararı, global ad alanını karıştırmadan (herhangi bir global bildirmeden) kodu bir kez yürütmemize olanak vermeleridir. + +### Arrow Function + +Klasik fonksiyona alternatif olarak kullanılan arrow function sözdiziminde ufak bir farklılık vardır. `function` anahtar kelimesi yerine `=>` işareti kullanılır. + +Sırasıyla aynı fonksiyonu klasik ve arrow function halini yazalım + +```js +function square(n) { + return n * n +} + +console.log(square(2)) // 4 + +const square = n => { + return n * n +} + +console.log(square(2)) // -> 4 + +// kod bloğumuzda sadece bir satır kod varsa bu fonksiyon şu şekilde yazılabilir. +const square = n => n * n // -> 4 +``` + +```js +const changeToUpperCase = arr => { + const newArr = [] + for (const element of arr) { + newArr.push(element.toUpperCase()) + } + return newArr +} + +const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] +console.log(changeToUpperCase(countries)) + +// ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"] +``` + +```js +const printFullName = (firstName, lastName) => { + return `${firstName} ${lastName}` +} + +console.log(printFullName('Asabeneh', 'Yetayeh')) +``` + +Yukarıdaki fonksiyon yalnızca geri dönüş ifadesine sahiptir, bu nedenle bunu aşağıdaki şekilde açıkça iade edebiliriz. +```js +const printFullName = (firstName, lastName) => `${firstName} ${lastName}` + +console.log(printFullName('Asabeneh', 'Yetayeh')) +``` + +#### Arrow function'da sınırsız sayıda parametre + + Arrow function, klasik fonksiyon gibi arguments nesnesine sahip değildir. Arrow function'da sınırsız sayıda parametre kullanmak istersek spread operatör ve hemen ardından parametre adı kullanılır. Fonksiyonda bağımsız değişken olarak geçdiğimiz her şeye arrow functionda dizi olarak erişilebilir. Bir örnek görelim + + ```js +// arguments nesnesine erişmemize bir örnek +​ +const sumAllNums = (...args) => { + // console.log(arguments), arguments nesnesi bulunamadı + // bunun yerine spread operator (...) ve parametre adı kullanalım + console.log(args) +} + +sumAllNums(1, 2, 3, 4) +// [1, 2, 3, 4] + +``` + +```js +// function declaration +​ +const sumAllNums = (...args) => { + let sum = 0 + for (const element of args) { + sum += element + } + return sum +} + +console.log(sumAllNums(1, 2, 3, 4)) // 10 +console.log(sumAllNums(10, 20, 13, 40, 10)) // 93 +console.log(sumAllNums(15, 20, 30, 25, 10, 33, 40)) // 173 +``` + +### Default parametre ile fonksiyon kullanımı + +Bazen varsayılan değerleri parametrelere geçiririz, bir bağımsız değişkeni geçmezsek fonksiyonu çağırdığımızda varsayılan değer kullanılır. Hem klasik fonksiyon hem de arrow function varsayılan bir değere veya değerlere sahip olabilir. + +```js +// syntax - söz dizimi +// fonksiyon tanımı +function functionName(param = value) { + //codes +} + +// fonksiyon çağırımı +functionName() +functionName(arg) +``` + +**Example:** + +```js +function greetings(name = 'Peter') { + let message = `${name}, welcome to 30 Days Of JavaScript!` + return message +} + +console.log(greetings()) +console.log(greetings('Asabeneh')) +``` + +```js +function generateFullName(firstName = 'Asabeneh', lastName = 'Yetayeh') { + let space = ' ' + let fullName = firstName + space + lastName + return fullName +} + +console.log(generateFullName()) +console.log(generateFullName('David', 'Smith')) +``` + +```js +function calculateAge(birthYear, currentYear = 2019) { + let age = currentYear - birthYear + return age +} + +console.log('Age: ', calculateAge(1819)) +``` + +```js +function weightOfObject(mass, gravity = 9.81) { + let weight = mass * gravity + ' N' // değer önce dize olarak değiştirilmelidir + return weight +} + +console.log('Weight of an object in Newton: ', weightOfObject(100)) // 9.81 Dünya yüzeyinde yerçekimi +console.log('Weight of an object in Newton: ', weightOfObject(100, 1.62)) // Ay yüzeyinde yerçekimi +``` + +Yukarıdaki fonksiyonları bir de arrow function kullanarak tanımlayalım + +```js +// syntax - söz dizimi +// fonksiyonu tanımlama +const functionName = (param = value) => { + //codes +} + +// fonksiyonu çağırma +functionName() +functionName(arg) +``` + +**Example:** + +```js +const greetings = (name = 'Peter') => { + let message = name + ', welcome to 30 Days Of JavaScript!' + return message +} + +console.log(greetings()) +console.log(greetings('Asabeneh')) +``` + +```js +const generateFullName = (firstName = 'Asabeneh', lastName = 'Yetayeh') => { + let space = ' ' + let fullName = firstName + space + lastName + return fullName +} + +console.log(generateFullName()) +console.log(generateFullName('David', 'Smith')) +``` + +```js + +const calculateAge = (birthYear, currentYear = 2019) => currentYear - birthYear +console.log('Age: ', calculateAge(1819)) +``` + +```js +const weightOfObject = (mass, gravity = 9.81) => mass * gravity + ' N' + +console.log('Weight of an object in Newton: ', weightOfObject(100)) // 9.81 Dünya yüzeyinde yerçekimi +console.log('Weight of an object in Newton: ', weightOfObject(100, 1.62)) // Ay yüzeyinde yerçekimi +``` + +### Function declaration versus Arrow function + +Diğer bölümde ele alınacaktır. + +🌕 Serinin 7. gününü de başarıyla tamamladın. Durmak yok yola devam + + + +## 💻 Exercises + +### Exercises: Level 1 + +1. Declare a function _fullName_ and it print out your full name. +2. Declare a function _fullName_ and now it takes firstName, lastName as a parameter and it returns your full - name. +3. Declare a function _addNumbers_ and it takes two two parameters and it returns sum. +4. An area of a rectangle is calculated as follows: _area = length x width_. Write a function which calculates _areaOfRectangle_. +5. A perimeter of a rectangle is calculated as follows: _perimeter= 2x(length + width)_. Write a function which calculates _perimeterOfRectangle_. +6. A volume of a rectangular prism is calculated as follows: _volume = length x width x height_. Write a function which calculates _volumeOfRectPrism_. +7. Area of a circle is calculated as follows: _area = π x r x r_. Write a function which calculates _areaOfCircle_ +8. Circumference of a circle is calculated as follows: _circumference = 2πr_. Write a function which calculates _circumOfCircle_ +9. Density of a substance is calculated as follows:_density= mass/volume_. Write a function which calculates _density_. +10. Speed is calculated by dividing the total distance covered by a moving object divided by the total amount of time taken. Write a function which calculates a speed of a moving object, _speed_. +11. Weight of a substance is calculated as follows: _weight = mass x gravity_. Write a function which calculates _weight_. +12. Temperature in oC can be converted to oF using this formula: _oF = (oC x 9/5) + 32_. Write a function which convert oC to oF _convertCelsiusToFahrenheit_. +13. Body mass index(BMI) is calculated as follows: _bmi = weight in Kg / (height x height) in m2_. Write a function which calculates _bmi_. BMI is used to broadly define different weight groups in adults 20 years old or older.Check if a person is _underweight, normal, overweight_ or _obese_ based the information given below. + + - The same groups apply to both men and women. + - _Underweight_: BMI is less than 18.5 + - _Normal weight_: BMI is 18.5 to 24.9 + - _Overweight_: BMI is 25 to 29.9 + - _Obese_: BMI is 30 or more + +14. Write a function called _checkSeason_, it takes a month parameter and returns the season:Autumn, Winter, Spring or Summer. +15. Math.max returns its largest argument. Write a function findMax that takes three arguments and returns their maximum with out using Math.max method. + + ```js + console.log(findMax(0, 10, 5)) + 10 + console.log(findMax(0, -10, -2)) + 0 + ``` + +### Exercises: Level 2 + +1. Linear equation is calculated as follows: _ax + by + c = 0_. Write a function which calculates value of a linear equation, _solveLinEquation_. +1. Quadratic equation is calculated as follows: _ax2 + bx + c = 0_. Write a function which calculates value or values of a quadratic equation, _solveQuadEquation_. + + ```js + console.log(solveQuadratic()) // {0} + console.log(solveQuadratic(1, 4, 4)) // {-2} + console.log(solveQuadratic(1, -1, -2)) // {2, -1} + console.log(solveQuadratic(1, 7, 12)) // {-3, -4} + console.log(solveQuadratic(1, 0, -4)) //{2, -2} + console.log(solveQuadratic(1, -1, 0)) //{1, 0} + ``` + +1. Declare a function name _printArray_. It takes array as a parameter and it prints out each value of the array. +1. Write a function name _showDateTime_ which shows time in this format: 08/01/2020 04:08 using the Date object. + + ```sh + showDateTime() + 08/01/2020 04:08 + ``` + +1. Declare a function name _swapValues_. This function swaps value of x to y. + + ```js + swapValues(3, 4) // x => 4, y=>3 + swapValues(4, 5) // x = 5, y = 4 + ``` + +1. Declare a function name _reverseArray_. It takes array as a parameter and it returns the reverse of the array (don't use method). + + ```js + console.log(reverseArray([1, 2, 3, 4, 5])) + //[5, 4, 3, 2, 1] + console.log(reverseArray(['A', 'B', 'C'])) + //['C', 'B', 'A'] + ``` + +1. Declare a function name _capitalizeArray_. It takes array as a parameter and it returns the - capitalizedarray. +1. Declare a function name _addItem_. It takes an item parameter and it returns an array after adding the item +1. Declare a function name _removeItem_. It takes an index parameter and it returns an array after removing an item +1. Declare a function name _sumOfNumbers_. It takes a number parameter and it adds all the numbers in that range. +1. Declare a function name _sumOfOdds_. It takes a number parameter and it adds all the odd numbers in that - range. +1. Declare a function name _sumOfEven_. It takes a number parameter and it adds all the even numbers in that - range. +1. Declare a function name evensAndOdds . It takes a positive integer as parameter and it counts number of evens and odds in the number. + + ```sh + evensAndOdds(100); + The number of odds are 50. + The number of evens are 51. + ``` + +1. Write a function which takes any number of arguments and return the sum of the arguments + + ```js + sum(1, 2, 3) // -> 6 + sum(1, 2, 3, 4) // -> 10 + ``` + +1. Writ a function which generates a _randomUserIp_. +1. Write a function which generates a _randomMacAddress_ +1. Declare a function name _randomHexaNumberGenerator_. When this function is called it generates a random hexadecimal number. The function return the hexadecimal number. + + ```sh + console.log(randomHexaNumberGenerator()); + '#ee33df' + ``` + +1. Declare a function name _userIdGenerator_. When this function is called it generates seven character id. The function return the id. + + ```sh + console.log(userIdGenerator()); + 41XTDbE + ``` + +### Exercises: Level 3 + +1. Modify the _userIdGenerator_ function. Declare a function name _userIdGeneratedByUser_. It doesn’t take any parameter but it takes two inputs using prompt(). One of the input is the number of characters and the second input is the number of ids which are supposed to be generated. + + ```sh + userIdGeneratedByUser() + 'kcsy2 + SMFYb + bWmeq + ZXOYh + 2Rgxf + ' + userIdGeneratedByUser() + '1GCSgPLMaBAVQZ26 + YD7eFwNQKNs7qXaT + ycArC5yrRupyG00S + UbGxOFI7UXSWAyKN + dIV0SSUTgAdKwStr + ' + ``` + +1. Write a function name _rgbColorGenerator_ and it generates rgb colors. + + ```sh + rgbColorGenerator() + rgb(125,244,255) + ``` + +1. Write a function **_arrayOfHexaColors_** which return any number of hexadecimal colors in an array. +1. Write a function **_arrayOfRgbColors_** which return any number of RGB colors in an array. +1. Write a function **_convertHexaToRgb_** which converts hexa color to rgb and it returns an rgb color. +1. Write a function **_convertRgbToHexa_** which converts rgb to hexa color and it returns an hexa color. +1. Write a function **_generateColors_** which can generate any number of hexa or rgb colors. + + ```js + console.log(generateColors('hexa', 3)) // ['#a3e12f', '#03ed55', '#eb3d2b'] + console.log(generateColors('hexa', 1)) // '#b334ef' + console.log(generateColors('rgb', 3)) // ['rgb(5, 55, 175)', 'rgb(50, 105, 100)', 'rgb(15, 26, 80)'] + console.log(generateColors('rgb', 1)) // 'rgb(33,79, 176)' + ``` + +1. Call your function _shuffleArray_, it takes an array as a parameter and it returns a shuffled array +1. Call your function _factorial_, it takes a whole number as a parameter and it return a factorial of the number +1. Call your function _isEmpty_, it takes a parameter and it checks if it is empty or not +1. Call your function _sum_, it takes any number of arguments and it returns the sum. +1. Write a function called _sumOfArrayItems_, it takes an array parameter and return the sum of all the items. Check if all the array items are number types. If not give return reasonable feedback. +1. Write a function called _average_, it takes an array parameter and returns the average of the items. Check if all the array items are number types. If not give return reasonable feedback. +1. Write a function called _modifyArray_ takes array as parameter and modifies the fifth item of the array and return the array. If the array length is less than five it return 'item not found'. + + ```js + console.log(modifyArray(['Avocado', 'Tomato', 'Potato','Mango', 'Lemon','Carrot']); + ``` + + ```sh + ['Avocado', 'Tomato', 'Potato','Mango', 'LEMON', 'Carrot'] + ``` + + ```js + console.log(modifyArray(['Google', 'Facebook','Apple', 'Amazon','Microsoft', 'IBM']); + ``` + + ```sh + ['Google', 'Facebook','Apple', 'Amazon','MICROSOFT', 'IBM'] + ``` + + ```js + console.log(modifyArray(['Google', 'Facebook','Apple', 'Amazon']); + ``` + + ```sh + 'Not Found' + ``` + +1. Write a function called _isPrime_, which checks if a number is prime number. +1. Write a functions which checks if all items are unique in the array. +1. Write a function which checks if all the items of the array are the same data type. +1. JavaScript variable name does not support special characters or symbols except \$ or \_. Write a function **isValidVariable** which check if a variable is valid or invalid variable. +1. Write a function which returns array of seven random numbers in a range of 0-9. All the numbers must be unique. + + ```js + sevenRandomNumbers() + [(1, 4, 5, 7, 9, 8, 0)] + ``` + +1. Write a function called reverseCountries, it takes countries array and first it copy the array and returns the reverse of the original array + +🎉 CONGRATULATIONS ! 🎉 + +[<< Day 6](../06_Day_Loops/06_day_loops.md) | [Day 8 >>](../08_Day_Objects/08_day_objects.md) \ No newline at end of file diff --git a/Turkish/07_Day_Functions/07_day_starter/data/countries.js b/Turkish/07_Day_Functions/07_day_starter/data/countries.js new file mode 100644 index 0000000..d0c4ec4 --- /dev/null +++ b/Turkish/07_Day_Functions/07_day_starter/data/countries.js @@ -0,0 +1,195 @@ +const countries = [ + 'Afghanistan', + 'Albania', + 'Algeria', + 'Andorra', + 'Angola', + 'Antigua and Barbuda', + 'Argentina', + 'Armenia', + 'Australia', + 'Austria', + 'Azerbaijan', + 'Bahamas', + 'Bahrain', + 'Bangladesh', + 'Barbados', + 'Belarus', + 'Belgium', + 'Belize', + 'Benin', + 'Bhutan', + 'Bolivia', + 'Bosnia and Herzegovina', + 'Botswana', + 'Brazil', + 'Brunei', + 'Bulgaria', + 'Burkina Faso', + 'Burundi', + 'Cambodia', + 'Cameroon', + 'Canada', + 'Cape Verde', + 'Central African Republic', + 'Chad', + 'Chile', + 'China', + 'Colombi', + 'Comoros', + 'Congo (Brazzaville)', + 'Congo', + 'Costa Rica', + "Cote d'Ivoire", + 'Croatia', + 'Cuba', + 'Cyprus', + 'Czech Republic', + 'Denmark', + 'Djibouti', + 'Dominica', + 'Dominican Republic', + 'East Timor (Timor Timur)', + 'Ecuador', + 'Egypt', + 'El Salvador', + 'Equatorial Guinea', + 'Eritrea', + 'Estonia', + 'Ethiopia', + 'Fiji', + 'Finland', + 'France', + 'Gabon', + 'Gambia, The', + 'Georgia', + 'Germany', + 'Ghana', + 'Greece', + 'Grenada', + 'Guatemala', + 'Guinea', + 'Guinea-Bissau', + 'Guyana', + 'Haiti', + 'Honduras', + 'Hungary', + 'Iceland', + 'India', + 'Indonesia', + 'Iran', + 'Iraq', + 'Ireland', + 'Israel', + 'Italy', + 'Jamaica', + 'Japan', + 'Jordan', + 'Kazakhstan', + 'Kenya', + 'Kiribati', + 'Korea, North', + 'Korea, South', + 'Kuwait', + 'Kyrgyzstan', + 'Laos', + 'Latvia', + 'Lebanon', + 'Lesotho', + 'Liberia', + 'Libya', + 'Liechtenstein', + 'Lithuania', + 'Luxembourg', + 'Macedonia', + 'Madagascar', + 'Malawi', + 'Malaysia', + 'Maldives', + 'Mali', + 'Malta', + 'Marshall Islands', + 'Mauritania', + 'Mauritius', + 'Mexico', + 'Micronesia', + 'Moldova', + 'Monaco', + 'Mongolia', + 'Morocco', + 'Mozambique', + 'Myanmar', + 'Namibia', + 'Nauru', + 'Nepal', + 'Netherlands', + 'New Zealand', + 'Nicaragua', + 'Niger', + 'Nigeria', + 'Norway', + 'Oman', + 'Pakistan', + 'Palau', + 'Panama', + 'Papua New Guinea', + 'Paraguay', + 'Peru', + 'Philippines', + 'Poland', + 'Portugal', + 'Qatar', + 'Romania', + 'Russia', + 'Rwanda', + 'Saint Kitts and Nevis', + 'Saint Lucia', + 'Saint Vincent', + 'Samoa', + 'San Marino', + 'Sao Tome and Principe', + 'Saudi Arabia', + 'Senegal', + 'Serbia and Montenegro', + 'Seychelles', + 'Sierra Leone', + 'Singapore', + 'Slovakia', + 'Slovenia', + 'Solomon Islands', + 'Somalia', + 'South Africa', + 'Spain', + 'Sri Lanka', + 'Sudan', + 'Suriname', + 'Swaziland', + 'Sweden', + 'Switzerland', + 'Syria', + 'Taiwan', + 'Tajikistan', + 'Tanzania', + 'Thailand', + 'Togo', + 'Tonga', + 'Trinidad and Tobago', + 'Tunisia', + 'Turkey', + 'Turkmenistan', + 'Tuvalu', + 'Uganda', + 'Ukraine', + 'United Arab Emirates', + 'United Kingdom', + 'United States', + 'Uruguay', + 'Uzbekistan', + 'Vanuatu', + 'Vatican City', + 'Venezuela', + 'Vietnam', + 'Yemen', + 'Zambia', + 'Zimbabwe' +] diff --git a/Turkish/07_Day_Functions/07_day_starter/index.html b/Turkish/07_Day_Functions/07_day_starter/index.html new file mode 100644 index 0000000..8a97e13 --- /dev/null +++ b/Turkish/07_Day_Functions/07_day_starter/index.html @@ -0,0 +1,17 @@ + + + + + 30DaysOfJavaScript:07 Day + + + +

30DaysOfJavaScript:07 Day

+

Functions

+ + + + + + + \ No newline at end of file diff --git a/Turkish/07_Day_Functions/07_day_starter/scripts/main.js b/Turkish/07_Day_Functions/07_day_starter/scripts/main.js new file mode 100644 index 0000000..421fb87 --- /dev/null +++ b/Turkish/07_Day_Functions/07_day_starter/scripts/main.js @@ -0,0 +1,2 @@ +console.log(countries) +alert('Open the console and check if the countries has been loaded') \ No newline at end of file From cd126595f3d5f3fa7bec628777009fea0a729969 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hasan=20H=C3=BCseyin=20Alav?= <73330164+hsynalv@users.noreply.github.com> Date: Mon, 25 Jul 2022 23:37:05 +0300 Subject: [PATCH 07/13] day 7 grammer bugs fixed. --- Turkish/07_Day_Functions/07_day_functions.md | 29 ++++++++++---------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/Turkish/07_Day_Functions/07_day_functions.md b/Turkish/07_Day_Functions/07_day_functions.md index ab180b4..ed41cee 100644 --- a/Turkish/07_Day_Functions/07_day_functions.md +++ b/Turkish/07_Day_Functions/07_day_functions.md @@ -46,18 +46,19 @@ ## Functions - Fonksiyonlar -Şimdiye kadar birçok JavaScript fonksiyonu yazdık. Bu bölümde, custom fonksiyonlara odaklanacağız. Fonksiyon nedir? Fonksiyon üretmeye başlamadan önce, fonksiyonun ne olduğunu ve neden fonksiyona ihtiyacımız olduğunu anlayayım. +Şimdiye kadar birçok JavaScript fonksiyonu yazdık. Bu bölümde, custom fonksiyonlara odaklanacağız. Fonksiyon yazmaya başlamadan önce, fonksiyonun ne olduğunu ve neden fonksiyona ihtiyacımız olduğunu bakalım. -Bir fonksiyon, belirli bir görevi gerçekleştirmek üzere tasarlanmış yeniden kullanılabilir bir kod bloğu veya programlama tanımıdır. +Bir fonksiyon, belirli bir görevi gerçekleştirmek üzere tasarlanmış ve yeniden kullanılabilir bir kod bloğu veya programlama tanımıdır. -Bir fonksiyon, bir `function` anahtar kelimesi ve ardından fonksiyon adı ve ardından parantez () ile belirtilir. Parantez bir parametre alabilir. Bir fonksiyon bir parametre alırsa buna bağımsız değişken denir. Bir fonksiyon varsayılan bir parametre de alabilir. Bir fonksiyonda veri saklamak için, bir fonksiyonun belirli veri türlerini döndürmesi gerekir. Bir fonksiyonu aradığımız veya devreye aldığımız değeri elde etmek için. -Fonksiyon kod oluşturur: +Bir fonksiyon, `function` anahtar kelimesi ardından gelen o fonksiyona ait fonksiyon ismi ve parantezler ile tanımlanır. Bu paranteler fonksiyona parametre atayabilmemizi sağlar. Şayet fonksiyon parametre alırsa bu parametre fonksiyon scope'u içerisinde geçerli olan bir değişkendir. Farklı bir kullanım olarak da bu parametreye default değerler atayabiliriz. Eğer bir fonksiyon yardımı ile veri taşımak istiyorsak söz konusu fonksiyonun belirli bir veri türünü geriye değişken olarak döndürmesi gerekir. Daha sonra dönen bu değişkeni bir başka değişkene atayarak kullanabilir. + +Fonksiyon kullanmanın avantajları: - temiz ve okunması kolay - yeniden kullanılabilir - kolay test edilir -Bir fonksiyon birkaç şekilde tanımlanabilir veya oluşturulabilir: +Bir fonksiyon birkaç şekilde tanımlanabilir: - _Klasik Declaration function_ - _Expression function_ @@ -89,9 +90,8 @@ const anonymousFun = function() { ### Expression Function -Expression functions are anonymous functions. After we create a function without a name and we assign it to a variable. To return a value from the function we should call the variable. Look at the example below. -Expression functions isimsiz fonksiyonlardır. İsimsiz bir fonksiyon oluşturduktan sonra bir değişkene atarız. Fonksiyondan bir değer geri getirmek için değişkeni çağırmalıyız. Aşağıdaki örneğe bakın. +Expression function, isimsiz fonksiyonlardır. İsimsiz bir fonksiyon oluşturduktan sonra bir değişkene atayarak kullanırız. Fonksiyondan bir değer geri döndürmek için değişkeni çağırmalıyız. Örnek vemrek gerekirse. ```js @@ -117,7 +117,7 @@ function square() { square() // 4 -// parametresiz fonksiyon örenek 2: +// parametresiz fonksiyon örnek 2: function addTwoNumbers() { let numOne = 10 let numTwo = 20 @@ -209,7 +209,7 @@ function sumTwoNumbers(numOne, numTwo) { console.log(sum) } sumTwoNumbers(10, 20) // fonksiyon çağırımı -// Bir işlev geri dönmezse veri depolamaz, bu nedenle geri dönmelidir +// Bir fonksiyon değer döndürmezse veri depolayamaz, bu nedenle değer döndürmelidir. function sumTwoNumbers(numOne, numTwo) { let sum = numOne + numTwo @@ -256,7 +256,7 @@ console.log(areaOfCircle(10)) ### Sınırsız sayıda parametreyle çalışan fonksiyon -Fonksiyonlarla çalışırken kaç tane parametre gerekebileceğini bilemeyebiliriz. Javascript'te bize sınırsız sayıda parametre alan fonksiyon yazabilme imkanı tanır. Bu şekilde bir fonksiyon tanımlamanın iki yolu vardır. +Fonksiyonlarla çalışırken kaç tane parametre gerekebileceğini bilemeyebiliriz. Javascript'te bu durumda bize sınırsız sayıda parametre alan fonksiyon yazabilme imkanı tanır. Bu şekilde bir fonksiyon tanımlamanın iki yolu vardır. #### Klasik fonksiyonda sınırsız sayıda parametre @@ -317,7 +317,7 @@ Yukarıdaki fonksiyon, tanımlandıktan hemen sonra çağrılır. Kendi kendini Klasik fonksiyona alternatif olarak kullanılan arrow function sözdiziminde ufak bir farklılık vardır. `function` anahtar kelimesi yerine `=>` işareti kullanılır. -Sırasıyla aynı fonksiyonu klasik ve arrow function halini yazalım +Sırasıyla aynı fonksiyonun klasik ve arrow function halini yazalım ```js function square(n) { @@ -368,7 +368,7 @@ console.log(printFullName('Asabeneh', 'Yetayeh')) #### Arrow function'da sınırsız sayıda parametre - Arrow function, klasik fonksiyon gibi arguments nesnesine sahip değildir. Arrow function'da sınırsız sayıda parametre kullanmak istersek spread operatör ve hemen ardından parametre adı kullanılır. Fonksiyonda bağımsız değişken olarak geçdiğimiz her şeye arrow functionda dizi olarak erişilebilir. Bir örnek görelim + Arrow function, klasik fonksiyon gibi arguments nesnesine sahip değildir. Arrow function'da sınırsız sayıda parametre kullanmak istersek spread operatör (...) ve hemen ardından parametre adı kullanılır. Fonksiyonda bağımsız değişken olarak geçtiğimiz her şeye arrow functionda dizi olarak erişilebilir. Bir örnek görelim ```js // arguments nesnesine erişmemize bir örnek @@ -402,7 +402,8 @@ console.log(sumAllNums(15, 20, 30, 25, 10, 33, 40)) // 173 ### Default parametre ile fonksiyon kullanımı -Bazen varsayılan değerleri parametrelere geçiririz, bir bağımsız değişkeni geçmezsek fonksiyonu çağırdığımızda varsayılan değer kullanılır. Hem klasik fonksiyon hem de arrow function varsayılan bir değere veya değerlere sahip olabilir. + +Bazen parametrelere default değerler geçmek isteyebiliriz. Bu durumda fonksiyon çağırımı sırasında söz konusu parametreyi vermek zorunda olmadan kullanabiliriz. Eğer bu parametreyi vermezsek fonksiyon işlevinin parametrenin default değerini kullanarak tamamlayacaktır. ```js // syntax - söz dizimi @@ -713,4 +714,4 @@ Diğer bölümde ele alınacaktır. 🎉 CONGRATULATIONS ! 🎉 -[<< Day 6](../06_Day_Loops/06_day_loops.md) | [Day 8 >>](../08_Day_Objects/08_day_objects.md) \ No newline at end of file +[<< Day 6](../06_Day_Loops/06_day_loops.md) | [Day 8 >>](../08_Day_Objects/08_day_objects.md) From 5bc9ef910c3d0a8eb8b665a67823ba9e7381fea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hasan=20H=C3=BCseyin=20Alav?= <73330164+hsynalv@users.noreply.github.com> Date: Mon, 25 Jul 2022 23:39:02 +0300 Subject: [PATCH 08/13] day 6 redirect reference bug fixed --- Turkish/06_Day_Loops_Donguler/06_day_loops.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Turkish/06_Day_Loops_Donguler/06_day_loops.md b/Turkish/06_Day_Loops_Donguler/06_day_loops.md index df503a1..76cf969 100644 --- a/Turkish/06_Day_Loops_Donguler/06_day_loops.md +++ b/Turkish/06_Day_Loops_Donguler/06_day_loops.md @@ -15,7 +15,7 @@ -[<< 5. Gün](../05_Day_Arrays/05_day_arrays.md) | [8. Gün >>](../07_Day_Functions/07_day_functions.md) +[<< 5. Gün](../05_Day_Arrays/05_day_arrays.md) | [7. Gün >>](../07_Day_Functions/07_day_functions.md) ![Day 6](/images/banners/day_1_6.png) From 0e38ae49324c1cae41ee3731461c3063b0557d3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hasan=20H=C3=BCseyin=20Alav?= <73330164+hsynalv@users.noreply.github.com> Date: Mon, 25 Jul 2022 23:42:44 +0300 Subject: [PATCH 09/13] day 7 redirect reference bug fixed --- Turkish/07_Day_Functions/07_day_functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Turkish/07_Day_Functions/07_day_functions.md b/Turkish/07_Day_Functions/07_day_functions.md index ed41cee..74e1858 100644 --- a/Turkish/07_Day_Functions/07_day_functions.md +++ b/Turkish/07_Day_Functions/07_day_functions.md @@ -15,7 +15,7 @@ -[<< Day 6](../06_Day_Loops_Donguler/06_day_loops.md) | [Day 8 >>](../08_Day_Objects/08_day_objects.md) +[<< 6. Gün](../06_Day_Loops_Donguler/06_day_loops.md) | [8. Gün >>](../08_Day_Objects/08_day_objects.md) ![Thirty Days Of JavaScript](/images/banners/day_1_7.png) From cd246e91a9ec10f8eee0d28868dc4dbcc6f3f403 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yig=CC=86it=20Tosun?= Date: Thu, 28 Jul 2022 16:02:44 +0300 Subject: [PATCH 10/13] Translate 18_day_promises to Turkish --- Turkish/18_Day_Promises/18_day_promises.md | 272 +++++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 Turkish/18_Day_Promises/18_day_promises.md diff --git a/Turkish/18_Day_Promises/18_day_promises.md b/Turkish/18_Day_Promises/18_day_promises.md new file mode 100644 index 0000000..9ac5e43 --- /dev/null +++ b/Turkish/18_Day_Promises/18_day_promises.md @@ -0,0 +1,272 @@ +
+

30 Days Of JavaScript: Promises

+ + + + + Twitter Follow + + +Author: +Asabeneh Yetayeh
+ January, 2020 +
+ +
+ +[<< Gün 17](../17_Day_Web_storages/17_day_web_storages.md) | [Gün 19>>](../19_Day_Closures/19_day_closures.md) + +![Thirty Days Of JavaScript](../../images/banners/day_1_18.png) + +- [Gün 18](#day-18) + - [Promise](#promise) + - [Callbacks](#callbacks) + - [Promise yapıcısı](#promise-constructor) + - [Fetch API](#fetch-api) + - [Async ve Await](#async-and-await) + - [Egzersizler](#exercises) + - [Egzersiz: Seviye 1](#exercises-level-1) + - [Egzersiz: Seviye 2](#exercises-level-2) + - [Egzersiz: Seviye 3](#exercises-level-3) + +# Gün 18 + +## Promise + +Biz insanlar, belirli bir zamanda bir faaliyette bulunma sözü veririz veya alırız. Sözümüzü tutarsak başkalarını mutlu ederiz, ama sözümüzü tutmazsak hoşnutsuzluklara yol açabilir. JavaScript'te promise(söz) vermenin yukarıdaki örneklerle ortak bir yanı vardır. + +Bir promise, JavaScript'te asynchronous işlemleri işlemenin bir yoludur. Asynchronous bir eylemin nihai başarı değeri veya başarısızlık nedeni ile işleyicilere izin verir. Bu, asynchronous yöntemlerin synchronous yöntemler gibi değerler döndürmesine olanak tanır: asynchronous yöntem, nihai değeri hemen döndürmek yerine, gelecekte bir noktada değeri sağlama sözü verir. + +Bir Promise şu durumlardan birindedir: + +- pending: başlangıç ​​durumunda, ne tamamlandı ne de reddedildi. +- fulfilled: işlemin başarıyla tamamlandığı anlamına gelir. +- rejected: işlemin başarısız olduğu anlamına gelir. + +Bekleyen bir promise ya bir değerle yerine getirilebilir(fulfilled) ya da bir sebeple (error) rejected olabilir. Bu seçeneklerden herhangi biri gerçekleştiğinde, bir sözün o zaman yöntemiyle sıraya alınan ilişkili işleyiciler çağrılır. (Karşılık gelen bir işleyici(handler) eklendiğinde promise zaten fulfilled veya rejected ise, işleyici(handler) çağrılır, bu nedenle asynchronous bir işlemin tamamlanması ile işleyicilerinin eklenmesi arasında bir yarış koşulu yoktur.) + +As the Promise.prototype.then() and Promise.prototype.catch() methods return promises, they can be chained. + +## Callbacks + +Promise çok iyi anlamak için önce callback mantığını anlayalım. Aşağıdaki callback örneklerini görelim. Aşağıdaki kod bloklarında, callback ve promise arasındaki farkları fark edeceksiniz. + +- callback + Let us see a callback function which can take two parameters. The first parameter is err and the second is result. If the err parameter is false, there will not be error other wise it will return an error. + +In this case the err has a value and it will return the err block. + +```js +//Callback +const doSomething = callback => { + setTimeout(() => { + const skills = ['HTML', 'CSS', 'JS'] + callback('It did not go well', skills) + }, 2000) +} + +const callback = (err, result) => { + if (err) { + return console.log(err) + } + return console.log(result) +} + +doSomething(callback) +``` + +```sh +// 2 saniye sonra yazdırıcak +It did not go well +``` + +Bu durumda hata yanlıştır ve sonuç olan else bloğunu döndürür. + +```js +const doSomething = callback => { + setTimeout(() => { + const skills = ['HTML', 'CSS', 'JS'] + callback(false, skills) + }, 2000) +} + +doSomething((err, result) => { + if (err) { + return console.log(err) + } + return console.log(result) +}) +``` + +```sh +// 2 saniye sonra yazdırıcak +["HTML", "CSS", "JS"] +``` + +### Promise yapıcısı + +Promise yapıcısını kullanarak bir promise oluşturabiliriz. `new` anahtar kelimesini, ardından `Promise` kelimesini ve ardından bir parantez kullanarak yeni bir promise oluşturabiliriz. Parantez içinde bir `callback` işlevi alır. Promise callback fonksiyonu, `resolve` ve `reject` fonksiyonları olmak üzere iki parametreye sahiptir. + +```js +// syntax +const promise = new Promise((resolve, reject) => { + resolve('success') + reject('failure') +}) +``` + +```js +// Promise +const doPromise = new Promise((resolve, reject) => { + setTimeout(() => { + const skills = ['HTML', 'CSS', 'JS'] + if (skills.length > 0) { + resolve(skills) + } else { + reject('Something wrong has happened') + } + }, 2000) +}) + +doPromise + .then(result => { + console.log(result) + }) + .catch(error => console.log(error)) +``` + +```sh +["HTML", "CSS", "JS"] +``` + +Yukarıdaki promise kararlılıkla yerine getirilmiştir. Promise'ın reject ile kararlaştırıldığı başka bir örnek verelim. + +```js +// Promise +const doPromise = new Promise((resolve, reject) => { + setTimeout(() => { + const skills = ['HTML', 'CSS', 'JS'] + if (skills.includes('Node')) { + resolve('fullstack developer') + } else { + reject('Something wrong has happened') + } + }, 2000) +}) + +doPromise + .then(result => { + console.log(result) + }) + .catch(error => console.error(error)) +``` + +```sh +Something wrong has happened +``` + +## Fetch API + +Fetch API'si, kaynakları (ağ genelindekiler dahil) almak için bir interface sağlar. XMLHttpRequest kullanan herkese tanıdık gelecektir, ancak yeni API daha güçlü ve esnek bir özellik seti sağlar. Bu görevde, url ve APIS istemek için fetch kullanacağız. Buna ek olarak, fetch API'sini kullanarak ağ kaynaklarına erişimde promise kullanım durumunu gösterelim. + +```js +const url = 'https://restcountries.com/v2/all' // countries api +fetch(url) + .then(response => response.json()) // API verilerine JSON olarak erişme + .then(data => { + // verileri almak + console.log(data) + }) + .catch(error => console.error(error)) // yanlış bir şey olursa işleme hatası +``` + +## Async ve Await + +Async ve Await, promise yerine getirmenin zarif bir yoludur. Anlaşılması kolay ve yazması temiz. + +```js +const square = async function (n) { + return n * n +} + +square(2) +``` + +```sh +Promise {: 4} +``` + +Bir fonksiyonun önündeki async kelimesi, fonksiyonun bir promise vereceği anlamına gelir. Yukarıdaki kare fonksiyonu bir değer yerine bir promise verir. + +Promise gelen değere nasıl erişiriz? Promise verilen değere erişmek için, wait anahtar sözcüğünü kullanacağız. + +```js +const square = async function (n) { + return n * n +} +const value = await square(2) +console.log(value) +``` + +```sh +4 +``` + +Şimdi, yukarıdaki örnekte de görebileceğiniz gibi, bir fonksiyonun önüne async yazarak bir promise oluşturun ve bir promise değer almak için bekliyoruz. Async ve await birlikte çalışır, biri olmadan diğeri olamaz. + +API verilerini hem promise yöntemini kullanarak hem de async ve await yöntemini kullanarak getirelim. + +- promise + +```js +const url = 'https://restcountries.com/v2/all' +fetch(url) + .then(response => response.json()) + .then(data => { + console.log(data) + }) + .catch(error => console.error(error)) +``` + +- async ve await + +```js +const fetchData = async () => { + try { + const response = await fetch(url) + const countries = await response.json() + console.log(countries) + } catch (err) { + console.error(err) + } +} +console.log('===== async and await') +fetchData() +``` + +🌕 Sen gerçeksin ve sözünü tuttun ve 18. güne ulaştın. Sözünü tut ve azimle meydan oku. Büyüklüğe giden yolda 18 adım öndesin. Şimdi beyniniz ve kaslarınız için bazı egzersizler yapın + +## Egzersizler + +```js +const countriesAPI = 'https://restcountries.com/v2/all' +const catsAPI = 'https://api.thecatapi.com/v1/breeds' +``` + +### Egzersiz: Seviye 1 + +1. Fetch kullanarak countriesAPI'sini okuyun ve country, capital, languages, population ve area adını yazdırın. + +### Egzersiz: Seviye 2 + +1. Tüm kedi adlarını catNames değişkenine yazdırın. + +### Egzersiz: Seviye 3 + +1. catsAPI'sini okuyun ve kedinin ortalama ağırlığını metrik birimde bulun. +2. countriesAPI'sini okuyun ve en büyük(largest) 10 ülkeyi bulun. +3. countriesAPI'sini okuyun ve dünyada resmi olarak kullanılan toplam dil sayısını bulun. + +🎉 TEBRİKLER ! 🎉 + +[<< Gün 17](../17_Day_Web_storages/17_day_web_storages.md) | [Gün 19>>](../19_Day_Closures/19_day_closures.md) From 2e4084bae551824008fecabd252b53dfcc225f37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yig=CC=86it=20Tosun?= Date: Thu, 28 Jul 2022 16:07:51 +0300 Subject: [PATCH 11/13] Change title name --- Turkish/18_Day_Promises/18_day_promises.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Turkish/18_Day_Promises/18_day_promises.md b/Turkish/18_Day_Promises/18_day_promises.md index 9ac5e43..c3cab0f 100644 --- a/Turkish/18_Day_Promises/18_day_promises.md +++ b/Turkish/18_Day_Promises/18_day_promises.md @@ -18,16 +18,16 @@ ![Thirty Days Of JavaScript](../../images/banners/day_1_18.png) -- [Gün 18](#day-18) +- [Gün 18](#gün-18) - [Promise](#promise) - [Callbacks](#callbacks) - [Promise yapıcısı](#promise-constructor) - [Fetch API](#fetch-api) - [Async ve Await](#async-and-await) - - [Egzersizler](#exercises) - - [Egzersiz: Seviye 1](#exercises-level-1) - - [Egzersiz: Seviye 2](#exercises-level-2) - - [Egzersiz: Seviye 3](#exercises-level-3) + - [Egzersizler](#egzersizler) + - [Egzersiz: Seviye 1](#egzersiz-level-1) + - [Egzersiz: Seviye 2](#egzersiz-level-2) + - [Egzersiz: Seviye 3](#egzersiz-level-3) # Gün 18 From 55728e210bd5c79c39e504d05330bdf7819fc695 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yi=C4=9Fit=20Tosun?= Date: Thu, 28 Jul 2022 16:20:00 +0300 Subject: [PATCH 12/13] Delete 06_day_loops.md --- Turkish/06_Day_Loops/06_day_loops.md | 483 --------------------------- 1 file changed, 483 deletions(-) delete mode 100644 Turkish/06_Day_Loops/06_day_loops.md diff --git a/Turkish/06_Day_Loops/06_day_loops.md b/Turkish/06_Day_Loops/06_day_loops.md deleted file mode 100644 index 7e20d74..0000000 --- a/Turkish/06_Day_Loops/06_day_loops.md +++ /dev/null @@ -1,483 +0,0 @@ -
-

30 Days Of JavaScript: Loops

- - - - - Twitter Follow - - - Author: - Asabeneh Yetayeh
- January, 2020 -
-
- -[<< Gün 5](../05_Day_Arrays/05_day_arrays.md) | [Gün 7 >>](../07_Day_Functions/07_day_functions.md) - -![Gün 5](../../images/banners/day_1_6.png) - -- [📔 Gün 6](#-day-6) - - [Döngüler](#donguler) - - [for Döngüsü](#for-dongusu) - - [while Döngüsü](#while-dongusu) - - [do while Döngüsü](#do-while-dongusu) - - [for of Döngüsü](#for-of-dongusu) - - [break](#break) - - [continue](#continue) - - [💻 Egzersiz:Gün 6](#-egzersiz-gun-6) - - [Egzersiz: Seviye 1](#egzersiz-seviye-1) - - [Egzersiz: Seviye 2](#egzersiz-seviye-2) - - [Egzersiz: Seviye 3](#egzersiz-seviye-3) - -# 📔 Gün 6 - -## Döngüler - -Hayatta yaptığımız aktivitelerin çoğu tekrarlarla doludur. console.log() kullanarak 0'dan 100'e çıktı almanızı istediğimi düşünün. Bu basit görevi uygulamak 2 ila 5 dakikanızı alabilir, bu tür sıkıcı ve tekrarlayan görevler döngü kullanılarak yapılabilir. Videoları izlemeyi tercih ederseniz, linke tıklayabilirsiniz (\*Yazarın önerisi). [Eğitim videosu](https://www.youtube.com/channel/UCM4xOopkYiPwJqyKsSqL9mw) - -Programlama dillerinde tekrarlayan görevleri gerçekleştirmek için farklı türde döngüler kullanırız. Aşağıdaki örnekler, JavaScript ve diğer programlama dillerinde yaygın olarak kullanılan döngülerdir. - -### for Döngüsü - -```js -// For döngüsü yapısı -for(initialization, condition, increment/decrement){ - // code goes here -} -``` - -```js -for(let i = 0; i <= 5; i++){ - console.log(i) -} - -// 0 1 2 3 4 5 -``` - -```js -for(let i = 5; i >= 0; i--){ - console.log(i) -} - -// 5 4 3 2 1 0 -``` - -```js -for(let i = 0; i <= 5; i++){ - console.log(`${i} * ${i} = ${i * i}`) -} -``` - -```sh -0 * 0 = 0 -1 * 1 = 1 -2 * 2 = 4 -3 * 3 = 9 -4 * 4 = 16 -5 * 5 = 25 -``` - -```js -const countries = ['Finland', 'Sweden', 'Denmark', 'Norway', 'Iceland'] -const newArr = [] -for(let i = 0; i < countries.length; i++){ - newArr.push(countries[i].toUpperCase()) -} - -// ["FINLAND", "SWEDEN", "DENMARK", "NORWAY", "ICELAND"] -``` - -Dizideki tüm öğeleri ekleme - -```js -const numbers = [1, 2, 3, 4, 5] -let sum = 0 -for(let i = 0; i < numbers.length; i++){ - sum = sum + numbers[i] // daha kısa yazmak istersek, sum += numbers[i] - -} - -console.log(sum) // 15 -``` - -Mevcut diziye dayalı yeni bir dizi oluşturma - -```js -const numbers = [1, 2, 3, 4, 5] -const newArr = [] -let sum = 0 -for(let i = 0; i < numbers.length; i++){ - newArr.push( numbers[i] ** 2) - -} - -console.log(newArr) // [1, 4, 9, 16, 25] -``` - -```js -const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] -const newArr = [] -for(let i = 0; i < countries.length; i++){ - newArr.push(countries[i].toUpperCase()) -} - -console.log(newArr) // ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"] -``` - -### while Döngüsü - -```js -let i = 0 -while (i <= 5) { - console.log(i) - i++ -} - -// 0 1 2 3 4 5 -``` - -### do while Döngüsü - -```js -let i = 0 -do { - console.log(i) - i++ -} while (i <= 5) - -// 0 1 2 3 4 5 -``` - -### for of Döngüsü - -Diziler için for of döngüsünü kullanırız. Dizideki her bir elemanın indeksiyle ilgilenmiyorsak eğer, bir diziyi yinelemenin en kolay yoludur. - -```js -for (const element of arr) { - // code goes here -} -``` - -```js - -const numbers = [1, 2, 3, 4, 5] - -for (const num of numbers) { - console.log(num) -} - -// 1 2 3 4 5 - -for (const num of numbers) { - console.log(num * num) -} - -// 1 4 9 16 25 - -// dizideki tüm sayıları ekleyerek -let sum = 0 -for (const num of numbers) { - sum = sum + num - // daha kısa yazmak istersek, sum += num - // bundan sonraki kodlarda daha kısa syntax kullanacağız(+=, -=, *=, /= etc) -} -console.log(sum) // 15 - -const webTechs = [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Redux', - 'Node', - 'MongoDB' -] - -for (const tech of webTechs) { - console.log(tech.toUpperCase()) -} - -// HTML CSS JAVASCRIPT REACT NODE MONGODB - -for (const tech of webTechs) { - console.log(tech[0]) // get only the first letter of each element, H C J R N M -} - -``` - -```js -const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] -const newArr = [] -for(const country of countries){ - newArr.push(country.toUpperCase()) -} - -console.log(newArr) // ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"] -``` - -### break - -Break bir döngüyü durdurmak için kullanılır. - -```js -for(let i = 0; i <= 5; i++){ - if(i == 3){ - break - } - console.log(i) -} - -// 0 1 2 -``` - -Yineleme işleminde 3 e eşit olduğunda döngüden çıkılır. - -### continue - -Belirli bir yineleme işlemini atlamak için kullanılır. - -```js -for(let i = 0; i <= 5; i++){ - if(i == 3){ - continue - } - console.log(i) -} - -// 0 1 2 4 5 -``` - -🌕 Çok cesursun, buralara kadar geldin. Artık tekrarlayan ve sıkıcı görevleri döngü içerisinde yazma gücüne sahip oldunuz. 6. gün zorluklarını yeni tamamladınız ve mükemmelliğe giden yolda 6 adım öndesiniz. Şimdi beyniniz ve kasınız için bazı egzersizler yapın. - -## 💻 Egzersiz:Gün 6 - -### Egzersiz: Seviye 1 - - ```js - const countries = [ - 'Albania', - 'Bolivia', - 'Canada', - 'Denmark', - 'Ethiopia', - 'Finland', - 'Germany', - 'Hungary', - 'Ireland', - 'Japan', - 'Kenya' - ] - - const webTechs = [ - 'HTML', - 'CSS', - 'JavaScript', - 'React', - 'Redux', - 'Node', - 'MongoDB' - ] - - const mernStack = ['MongoDB', 'Express', 'React', 'Node'] - ``` - -1. for döngüsünü kullanarak 0'dan 10'a kadar yineleyin, while ve do while döngüsünü kullanarak aynısını yapın -2. for döngüsünü kullanarak 10'dan 0'a kadar yineleyin, while ve do while döngüsünü kullanarak aynısını yapın -3. for döngüsünü kullanarak 0'dan n'ye kadar yineleyin -4. console.log() kullanarak aşağıdaki kalıbı oluşturan bir döngü yazın: - - ```js - # - ## - ### - #### - ##### - ###### - ####### - ``` - -5. Aşağıdaki deseni yazdırmak için döngüyü kullanın: - - ```sh - 0 x 0 = 0 - 1 x 1 = 1 - 2 x 2 = 4 - 3 x 3 = 9 - 4 x 4 = 16 - 5 x 5 = 25 - 6 x 6 = 36 - 7 x 7 = 49 - 8 x 8 = 64 - 9 x 9 = 81 - 10 x 10 = 100 - ``` - -6. Aşağıdaki deseni yazdırmak için döngüyü kullanın: - - ```sh - i i^2 i^3 - 0 0 0 - 1 1 1 - 2 4 8 - 3 9 27 - 4 16 64 - 5 25 125 - 6 36 216 - 7 49 343 - 8 64 512 - 9 81 729 - 10 100 1000 - ``` - -7. 0'dan 100'e kadar yineleme yapmak ve yalnızca çift sayıları yazdırmak için for döngüsü kullanın -8. 0'dan 100'e kadar yineleme yapmak ve yalnızca tek sayıları yazdırmak için for döngüsü kullanın -9. 0'dan 100'e kadar yineleme yapmak ve yalnızca asal sayıları yazdırmak için for döngüsü kullanın -10. 0'dan 100'e kadar yineleme yapmak ve tüm sayıların toplamını yazdırmak için for döngüsünü kullanın. - - ```sh - The sum of all numbers from 0 to 100 is 5050. - ``` - -11. 0'dan 100'e kadar yineleme yapmak için for döngüsünü kullanın ve tüm çiftlerin toplamını ve tüm oranların toplamını yazdırın - - ```sh - The sum of all evens from 0 to 100 is 2550. And the sum of all odds from 0 to 100 is 2500. - ``` - -12. 0'dan 100'e kadar yineleme yapmak için for döngüsünü kullanın ve tüm çiftlerin toplamını ve tüm oranların toplamını yazdırın. Çiftlerin toplamını ve oranların toplamını dizi olarak yazdırın. - - ```sh - [2550, 2500] - ``` - -13. 5 rastgele sayı dizisi oluşturan küçük bir komut dosyası geliştirin -14. 5 rastgele sayı dizisi oluşturan küçük bir komut dosyası geliştirin ve sayılar benzersiz olmalıdır. -15. Altı karakterlik rastgele bir kimlik oluşturan küçük bir komut dosyası geliştirin - - ```sh - 5j2khz - ``` - -### Egzersiz: Seviye 2 - -1. Herhangi bir sayıda rastgele karakter oluşturan küçük bir komut dosyası geliştirin - - ```sh - fe3jo1gl124g - ``` - - ```sh - xkqci4utda1lmbelpkm03rba - ``` - -1. Rastgele bir onaltılık sayı üreten bir komut dosyası yazın. - - ```sh - '#ee33df' - ``` - -1. Rastgele bir RGB renk numarası üreten bir komut dosyası yazın. - - ```sh - rgb(240,180,80) - ``` - -1. Seviye 1 deki ülkeler dizisini kullanarak aşağıdaki yeni diziyi oluşturun. - - ```sh - ["ALBANIA", "BOLIVIA", "CANADA", "DENMARK", "ETHIOPIA", "FINLAND", "GERMANY", "HUNGARY", "IRELAND", "JAPAN", "KENYA"] - ``` - -1. Seviye 1 deki ülkeler dizisini kullanarak, ülkeler uzunluğu için bir dizi oluşturun'. - - ```sh - [7, 7, 6, 7, 8, 7, 7, 7, 7, 5, 5] - ``` - -1. Aşağıdaki diziyi oluşturmak için country dizisini kullanın: - - ```sh - [ - ['Albania', 'ALB', 7], - ['Bolivia', 'BOL', 7], - ['Canada', 'CAN', 6], - ['Denmark', 'DEN', 7], - ['Ethiopia', 'ETH', 8], - ['Finland', 'FIN', 7], - ['Germany', 'GER', 7], - ['Hungary', 'HUN', 7], - ['Ireland', 'IRE', 7], - ['Iceland', 'ICE', 7], - ['Japan', 'JAP', 5], - ['Kenya', 'KEN', 5] - ] - ``` - -2. Yukarıdaki ülkeler dizisinde, 'land' kelimesini içeren bir ülke veya ülkeler olup olmadığını kontrol edin. 'land' içeren ülkeler varsa, onu dizi olarak yazdırın. 'land' kelimesini içeren bir ülke yoksa, 'All these countries are without land' yazdırın. - - ```sh - ['Finland','Ireland', 'Iceland'] - ``` - -3. Yukarıdaki ülkeler dizisinde, 'ia' alt dizesiyle biten bir ülke veya ülkeler olup olmadığını kontrol edin. Sonu ile biten ülkeler varsa dizi olarak yazdırın. 'ai' kelimesini içeren bir ülke yoksa, 'These are countries ends without ia'' yazdırın. - - ```sh - ['Albania', 'Bolivia','Ethiopia'] - ``` - -4. Yukarıdaki ülkeler dizisini kullanarak en fazla karakter içeren ülkeyi bulun. - - ```sh - Ethiopia - ``` - -5. Yukarıdaki ülkeler dizisini kullanarak sadece 5 karakter içeren ülkeyi bulun. - - ```sh - ['Japan', 'Kenya'] - ``` - -6. webTechs dizisindeki en uzun kelimeyi bulun -7. Aşağıdaki diziyi oluşturmak için webTechs dizisini kullanın - - ```sh - [["HTML", 4], ["CSS", 3],["JavaScript", 10],["React", 5],["Redux", 5],["Node", 4],["MongoDB", 7]] - ``` - -8. MongoDB, Express, React ve Node kullanılarak oluşturulan bir uygulamaya MERN yığın uygulaması denir. mernStack dizisini kullanarak MERN kısaltmasını oluşturun. -9. Bir for döngüsü veya for of döngüsü kullanarak ["HTML", "CSS", "JS", "React", "Redux", "Node", "Express", "MongoDB"] dizisini yineleyin. -10. Bu bir meyve dizisidir, ['banana', 'orange', 'mango', 'lemon'] ters bir yöntem kullanmadan döngü kullanarak sırayı tersine çeviriniz. -11. Dizinin tüm öğelerini aşağıda gösterildiği gibi yazdırın. - - ```js - const fullStack = [ - ['HTML', 'CSS', 'JS', 'React'], - ['Node', 'Express', 'MongoDB'] - ] - ```` - - ```sh - HTML - CSS - JS - REACT - NODE - EXPRESS - MONGODB - ``` - -### Egzersiz: Seviye 3 - -1. Ülkeler dizisini kopyala. (Mutasyondan kaçının) -1. Diziler değişkendir. Orijinali değiştirmeden dizinin bir kopyasını oluşturun. Kopyalanan diziyi sıralayın ve sortedCountries değişkeninde saklayın. -1. webTechs dizisini ve mernStack dizisini sıralayın. -1. [countries dizisindeki](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) en yüksek sayıda karakteri içeren ülkeyi bulun. -1. [countries dizisinden](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) 'land' kelimesini içeren tüm ülkeleri ayıklayın ve dizi olarak yazdırın. -1. [countries dizisinden](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) sadece dört karakter içeren tüm ülkeleri ayıklayın ve dizi olarak yazdırın. -1. [countries dizisinden](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) iki veya daha fazla kelime içeren tüm ülkeleri çıkartın ve dizi olarak yazdırın. -1. [countries dizisini](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) ters çevirin, her ülkeyi büyük harf yapın ve bir dizi olarak saklayın. - -🎉 TEBRİKLER ! 🎉 - -[<< Gün 5](../05_Day_Arrays/05_day_arrays.md) | [Gün 7 >>](../07_Day_Functions/07_day_functions.md) From 654512b2a5bf44058d092372509e09080a12b2fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hasan=20H=C3=BCseyin=20Alav?= <73330164+hsynalv@users.noreply.github.com> Date: Fri, 29 Jul 2022 14:34:26 +0300 Subject: [PATCH 13/13] day 8 translated to Turkish --- Turkish/08_Day_Objects/08_day_objects.md | 598 +++++ .../08_day_starter/data/countries_data.js | 2013 +++++++++++++++++ .../08_Day_Objects/08_day_starter/index.html | 17 + .../08_day_starter/scripts/main.js | 2 + 4 files changed, 2630 insertions(+) create mode 100644 Turkish/08_Day_Objects/08_day_objects.md create mode 100644 Turkish/08_Day_Objects/08_day_starter/data/countries_data.js create mode 100644 Turkish/08_Day_Objects/08_day_starter/index.html create mode 100644 Turkish/08_Day_Objects/08_day_starter/scripts/main.js diff --git a/Turkish/08_Day_Objects/08_day_objects.md b/Turkish/08_Day_Objects/08_day_objects.md new file mode 100644 index 0000000..ea0605a --- /dev/null +++ b/Turkish/08_Day_Objects/08_day_objects.md @@ -0,0 +1,598 @@ +
+

30 Günde Javascript: Objects - Nesneler

+ + + + + Twitter Follow + + + Author: + Asabeneh Yetayeh
+Çevirmen: + Hasan Hüseyin Alav
+ Temmuz 2022 +
+
+ +[<< 7. Gün](../07_Day_Functions/07_day_functions.md) | [9. Gün >>](../09_Day_Higher_order_functions/09_day_higher_order_functions.md) + +![Thirty Days Of JavaScript](/images/banners/day_1_8.png) + +- [📔 8. Gün](#-day-8) + - [Scope - Kapsam Alanları](#scope---kapsam-alanları) + - [Window Global Object](#window-global-object) + - [Global Scope](#global-scope) + - [Local Scope](#local-scope) + - [📔 Object - Nesne](#📔-object---nesne) + - [Boş Nesne Oluşturmak](#boş-nesne-oluşturmak) + - [Değerlerle Birlikte Bir Nesne Oluşturmak](#değerle-birlikte-nesne-oluşturmak) + - [Nesneden Değerleri Alabilmek](#nesneden-değerleri-alabilmek) + - [Object - Nesne Methodu Oluşturma](#object-methodları-oluşturma) + - [Object İçin Yeni Bir key Oluşturma](#object-için-yeni-bir-anahtar-değer-key-oluşturma) + - [Object Methodları](#object-methodları) + - [Object.keys() Metodu](#objectkeys-methodu) + - [Object.values() Methodu](#objectvalues-methodu) + - [Object.entries() Methodu](#objectentries-methodus) + - [hasOwnProperty() Methodu](#hasownproperty-methodu) + - [💻 Exercises](#-exercises) + - [Exercises: Level 1](#exercises-level-1) + - [Exercises: Level 2](#exercises-level-2) + - [Exercises: Level 3](#exercises-level-3) + +# 📔 8. Gün + +## Scope - Kapsam Alanları + +Bu konu değişken tanımlamanın temel kısmını oluşturur. Farklı veri türlerini depolamak için değişken tanımlarız. Bir değişkeni tanımlamak için `var`, `let` veya `const` anahtar sözcüklerini kullanırız. Bir değişken farklı kapsam alanlarında tanımlanabilir. Bu bölümde, `var` veya `let` kullandığımızda kapsam değişkenlerinin kodumuzu nasıl etkilediğini göreceğiz. + +Değişken scope'ları şu şekilde olabilir. + +- Global +- Local + +> `var`, `let` veya `const` olmadan tanımlanan her değişken global scope olarak geçerlidir. + +Scope.js adında bir dosyanızın olduğunu düşünelim. + +### Window Global Object + +Geçerli dosya içerisinde global scope da diyebiliriz bu duruma + +Console.log() metodunu kullanmadan tarayıcınızı açın ve kontrol edin; tarayıcıya a veya b yazarsanız a ve b değerlerini görebilirsiniz. Bu durum a ve b değişkenlerinin zaten hali hazırda mevcut olduğu anlamına gelir. + +```js +//scope.js dosyası içerisi + +a = 'JavaScript' // bir değişkeni let veya const anahtar kelimeleri olamadan tanımlamako değişkeni global hale getirir ve geçerli dosya içerisinde her yerden erişilebilir. + +b = 10 // bu gloabl scope olarak tanımlanmıştır ve dosya içerisinde her yerden erişilebilir. +function letsLearnScope() { + console.log(a, b) + if (true) { + console.log(a, b) + } +} +console.log(a, b) // erişilebilir +``` + +### Global scope + +Aynı dosyanın her yerinde global olarak tanımlanan bir değişkene erişilebilir. Global olma durumu iki şekilde olabilir Dosyanın direkt kendisinde global olabilir veya bazı kod bloklarına göre global olabilir. + +```js +//scope.js +let a = 'JavaScript' // bu dosyanın herhangi bir yerinde erişilebilecek global bir kapsamdır +let b = 10 // bu da dosyanın herhangi bir yerinde erişilebilecek global bir kapsamdır +function letsLearnScope() { + console.log(a, b) // JavaScript 10, erişilebilir + if (true) { + let a = 'Python' + let b = 100 + console.log(a, b) // Python 100 + } + console.log(a, b) +} +letsLearnScope() +console.log(a, b) // JavaScript 10, erişilebilir +``` + +### Local scope + +Yerel olarak tanımlanan bir değişkene yalnızca belirli kod bloğunda erişilebilir. + +- Block Scope +- Function Scope + +```js +//scope.js dosyasının içerisi + +let a = 'JavaScript' // bu dosyanın herhangi bir yerinde erişilebilecek global bir kapsamdır. +let b = 10 // bu dosyanın herhangi bir yerinde erişilebilecek global bir kapsamdır. + +// Function scope +function letsLearnScope() { + console.log(a, b) // JavaScript 10, erişilebilir + let value = false +// block scope + if (true) { + let a = 'Python' + let b = 20 + let c = 30 + let d = 40 + value = !value + console.log(a, b, c, value) // Python 20 30 true + } + //c değişkenine erişemiyoruz çünkü c değişkeni sadec if bloğunda geçerli bir değişkendir + console.log(a, b, c, value) // JavaScript 10 undefined true +} +letsLearnScope() +console.log(a, b) // JavaScript 10, erişilebilir +``` + +Artık scope'lar hakkında bir şeyler öğrendik. `var` anahtar kelimesi ile tanımlanan bir değişken fonksiyon scope'u içerisinde geçerlidir. Ancak `let` veya `const` anahtar kelimeleri ile tanımlanan değişkenler block scope'unda geçerlidir. (fonksiyon, if veya diğer dönggü blokları). Block kapsamını biraz daha netleştirmek gerekirse Javascript ve diğer çoğu yazılım dili için süslü parantezler arası demek olur. `{ }` + + +```js +//scope.js +function letsLearnScope() { + var gravity = 9.81 + console.log(gravity) + +} +// console.log(gravity), Uncaught ReferenceError: gravity is not defined +// yukarıdaki çıktı konsol ekranında alacağımız hatanın çıktısıdır. + +if (true){ + var gravity = 9.81 + console.log(gravity) // 9.81 +} +console.log(gravity) // 9.81 + +for(var i = 0; i < 3; i++){ + console.log(i) // 0, 1, 2 +} +console.log(i) // 3 + +``` + + + +```js +//scope.js +function letsLearnScope() { + // you can use let or const, but gravity is constant I prefer to use const + const gravity = 9.81 + console.log(gravity) + +} +// console.log(gravity), Uncaught ReferenceError: gravity is not defined + +if (true){ + const gravity = 9.81 + console.log(gravity) // 9.81 +} +// console.log(gravity), Uncaught ReferenceError: gravity is not defined + +for(let i = 0; i < 3; i++){ + console.log(i) // 0, 1, 2 +} +// console.log(i), Uncaught ReferenceError: i is not defined + +``` + +`let` ve `const` anahtar kelimeleri ile tanımlanan değişkenlerin kapsam alanlarının aynı olduğunu ifade ettik. Peki aralarındaki fark ne? Basitçe açıklamak gerekirse `const` ile tanımlanan bir değişkenin değerini daha sonraki satırlarda değiştiremeyiz ancak `let` ile tanımlanan değişkenin değerini değiştirebiliriz. Ben `let` ve `const` kullanarak temiz kod yazmanızı ve hata ayıklamanın zor olmasını önlemek için `let` ve `const` 'ı kullanmanızı tavsiye ederim. Temel kural olarak, herhangi bir sabit değer için `let` ve dizi, nesne, ok fonksiyonu ve işlev ifadesi için `const` özelliğini kullanabilirsiniz. + + +## 📔 Object - Nesne + + +Her şey bir nesne olabilir ve nesnelerin özellikleri ve özelliklerinin değerleri vardır, bu nedenle bir nesne bir anahtar değer çiftidir. +Bir nesneyi tam anlamıyla oluşturmak için iki köşeli parantez kullanırız. + +### Boş nesne oluşturmak + +Boş bir nesne + +```js +const person = {} +``` + +### Değerle birlikte nesne oluşturmak + + +Şimdi oluşturacağımız person nesnesinin firstName, lastName, age, country, city ve skills gibi bazı özellikleri olacak şekilde oluşturalım. + +``` +const person = { + firstName: 'Asabeneh', + lastName: 'Yetayeh', + age: 250, + country: 'Finland', + city: 'Helsinki', + skills: [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Node', + 'MongoDB', + 'Python', + 'D3.js' + ], + isMarried: true +} +console.log(person) +``` + +### Nesneden değerleri alabilmek + +Nesnenin değerlerine iki yöntem kullanarak erişebiliriz: + +- `.` operatörünü kullanarak erişebiliriz +- köşeli parantez kullanarak erişebiliriz + +```js +const person = { + firstName: 'Asabeneh', + lastName: 'Yetayeh', + age: 250, + country: 'Finland', + city: 'Helsinki', + skills: [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Node', + 'MongoDB', + 'Python', + 'D3.js' + ], + getFullName: function() { + return `${this.firstName}${this.lastName}` + }, + 'phone number': '+3584545454545' +} + +// "." operatörü kullanarak +console.log(person.firstName) +console.log(person.lastName) +console.log(person.age) +console.log(person.location) // undefined + +// kçşeli parantez kullanarak +console.log(person['firstName']) +console.log(person['lastName']) +console.log(person['age']) +console.log(person['age']) +console.log(person['location']) // undefined + +// örneğin, telefon numarasına erişmek için yalnızca köşeli parantez yöntemini kullanırız +console.log(person['phone number']) +``` + +### Object methodları oluşturma + +Şimdi, kişi nesnesinin getFullName özellikleri vardır. getFullName, kişi nesnesinin içindeki işlevdir ve biz ona nesne yöntemi diyoruz. _this_ anahtar sözcüğü, nesnenin kendisine atıfta bulunur. Nesnenin farklı özelliklerinin değerlerine erişmek için _this_ kelimesini kullanabiliriz. Bir arrow funtionu nesne yöntemi olarak kullanamayız çünkü bu sözcüğü nesnenin kendisi yerine bir arrow funtionun içindeki pencereyi ifade eder. Örnek olarak: + +```js +const person = { + firstName: 'Asabeneh', + lastName: 'Yetayeh', + age: 250, + country: 'Finland', + city: 'Helsinki', + skills: [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Node', + 'MongoDB', + 'Python', + 'D3.js' + ], + getFullName: function() { + return `${this.firstName} ${this.lastName}` + } +} + +console.log(person.getFullName()) +// Asabeneh Yetayeh +``` + +### Object için yeni bir anahtar değer (key) oluşturma + +Nesne, eşlenebilen bir veri yapısıdır ve oluşturulduktan sonra nesnenin içeriğini değiştirebiliriz. + +nesne de yeni key'ler oluşturabilme + +```js +const person = { + firstName: 'Asabeneh', + lastName: 'Yetayeh', + age: 250, + country: 'Finland', + city: 'Helsinki', + skills: [ + 'HTML', + 'CSS', + 'JavaScript', + 'React', + 'Node', + 'MongoDB', + 'Python', + 'D3.js' + ], + getFullName: function() { + return `${this.firstName} ${this.lastName}` + } +} +person.nationality = 'Ethiopian' +person.country = 'Finland' +person.title = 'teacher' +person.skills.push('Meteor') +person.skills.push('SasS') +person.isMarried = true + +person.getPersonInfo = function() { + let skillsWithoutLastSkill = this.skills + .splice(0, this.skills.length - 1) + .join(', ') + let lastSkill = this.skills.splice(this.skills.length - 1)[0] + + let skills = `${skillsWithoutLastSkill}, and ${lastSkill}` + let fullName = this.getFullName() + let statement = `${fullName} is a ${this.title}.\nHe lives in ${this.country}.\nHe teaches ${skills}.` + return statement +} +console.log(person) +console.log(person.getPersonInfo()) +``` + +```sh +Asabeneh Yetayeh is a teacher. +He lives in Finland. +He teaches HTML, CSS, JavaScript, React, Node, MongoDB, Python, D3.js, Meteor, and SasS. +``` + +### Object methodları + +Bir nesneyi manipüle etmek için farklı yöntemler vardır. Mevcut yöntemlerden bazılarını görelim. + +_Object.assign_:Nesneyi orijinal nesneyi değiştirmeden kopyalamak için kullanılır + +```js +const person = { + firstName: 'Asabeneh', + age: 250, + country: 'Finland', + city:'Helsinki', + skills: ['HTML', 'CSS', 'JS'], + title: 'teacher', + address: { + street: 'Heitamienkatu 16', + pobox: 2002, + city: 'Helsinki' + }, + getPersonInfo: function() { + return `I am ${this.firstName} and I live in ${this.city}, ${this.country}. I am ${this.age}.` + } +} + +//Object methods: Object.assign, Object.keys, Object.values, Object.entries +//hasOwnProperty + +const copyPerson = Object.assign({}, person) +console.log(copyPerson) +``` + +#### Object.keys() methodu + +_Object.keys_: Bir nesnenin anahtarlarını veya özelliklerini dizi olarak almak için kullanılır + +```js +const keys = Object.keys(copyPerson) +console.log(keys) //['firstName', 'age', 'country','city', 'skills','title', 'address', 'getPersonInfo'] +const address = Object.keys(copyPerson.address) +console.log(address) //['street', 'pobox', 'city'] +``` + +#### Object.values() methodu + +_Object.values_: Nesnenin key'lerine karşılık gelen değerleri dizi içerisinde almak için kullanılır + +```js +const values = Object.values(copyPerson) +console.log(values) +``` + +#### Object.entries() methodu + +_Object.entries_: Bir dizideki key ve value değerlerini almak için kullanılır + +```js +const entries = Object.entries(copyPerson) +console.log(entries) +``` + +#### hasOwnProperty() methodu + +_hasOwnProperty_: Bir nesnede belirli bir anahtar veya özelliğin bulunup bulunmadığını kontrol etmek için kullanılır + +```js +console.log(copyPerson.hasOwnProperty('name')) +console.log(copyPerson.hasOwnProperty('score')) +``` + +🌕 Tebrikler 8. günü de başarıyla tamamladın. 9. günde görüşmek üzere + +## 💻 Exercises + +### Exercises: Level 1 + +1. Create an empty object called dog +1. Print the the dog object on the console +1. Add name, legs, color, age and bark properties for the dog object. The bark property is a method which return _woof woof_ +1. Get name, legs, color, age and bark value from the dog object +1. Set new properties the dog object: breed, getDogInfo + +### Exercises: Level 2 + +1. Find the person who has many skills in the users object. +1. Count logged in users, count users having greater than equal to 50 points from the following object. + + ````js + const users = { + Alex: { + email: 'alex@alex.com', + skills: ['HTML', 'CSS', 'JavaScript'], + age: 20, + isLoggedIn: false, + points: 30 + }, + Asab: { + email: 'asab@asab.com', + skills: ['HTML', 'CSS', 'JavaScript', 'Redux', 'MongoDB', 'Express', 'React', 'Node'], + age: 25, + isLoggedIn: false, + points: 50 + }, + Brook: { + email: 'daniel@daniel.com', + skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux'], + age: 30, + isLoggedIn: true, + points: 50 + }, + Daniel: { + email: 'daniel@alex.com', + skills: ['HTML', 'CSS', 'JavaScript', 'Python'], + age: 20, + isLoggedIn: false, + points: 40 + }, + John: { + email: 'john@john.com', + skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux', 'Node.js'], + age: 20, + isLoggedIn: true, + points: 50 + }, + Thomas: { + email: 'thomas@thomas.com', + skills: ['HTML', 'CSS', 'JavaScript', 'React'], + age: 20, + isLoggedIn: false, + points: 40 + }, + Paul: { + email: 'paul@paul.com', + skills: ['HTML', 'CSS', 'JavaScript', 'MongoDB', 'Express', 'React', 'Node'], + age: 20, + isLoggedIn: false, + points: 40 + } + }``` + +1. Find people who are MERN stack developer from the users object +1. Set your name in the users object without modifying the original users object +1. Get all keys or properties of users object +1. Get all the values of users object +1. Use the countries object to print a country name, capital, populations and languages. + +### Exercises: Level 3 + +1. Create an object literal called _personAccount_. It has _firstName, lastName, incomes, expenses_ properties and it has _totalIncome, totalExpense, accountInfo,addIncome, addExpense_ and _accountBalance_ methods. Incomes is a set of incomes and its description and expenses is a set of incomes and its description. +2. **** Questions:2, 3 and 4 are based on the following two arrays:users and products () + + ```js + const users = [ + { + _id: 'ab12ex', + username: 'Alex', + email: 'alex@alex.com', + password: '123123', + createdAt:'08/01/2020 9:00 AM', + isLoggedIn: false + }, + { + _id: 'fg12cy', + username: 'Asab', + email: 'asab@asab.com', + password: '123456', + createdAt:'08/01/2020 9:30 AM', + isLoggedIn: true + }, + { + _id: 'zwf8md', + username: 'Brook', + email: 'brook@brook.com', + password: '123111', + createdAt:'08/01/2020 9:45 AM', + isLoggedIn: true + }, + { + _id: 'eefamr', + username: 'Martha', + email: 'martha@martha.com', + password: '123222', + createdAt:'08/01/2020 9:50 AM', + isLoggedIn: false + }, + { + _id: 'ghderc', + username: 'Thomas', + email: 'thomas@thomas.com', + password: '123333', + createdAt:'08/01/2020 10:00 AM', + isLoggedIn: false + } + ]; + + const products = [ + { + _id: 'eedfcf', + name: 'mobile phone', + description: 'Huawei Honor', + price: 200, + ratings: [ + { userId: 'fg12cy', rate: 5 }, + { userId: 'zwf8md', rate: 4.5 } + ], + likes: [] + }, + { + _id: 'aegfal', + name: 'Laptop', + description: 'MacPro: System Darwin', + price: 2500, + ratings: [], + likes: ['fg12cy'] + }, + { + _id: 'hedfcg', + name: 'TV', + description: 'Smart TV:Procaster', + price: 400, + ratings: [{ userId: 'fg12cy', rate: 5 }], + likes: ['fg12cy'] + } + ] + ``` + + Imagine you are getting the above users collection from a MongoDB database. + a. Create a function called signUp which allows user to add to the collection. If user exists, inform the user that he has already an account. + b. Create a function called signIn which allows user to sign in to the application + +3. The products array has three elements and each of them has six properties. + a. Create a function called rateProduct which rates the product + b. Create a function called averageRating which calculate the average rating of a product + +4. Create a function called likeProduct. This function will helps to like to the product if it is not liked and remove like if it was liked. + + +🎉 CONGRATULATIONS ! 🎉 + +[<< Day 7](../07_Day_Functions/07_day_functions.md) | [Day 9 >>](../09_Day_Higher_order_functions/09_day_higher_order_functions.md) diff --git a/Turkish/08_Day_Objects/08_day_starter/data/countries_data.js b/Turkish/08_Day_Objects/08_day_starter/data/countries_data.js new file mode 100644 index 0000000..073cbd6 --- /dev/null +++ b/Turkish/08_Day_Objects/08_day_starter/data/countries_data.js @@ -0,0 +1,2013 @@ +const countries = [ + { + name: 'Afghanistan', + capital: 'Kabul', + languages: ['Pashto', 'Uzbek', 'Turkmen'], + population: 27657145, + flag: 'https://restcountries.eu/data/afg.svg', + currency: 'Afghan afghani' + }, + { + name: 'Åland Islands', + capital: 'Mariehamn', + languages: ['Swedish'], + population: 28875, + flag: 'https://restcountries.eu/data/ala.svg', + currency: 'Euro' + }, + { + name: 'Albania', + capital: 'Tirana', + languages: ['Albanian'], + population: 2886026, + flag: 'https://restcountries.eu/data/alb.svg', + currency: 'Albanian lek' + }, + { + name: 'Algeria', + capital: 'Algiers', + languages: ['Arabic'], + population: 40400000, + flag: 'https://restcountries.eu/data/dza.svg', + currency: 'Algerian dinar' + }, + { + name: 'American Samoa', + capital: 'Pago Pago', + languages: ['English', 'Samoan'], + population: 57100, + flag: 'https://restcountries.eu/data/asm.svg', + currency: 'United State Dollar' + }, + { + name: 'Andorra', + capital: 'Andorra la Vella', + languages: ['Catalan'], + population: 78014, + flag: 'https://restcountries.eu/data/and.svg', + currency: 'Euro' + }, + { + name: 'Angola', + capital: 'Luanda', + languages: ['Portuguese'], + population: 25868000, + flag: 'https://restcountries.eu/data/ago.svg', + currency: 'Angolan kwanza' + }, + { + name: 'Anguilla', + capital: 'The Valley', + languages: ['English'], + population: 13452, + flag: 'https://restcountries.eu/data/aia.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Antarctica', + capital: '', + languages: ['English', 'Russian'], + population: 1000, + flag: 'https://restcountries.eu/data/ata.svg', + currency: 'Australian dollar' + }, + { + name: 'Antigua and Barbuda', + capital: "Saint John's", + languages: ['English'], + population: 86295, + flag: 'https://restcountries.eu/data/atg.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Argentina', + capital: 'Buenos Aires', + languages: ['Spanish', 'Guaraní'], + population: 43590400, + flag: 'https://restcountries.eu/data/arg.svg', + currency: 'Argentine peso' + }, + { + name: 'Armenia', + capital: 'Yerevan', + languages: ['Armenian', 'Russian'], + population: 2994400, + flag: 'https://restcountries.eu/data/arm.svg', + currency: 'Armenian dram' + }, + { + name: 'Aruba', + capital: 'Oranjestad', + languages: ['Dutch', '(Eastern) Punjabi'], + population: 107394, + flag: 'https://restcountries.eu/data/abw.svg', + currency: 'Aruban florin' + }, + { + name: 'Australia', + capital: 'Canberra', + languages: ['English'], + population: 24117360, + flag: 'https://restcountries.eu/data/aus.svg', + currency: 'Australian dollar' + }, + { + name: 'Austria', + capital: 'Vienna', + languages: ['German'], + population: 8725931, + flag: 'https://restcountries.eu/data/aut.svg', + currency: 'Euro' + }, + { + name: 'Azerbaijan', + capital: 'Baku', + languages: ['Azerbaijani'], + population: 9730500, + flag: 'https://restcountries.eu/data/aze.svg', + currency: 'Azerbaijani manat' + }, + { + name: 'Bahamas', + capital: 'Nassau', + languages: ['English'], + population: 378040, + flag: 'https://restcountries.eu/data/bhs.svg', + currency: 'Bahamian dollar' + }, + { + name: 'Bahrain', + capital: 'Manama', + languages: ['Arabic'], + population: 1404900, + flag: 'https://restcountries.eu/data/bhr.svg', + currency: 'Bahraini dinar' + }, + { + name: 'Bangladesh', + capital: 'Dhaka', + languages: ['Bengali'], + population: 161006790, + flag: 'https://restcountries.eu/data/bgd.svg', + currency: 'Bangladeshi taka' + }, + { + name: 'Barbados', + capital: 'Bridgetown', + languages: ['English'], + population: 285000, + flag: 'https://restcountries.eu/data/brb.svg', + currency: 'Barbadian dollar' + }, + { + name: 'Belarus', + capital: 'Minsk', + languages: ['Belarusian', 'Russian'], + population: 9498700, + flag: 'https://restcountries.eu/data/blr.svg', + currency: 'New Belarusian ruble' + }, + { + name: 'Belgium', + capital: 'Brussels', + languages: ['Dutch', 'French', 'German'], + population: 11319511, + flag: 'https://restcountries.eu/data/bel.svg', + currency: 'Euro' + }, + { + name: 'Belize', + capital: 'Belmopan', + languages: ['English', 'Spanish'], + population: 370300, + flag: 'https://restcountries.eu/data/blz.svg', + currency: 'Belize dollar' + }, + { + name: 'Benin', + capital: 'Porto-Novo', + languages: ['French'], + population: 10653654, + flag: 'https://restcountries.eu/data/ben.svg', + currency: 'West African CFA franc' + }, + { + name: 'Bermuda', + capital: 'Hamilton', + languages: ['English'], + population: 61954, + flag: 'https://restcountries.eu/data/bmu.svg', + currency: 'Bermudian dollar' + }, + { + name: 'Bhutan', + capital: 'Thimphu', + languages: ['Dzongkha'], + population: 775620, + flag: 'https://restcountries.eu/data/btn.svg', + currency: 'Bhutanese ngultrum' + }, + { + name: 'Bolivia (Plurinational State of)', + capital: 'Sucre', + languages: ['Spanish', 'Aymara', 'Quechua'], + population: 10985059, + flag: 'https://restcountries.eu/data/bol.svg', + currency: 'Bolivian boliviano' + }, + { + name: 'Bonaire, Sint Eustatius and Saba', + capital: 'Kralendijk', + languages: ['Dutch'], + population: 17408, + flag: 'https://restcountries.eu/data/bes.svg', + currency: 'United States dollar' + }, + { + name: 'Bosnia and Herzegovina', + capital: 'Sarajevo', + languages: ['Bosnian', 'Croatian', 'Serbian'], + population: 3531159, + flag: 'https://restcountries.eu/data/bih.svg', + currency: 'Bosnia and Herzegovina convertible mark' + }, + { + name: 'Botswana', + capital: 'Gaborone', + languages: ['English', 'Tswana'], + population: 2141206, + flag: 'https://restcountries.eu/data/bwa.svg', + currency: 'Botswana pula' + }, + { + name: 'Bouvet Island', + capital: '', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 0, + flag: 'https://restcountries.eu/data/bvt.svg', + currency: 'Norwegian krone' + }, + { + name: 'Brazil', + capital: 'Brasília', + languages: ['Portuguese'], + population: 206135893, + flag: 'https://restcountries.eu/data/bra.svg', + currency: 'Brazilian real' + }, + { + name: 'British Indian Ocean Territory', + capital: 'Diego Garcia', + languages: ['English'], + population: 3000, + flag: 'https://restcountries.eu/data/iot.svg', + currency: 'United States dollar' + }, + { + name: 'United States Minor Outlying Islands', + capital: '', + languages: ['English'], + population: 300, + flag: 'https://restcountries.eu/data/umi.svg', + currency: 'United States Dollar' + }, + { + name: 'Virgin Islands (British)', + capital: 'Road Town', + languages: ['English'], + population: 28514, + flag: 'https://restcountries.eu/data/vgb.svg', + currency: '[D]' + }, + { + name: 'Virgin Islands (U.S.)', + capital: 'Charlotte Amalie', + languages: ['English'], + population: 114743, + flag: 'https://restcountries.eu/data/vir.svg', + currency: 'United States dollar' + }, + { + name: 'Brunei Darussalam', + capital: 'Bandar Seri Begawan', + languages: ['Malay'], + population: 411900, + flag: 'https://restcountries.eu/data/brn.svg', + currency: 'Brunei dollar' + }, + { + name: 'Bulgaria', + capital: 'Sofia', + languages: ['Bulgarian'], + population: 7153784, + flag: 'https://restcountries.eu/data/bgr.svg', + currency: 'Bulgarian lev' + }, + { + name: 'Burkina Faso', + capital: 'Ouagadougou', + languages: ['French', 'Fula'], + population: 19034397, + flag: 'https://restcountries.eu/data/bfa.svg', + currency: 'West African CFA franc' + }, + { + name: 'Burundi', + capital: 'Bujumbura', + languages: ['French', 'Kirundi'], + population: 10114505, + flag: 'https://restcountries.eu/data/bdi.svg', + currency: 'Burundian franc' + }, + { + name: 'Cambodia', + capital: 'Phnom Penh', + languages: ['Khmer'], + population: 15626444, + flag: 'https://restcountries.eu/data/khm.svg', + currency: 'Cambodian riel' + }, + { + name: 'Cameroon', + capital: 'Yaoundé', + languages: ['English', 'French'], + population: 22709892, + flag: 'https://restcountries.eu/data/cmr.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Canada', + capital: 'Ottawa', + languages: ['English', 'French'], + population: 36155487, + flag: 'https://restcountries.eu/data/can.svg', + currency: 'Canadian dollar' + }, + { + name: 'Cabo Verde', + capital: 'Praia', + languages: ['Portuguese'], + population: 531239, + flag: 'https://restcountries.eu/data/cpv.svg', + currency: 'Cape Verdean escudo' + }, + { + name: 'Cayman Islands', + capital: 'George Town', + languages: ['English'], + population: 58238, + flag: 'https://restcountries.eu/data/cym.svg', + currency: 'Cayman Islands dollar' + }, + { + name: 'Central African Republic', + capital: 'Bangui', + languages: ['French', 'Sango'], + population: 4998000, + flag: 'https://restcountries.eu/data/caf.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chad', + capital: "N'Djamena", + languages: ['French', 'Arabic'], + population: 14497000, + flag: 'https://restcountries.eu/data/tcd.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chile', + capital: 'Santiago', + languages: ['Spanish'], + population: 18191900, + flag: 'https://restcountries.eu/data/chl.svg', + currency: 'Chilean peso' + }, + { + name: 'China', + capital: 'Beijing', + languages: ['Chinese'], + population: 1377422166, + flag: 'https://restcountries.eu/data/chn.svg', + currency: 'Chinese yuan' + }, + { + name: 'Christmas Island', + capital: 'Flying Fish Cove', + languages: ['English'], + population: 2072, + flag: 'https://restcountries.eu/data/cxr.svg', + currency: 'Australian dollar' + }, + { + name: 'Cocos (Keeling) Islands', + capital: 'West Island', + languages: ['English'], + population: 550, + flag: 'https://restcountries.eu/data/cck.svg', + currency: 'Australian dollar' + }, + { + name: 'Colombia', + capital: 'Bogotá', + languages: ['Spanish'], + population: 48759958, + flag: 'https://restcountries.eu/data/col.svg', + currency: 'Colombian peso' + }, + { + name: 'Comoros', + capital: 'Moroni', + languages: ['Arabic', 'French'], + population: 806153, + flag: 'https://restcountries.eu/data/com.svg', + currency: 'Comorian franc' + }, + { + name: 'Congo', + capital: 'Brazzaville', + languages: ['French', 'Lingala'], + population: 4741000, + flag: 'https://restcountries.eu/data/cog.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Congo (Democratic Republic of the)', + capital: 'Kinshasa', + languages: ['French', 'Lingala', 'Kongo', 'Swahili', 'Luba-Katanga'], + population: 85026000, + flag: 'https://restcountries.eu/data/cod.svg', + currency: 'Congolese franc' + }, + { + name: 'Cook Islands', + capital: 'Avarua', + languages: ['English'], + population: 18100, + flag: 'https://restcountries.eu/data/cok.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Costa Rica', + capital: 'San José', + languages: ['Spanish'], + population: 4890379, + flag: 'https://restcountries.eu/data/cri.svg', + currency: 'Costa Rican colón' + }, + { + name: 'Croatia', + capital: 'Zagreb', + languages: ['Croatian'], + population: 4190669, + flag: 'https://restcountries.eu/data/hrv.svg', + currency: 'Croatian kuna' + }, + { + name: 'Cuba', + capital: 'Havana', + languages: ['Spanish'], + population: 11239004, + flag: 'https://restcountries.eu/data/cub.svg', + currency: 'Cuban convertible peso' + }, + { + name: 'Curaçao', + capital: 'Willemstad', + languages: ['Dutch', '(Eastern) Punjabi', 'English'], + population: 154843, + flag: 'https://restcountries.eu/data/cuw.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Cyprus', + capital: 'Nicosia', + languages: ['Greek (modern)', 'Turkish', 'Armenian'], + population: 847000, + flag: 'https://restcountries.eu/data/cyp.svg', + currency: 'Euro' + }, + { + name: 'Czech Republic', + capital: 'Prague', + languages: ['Czech', 'Slovak'], + population: 10558524, + flag: 'https://restcountries.eu/data/cze.svg', + currency: 'Czech koruna' + }, + { + name: 'Denmark', + capital: 'Copenhagen', + languages: ['Danish'], + population: 5717014, + flag: 'https://restcountries.eu/data/dnk.svg', + currency: 'Danish krone' + }, + { + name: 'Djibouti', + capital: 'Djibouti', + languages: ['French', 'Arabic'], + population: 900000, + flag: 'https://restcountries.eu/data/dji.svg', + currency: 'Djiboutian franc' + }, + { + name: 'Dominica', + capital: 'Roseau', + languages: ['English'], + population: 71293, + flag: 'https://restcountries.eu/data/dma.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Dominican Republic', + capital: 'Santo Domingo', + languages: ['Spanish'], + population: 10075045, + flag: 'https://restcountries.eu/data/dom.svg', + currency: 'Dominican peso' + }, + { + name: 'Ecuador', + capital: 'Quito', + languages: ['Spanish'], + population: 16545799, + flag: 'https://restcountries.eu/data/ecu.svg', + currency: 'United States dollar' + }, + { + name: 'Egypt', + capital: 'Cairo', + languages: ['Arabic'], + population: 91290000, + flag: 'https://restcountries.eu/data/egy.svg', + currency: 'Egyptian pound' + }, + { + name: 'El Salvador', + capital: 'San Salvador', + languages: ['Spanish'], + population: 6520675, + flag: 'https://restcountries.eu/data/slv.svg', + currency: 'United States dollar' + }, + { + name: 'Equatorial Guinea', + capital: 'Malabo', + languages: ['Spanish', 'French'], + population: 1222442, + flag: 'https://restcountries.eu/data/gnq.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Eritrea', + capital: 'Asmara', + languages: ['Tigrinya', 'Arabic', 'English'], + population: 5352000, + flag: 'https://restcountries.eu/data/eri.svg', + currency: 'Eritrean nakfa' + }, + { + name: 'Estonia', + capital: 'Tallinn', + languages: ['Estonian'], + population: 1315944, + flag: 'https://restcountries.eu/data/est.svg', + currency: 'Euro' + }, + { + name: 'Ethiopia', + capital: 'Addis Ababa', + languages: ['Amharic'], + population: 92206005, + flag: 'https://restcountries.eu/data/eth.svg', + currency: 'Ethiopian birr' + }, + { + name: 'Falkland Islands (Malvinas)', + capital: 'Stanley', + languages: ['English'], + population: 2563, + flag: 'https://restcountries.eu/data/flk.svg', + currency: 'Falkland Islands pound' + }, + { + name: 'Faroe Islands', + capital: 'Tórshavn', + languages: ['Faroese'], + population: 49376, + flag: 'https://restcountries.eu/data/fro.svg', + currency: 'Danish krone' + }, + { + name: 'Fiji', + capital: 'Suva', + languages: ['English', 'Fijian', 'Hindi', 'Urdu'], + population: 867000, + flag: 'https://restcountries.eu/data/fji.svg', + currency: 'Fijian dollar' + }, + { + name: 'Finland', + capital: 'Helsinki', + languages: ['Finnish', 'Swedish'], + population: 5491817, + flag: 'https://restcountries.eu/data/fin.svg', + currency: 'Euro' + }, + { + name: 'France', + capital: 'Paris', + languages: ['French'], + population: 66710000, + flag: 'https://restcountries.eu/data/fra.svg', + currency: 'Euro' + }, + { + name: 'French Guiana', + capital: 'Cayenne', + languages: ['French'], + population: 254541, + flag: 'https://restcountries.eu/data/guf.svg', + currency: 'Euro' + }, + { + name: 'French Polynesia', + capital: 'Papeetē', + languages: ['French'], + population: 271800, + flag: 'https://restcountries.eu/data/pyf.svg', + currency: 'CFP franc' + }, + { + name: 'French Southern Territories', + capital: 'Port-aux-Français', + languages: ['French'], + population: 140, + flag: 'https://restcountries.eu/data/atf.svg', + currency: 'Euro' + }, + { + name: 'Gabon', + capital: 'Libreville', + languages: ['French'], + population: 1802278, + flag: 'https://restcountries.eu/data/gab.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Gambia', + capital: 'Banjul', + languages: ['English'], + population: 1882450, + flag: 'https://restcountries.eu/data/gmb.svg', + currency: 'Gambian dalasi' + }, + { + name: 'Georgia', + capital: 'Tbilisi', + languages: ['Georgian'], + population: 3720400, + flag: 'https://restcountries.eu/data/geo.svg', + currency: 'Georgian Lari' + }, + { + name: 'Germany', + capital: 'Berlin', + languages: ['German'], + population: 81770900, + flag: 'https://restcountries.eu/data/deu.svg', + currency: 'Euro' + }, + { + name: 'Ghana', + capital: 'Accra', + languages: ['English'], + population: 27670174, + flag: 'https://restcountries.eu/data/gha.svg', + currency: 'Ghanaian cedi' + }, + { + name: 'Gibraltar', + capital: 'Gibraltar', + languages: ['English'], + population: 33140, + flag: 'https://restcountries.eu/data/gib.svg', + currency: 'Gibraltar pound' + }, + { + name: 'Greece', + capital: 'Athens', + languages: ['Greek (modern)'], + population: 10858018, + flag: 'https://restcountries.eu/data/grc.svg', + currency: 'Euro' + }, + { + name: 'Greenland', + capital: 'Nuuk', + languages: ['Kalaallisut'], + population: 55847, + flag: 'https://restcountries.eu/data/grl.svg', + currency: 'Danish krone' + }, + { + name: 'Grenada', + capital: "St. George's", + languages: ['English'], + population: 103328, + flag: 'https://restcountries.eu/data/grd.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Guadeloupe', + capital: 'Basse-Terre', + languages: ['French'], + population: 400132, + flag: 'https://restcountries.eu/data/glp.svg', + currency: 'Euro' + }, + { + name: 'Guam', + capital: 'Hagåtña', + languages: ['English', 'Chamorro', 'Spanish'], + population: 184200, + flag: 'https://restcountries.eu/data/gum.svg', + currency: 'United States dollar' + }, + { + name: 'Guatemala', + capital: 'Guatemala City', + languages: ['Spanish'], + population: 16176133, + flag: 'https://restcountries.eu/data/gtm.svg', + currency: 'Guatemalan quetzal' + }, + { + name: 'Guernsey', + capital: 'St. Peter Port', + languages: ['English', 'French'], + population: 62999, + flag: 'https://restcountries.eu/data/ggy.svg', + currency: 'British pound' + }, + { + name: 'Guinea', + capital: 'Conakry', + languages: ['French', 'Fula'], + population: 12947000, + flag: 'https://restcountries.eu/data/gin.svg', + currency: 'Guinean franc' + }, + { + name: 'Guinea-Bissau', + capital: 'Bissau', + languages: ['Portuguese'], + population: 1547777, + flag: 'https://restcountries.eu/data/gnb.svg', + currency: 'West African CFA franc' + }, + { + name: 'Guyana', + capital: 'Georgetown', + languages: ['English'], + population: 746900, + flag: 'https://restcountries.eu/data/guy.svg', + currency: 'Guyanese dollar' + }, + { + name: 'Haiti', + capital: 'Port-au-Prince', + languages: ['French', 'Haitian'], + population: 11078033, + flag: 'https://restcountries.eu/data/hti.svg', + currency: 'Haitian gourde' + }, + { + name: 'Heard Island and McDonald Islands', + capital: '', + languages: ['English'], + population: 0, + flag: 'https://restcountries.eu/data/hmd.svg', + currency: 'Australian dollar' + }, + { + name: 'Holy See', + capital: 'Rome', + languages: ['Latin', 'Italian', 'French', 'German'], + population: 451, + flag: 'https://restcountries.eu/data/vat.svg', + currency: 'Euro' + }, + { + name: 'Honduras', + capital: 'Tegucigalpa', + languages: ['Spanish'], + population: 8576532, + flag: 'https://restcountries.eu/data/hnd.svg', + currency: 'Honduran lempira' + }, + { + name: 'Hong Kong', + capital: 'City of Victoria', + languages: ['English', 'Chinese'], + population: 7324300, + flag: 'https://restcountries.eu/data/hkg.svg', + currency: 'Hong Kong dollar' + }, + { + name: 'Hungary', + capital: 'Budapest', + languages: ['Hungarian'], + population: 9823000, + flag: 'https://restcountries.eu/data/hun.svg', + currency: 'Hungarian forint' + }, + { + name: 'Iceland', + capital: 'Reykjavík', + languages: ['Icelandic'], + population: 334300, + flag: 'https://restcountries.eu/data/isl.svg', + currency: 'Icelandic króna' + }, + { + name: 'India', + capital: 'New Delhi', + languages: ['Hindi', 'English'], + population: 1295210000, + flag: 'https://restcountries.eu/data/ind.svg', + currency: 'Indian rupee' + }, + { + name: 'Indonesia', + capital: 'Jakarta', + languages: ['Indonesian'], + population: 258705000, + flag: 'https://restcountries.eu/data/idn.svg', + currency: 'Indonesian rupiah' + }, + { + name: "Côte d'Ivoire", + capital: 'Yamoussoukro', + languages: ['French'], + population: 22671331, + flag: 'https://restcountries.eu/data/civ.svg', + currency: 'West African CFA franc' + }, + { + name: 'Iran (Islamic Republic of)', + capital: 'Tehran', + languages: ['Persian (Farsi)'], + population: 79369900, + flag: 'https://restcountries.eu/data/irn.svg', + currency: 'Iranian rial' + }, + { + name: 'Iraq', + capital: 'Baghdad', + languages: ['Arabic', 'Kurdish'], + population: 37883543, + flag: 'https://restcountries.eu/data/irq.svg', + currency: 'Iraqi dinar' + }, + { + name: 'Ireland', + capital: 'Dublin', + languages: ['Irish', 'English'], + population: 6378000, + flag: 'https://restcountries.eu/data/irl.svg', + currency: 'Euro' + }, + { + name: 'Isle of Man', + capital: 'Douglas', + languages: ['English', 'Manx'], + population: 84497, + flag: 'https://restcountries.eu/data/imn.svg', + currency: 'British pound' + }, + { + name: 'Israel', + capital: 'Jerusalem', + languages: ['Hebrew (modern)', 'Arabic'], + population: 8527400, + flag: 'https://restcountries.eu/data/isr.svg', + currency: 'Israeli new shekel' + }, + { + name: 'Italy', + capital: 'Rome', + languages: ['Italian'], + population: 60665551, + flag: 'https://restcountries.eu/data/ita.svg', + currency: 'Euro' + }, + { + name: 'Jamaica', + capital: 'Kingston', + languages: ['English'], + population: 2723246, + flag: 'https://restcountries.eu/data/jam.svg', + currency: 'Jamaican dollar' + }, + { + name: 'Japan', + capital: 'Tokyo', + languages: ['Japanese'], + population: 126960000, + flag: 'https://restcountries.eu/data/jpn.svg', + currency: 'Japanese yen' + }, + { + name: 'Jersey', + capital: 'Saint Helier', + languages: ['English', 'French'], + population: 100800, + flag: 'https://restcountries.eu/data/jey.svg', + currency: 'British pound' + }, + { + name: 'Jordan', + capital: 'Amman', + languages: ['Arabic'], + population: 9531712, + flag: 'https://restcountries.eu/data/jor.svg', + currency: 'Jordanian dinar' + }, + { + name: 'Kazakhstan', + capital: 'Astana', + languages: ['Kazakh', 'Russian'], + population: 17753200, + flag: 'https://restcountries.eu/data/kaz.svg', + currency: 'Kazakhstani tenge' + }, + { + name: 'Kenya', + capital: 'Nairobi', + languages: ['English', 'Swahili'], + population: 47251000, + flag: 'https://restcountries.eu/data/ken.svg', + currency: 'Kenyan shilling' + }, + { + name: 'Kiribati', + capital: 'South Tarawa', + languages: ['English'], + population: 113400, + flag: 'https://restcountries.eu/data/kir.svg', + currency: 'Australian dollar' + }, + { + name: 'Kuwait', + capital: 'Kuwait City', + languages: ['Arabic'], + population: 4183658, + flag: 'https://restcountries.eu/data/kwt.svg', + currency: 'Kuwaiti dinar' + }, + { + name: 'Kyrgyzstan', + capital: 'Bishkek', + languages: ['Kyrgyz', 'Russian'], + population: 6047800, + flag: 'https://restcountries.eu/data/kgz.svg', + currency: 'Kyrgyzstani som' + }, + { + name: "Lao People's Democratic Republic", + capital: 'Vientiane', + languages: ['Lao'], + population: 6492400, + flag: 'https://restcountries.eu/data/lao.svg', + currency: 'Lao kip' + }, + { + name: 'Latvia', + capital: 'Riga', + languages: ['Latvian'], + population: 1961600, + flag: 'https://restcountries.eu/data/lva.svg', + currency: 'Euro' + }, + { + name: 'Lebanon', + capital: 'Beirut', + languages: ['Arabic', 'French'], + population: 5988000, + flag: 'https://restcountries.eu/data/lbn.svg', + currency: 'Lebanese pound' + }, + { + name: 'Lesotho', + capital: 'Maseru', + languages: ['English', 'Southern Sotho'], + population: 1894194, + flag: 'https://restcountries.eu/data/lso.svg', + currency: 'Lesotho loti' + }, + { + name: 'Liberia', + capital: 'Monrovia', + languages: ['English'], + population: 4615000, + flag: 'https://restcountries.eu/data/lbr.svg', + currency: 'Liberian dollar' + }, + { + name: 'Libya', + capital: 'Tripoli', + languages: ['Arabic'], + population: 6385000, + flag: 'https://restcountries.eu/data/lby.svg', + currency: 'Libyan dinar' + }, + { + name: 'Liechtenstein', + capital: 'Vaduz', + languages: ['German'], + population: 37623, + flag: 'https://restcountries.eu/data/lie.svg', + currency: 'Swiss franc' + }, + { + name: 'Lithuania', + capital: 'Vilnius', + languages: ['Lithuanian'], + population: 2872294, + flag: 'https://restcountries.eu/data/ltu.svg', + currency: 'Euro' + }, + { + name: 'Luxembourg', + capital: 'Luxembourg', + languages: ['French', 'German', 'Luxembourgish'], + population: 576200, + flag: 'https://restcountries.eu/data/lux.svg', + currency: 'Euro' + }, + { + name: 'Macao', + capital: '', + languages: ['Chinese', 'Portuguese'], + population: 649100, + flag: 'https://restcountries.eu/data/mac.svg', + currency: 'Macanese pataca' + }, + { + name: 'Macedonia (the former Yugoslav Republic of)', + capital: 'Skopje', + languages: ['Macedonian'], + population: 2058539, + flag: 'https://restcountries.eu/data/mkd.svg', + currency: 'Macedonian denar' + }, + { + name: 'Madagascar', + capital: 'Antananarivo', + languages: ['French', 'Malagasy'], + population: 22434363, + flag: 'https://restcountries.eu/data/mdg.svg', + currency: 'Malagasy ariary' + }, + { + name: 'Malawi', + capital: 'Lilongwe', + languages: ['English', 'Chichewa'], + population: 16832910, + flag: 'https://restcountries.eu/data/mwi.svg', + currency: 'Malawian kwacha' + }, + { + name: 'Malaysia', + capital: 'Kuala Lumpur', + languages: ['Malaysian'], + population: 31405416, + flag: 'https://restcountries.eu/data/mys.svg', + currency: 'Malaysian ringgit' + }, + { + name: 'Maldives', + capital: 'Malé', + languages: ['Divehi'], + population: 344023, + flag: 'https://restcountries.eu/data/mdv.svg', + currency: 'Maldivian rufiyaa' + }, + { + name: 'Mali', + capital: 'Bamako', + languages: ['French'], + population: 18135000, + flag: 'https://restcountries.eu/data/mli.svg', + currency: 'West African CFA franc' + }, + { + name: 'Malta', + capital: 'Valletta', + languages: ['Maltese', 'English'], + population: 425384, + flag: 'https://restcountries.eu/data/mlt.svg', + currency: 'Euro' + }, + { + name: 'Marshall Islands', + capital: 'Majuro', + languages: ['English', 'Marshallese'], + population: 54880, + flag: 'https://restcountries.eu/data/mhl.svg', + currency: 'United States dollar' + }, + { + name: 'Martinique', + capital: 'Fort-de-France', + languages: ['French'], + population: 378243, + flag: 'https://restcountries.eu/data/mtq.svg', + currency: 'Euro' + }, + { + name: 'Mauritania', + capital: 'Nouakchott', + languages: ['Arabic'], + population: 3718678, + flag: 'https://restcountries.eu/data/mrt.svg', + currency: 'Mauritanian ouguiya' + }, + { + name: 'Mauritius', + capital: 'Port Louis', + languages: ['English'], + population: 1262879, + flag: 'https://restcountries.eu/data/mus.svg', + currency: 'Mauritian rupee' + }, + { + name: 'Mayotte', + capital: 'Mamoudzou', + languages: ['French'], + population: 226915, + flag: 'https://restcountries.eu/data/myt.svg', + currency: 'Euro' + }, + { + name: 'Mexico', + capital: 'Mexico City', + languages: ['Spanish'], + population: 122273473, + flag: 'https://restcountries.eu/data/mex.svg', + currency: 'Mexican peso' + }, + { + name: 'Micronesia (Federated States of)', + capital: 'Palikir', + languages: ['English'], + population: 102800, + flag: 'https://restcountries.eu/data/fsm.svg', + currency: '[D]' + }, + { + name: 'Moldova (Republic of)', + capital: 'Chișinău', + languages: ['Romanian'], + population: 3553100, + flag: 'https://restcountries.eu/data/mda.svg', + currency: 'Moldovan leu' + }, + { + name: 'Monaco', + capital: 'Monaco', + languages: ['French'], + population: 38400, + flag: 'https://restcountries.eu/data/mco.svg', + currency: 'Euro' + }, + { + name: 'Mongolia', + capital: 'Ulan Bator', + languages: ['Mongolian'], + population: 3093100, + flag: 'https://restcountries.eu/data/mng.svg', + currency: 'Mongolian tögrög' + }, + { + name: 'Montenegro', + capital: 'Podgorica', + languages: ['Serbian', 'Bosnian', 'Albanian', 'Croatian'], + population: 621810, + flag: 'https://restcountries.eu/data/mne.svg', + currency: 'Euro' + }, + { + name: 'Montserrat', + capital: 'Plymouth', + languages: ['English'], + population: 4922, + flag: 'https://restcountries.eu/data/msr.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Morocco', + capital: 'Rabat', + languages: ['Arabic'], + population: 33337529, + flag: 'https://restcountries.eu/data/mar.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Mozambique', + capital: 'Maputo', + languages: ['Portuguese'], + population: 26423700, + flag: 'https://restcountries.eu/data/moz.svg', + currency: 'Mozambican metical' + }, + { + name: 'Myanmar', + capital: 'Naypyidaw', + languages: ['Burmese'], + population: 51419420, + flag: 'https://restcountries.eu/data/mmr.svg', + currency: 'Burmese kyat' + }, + { + name: 'Namibia', + capital: 'Windhoek', + languages: ['English', 'Afrikaans'], + population: 2324388, + flag: 'https://restcountries.eu/data/nam.svg', + currency: 'Namibian dollar' + }, + { + name: 'Nauru', + capital: 'Yaren', + languages: ['English', 'Nauruan'], + population: 10084, + flag: 'https://restcountries.eu/data/nru.svg', + currency: 'Australian dollar' + }, + { + name: 'Nepal', + capital: 'Kathmandu', + languages: ['Nepali'], + population: 28431500, + flag: 'https://restcountries.eu/data/npl.svg', + currency: 'Nepalese rupee' + }, + { + name: 'Netherlands', + capital: 'Amsterdam', + languages: ['Dutch'], + population: 17019800, + flag: 'https://restcountries.eu/data/nld.svg', + currency: 'Euro' + }, + { + name: 'New Caledonia', + capital: 'Nouméa', + languages: ['French'], + population: 268767, + flag: 'https://restcountries.eu/data/ncl.svg', + currency: 'CFP franc' + }, + { + name: 'New Zealand', + capital: 'Wellington', + languages: ['English', 'Māori'], + population: 4697854, + flag: 'https://restcountries.eu/data/nzl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Nicaragua', + capital: 'Managua', + languages: ['Spanish'], + population: 6262703, + flag: 'https://restcountries.eu/data/nic.svg', + currency: 'Nicaraguan córdoba' + }, + { + name: 'Niger', + capital: 'Niamey', + languages: ['French'], + population: 20715000, + flag: 'https://restcountries.eu/data/ner.svg', + currency: 'West African CFA franc' + }, + { + name: 'Nigeria', + capital: 'Abuja', + languages: ['English'], + population: 186988000, + flag: 'https://restcountries.eu/data/nga.svg', + currency: 'Nigerian naira' + }, + { + name: 'Niue', + capital: 'Alofi', + languages: ['English'], + population: 1470, + flag: 'https://restcountries.eu/data/niu.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Norfolk Island', + capital: 'Kingston', + languages: ['English'], + population: 2302, + flag: 'https://restcountries.eu/data/nfk.svg', + currency: 'Australian dollar' + }, + { + name: "Korea (Democratic People's Republic of)", + capital: 'Pyongyang', + languages: ['Korean'], + population: 25281000, + flag: 'https://restcountries.eu/data/prk.svg', + currency: 'North Korean won' + }, + { + name: 'Northern Mariana Islands', + capital: 'Saipan', + languages: ['English', 'Chamorro'], + population: 56940, + flag: 'https://restcountries.eu/data/mnp.svg', + currency: 'United States dollar' + }, + { + name: 'Norway', + capital: 'Oslo', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 5223256, + flag: 'https://restcountries.eu/data/nor.svg', + currency: 'Norwegian krone' + }, + { + name: 'Oman', + capital: 'Muscat', + languages: ['Arabic'], + population: 4420133, + flag: 'https://restcountries.eu/data/omn.svg', + currency: 'Omani rial' + }, + { + name: 'Pakistan', + capital: 'Islamabad', + languages: ['English', 'Urdu'], + population: 194125062, + flag: 'https://restcountries.eu/data/pak.svg', + currency: 'Pakistani rupee' + }, + { + name: 'Palau', + capital: 'Ngerulmud', + languages: ['English'], + population: 17950, + flag: 'https://restcountries.eu/data/plw.svg', + currency: '[E]' + }, + { + name: 'Palestine, State of', + capital: 'Ramallah', + languages: ['Arabic'], + population: 4682467, + flag: 'https://restcountries.eu/data/pse.svg', + currency: 'Israeli new sheqel' + }, + { + name: 'Panama', + capital: 'Panama City', + languages: ['Spanish'], + population: 3814672, + flag: 'https://restcountries.eu/data/pan.svg', + currency: 'Panamanian balboa' + }, + { + name: 'Papua New Guinea', + capital: 'Port Moresby', + languages: ['English'], + population: 8083700, + flag: 'https://restcountries.eu/data/png.svg', + currency: 'Papua New Guinean kina' + }, + { + name: 'Paraguay', + capital: 'Asunción', + languages: ['Spanish', 'Guaraní'], + population: 6854536, + flag: 'https://restcountries.eu/data/pry.svg', + currency: 'Paraguayan guaraní' + }, + { + name: 'Peru', + capital: 'Lima', + languages: ['Spanish'], + population: 31488700, + flag: 'https://restcountries.eu/data/per.svg', + currency: 'Peruvian sol' + }, + { + name: 'Philippines', + capital: 'Manila', + languages: ['English'], + population: 103279800, + flag: 'https://restcountries.eu/data/phl.svg', + currency: 'Philippine peso' + }, + { + name: 'Pitcairn', + capital: 'Adamstown', + languages: ['English'], + population: 56, + flag: 'https://restcountries.eu/data/pcn.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Poland', + capital: 'Warsaw', + languages: ['Polish'], + population: 38437239, + flag: 'https://restcountries.eu/data/pol.svg', + currency: 'Polish złoty' + }, + { + name: 'Portugal', + capital: 'Lisbon', + languages: ['Portuguese'], + population: 10374822, + flag: 'https://restcountries.eu/data/prt.svg', + currency: 'Euro' + }, + { + name: 'Puerto Rico', + capital: 'San Juan', + languages: ['Spanish', 'English'], + population: 3474182, + flag: 'https://restcountries.eu/data/pri.svg', + currency: 'United States dollar' + }, + { + name: 'Qatar', + capital: 'Doha', + languages: ['Arabic'], + population: 2587564, + flag: 'https://restcountries.eu/data/qat.svg', + currency: 'Qatari riyal' + }, + { + name: 'Republic of Kosovo', + capital: 'Pristina', + languages: ['Albanian', 'Serbian'], + population: 1733842, + flag: 'https://restcountries.eu/data/kos.svg', + currency: 'Euro' + }, + { + name: 'Réunion', + capital: 'Saint-Denis', + languages: ['French'], + population: 840974, + flag: 'https://restcountries.eu/data/reu.svg', + currency: 'Euro' + }, + { + name: 'Romania', + capital: 'Bucharest', + languages: ['Romanian'], + population: 19861408, + flag: 'https://restcountries.eu/data/rou.svg', + currency: 'Romanian leu' + }, + { + name: 'Russian Federation', + capital: 'Moscow', + languages: ['Russian'], + population: 146599183, + flag: 'https://restcountries.eu/data/rus.svg', + currency: 'Russian ruble' + }, + { + name: 'Rwanda', + capital: 'Kigali', + languages: ['Kinyarwanda', 'English', 'French'], + population: 11553188, + flag: 'https://restcountries.eu/data/rwa.svg', + currency: 'Rwandan franc' + }, + { + name: 'Saint Barthélemy', + capital: 'Gustavia', + languages: ['French'], + population: 9417, + flag: 'https://restcountries.eu/data/blm.svg', + currency: 'Euro' + }, + { + name: 'Saint Helena, Ascension and Tristan da Cunha', + capital: 'Jamestown', + languages: ['English'], + population: 4255, + flag: 'https://restcountries.eu/data/shn.svg', + currency: 'Saint Helena pound' + }, + { + name: 'Saint Kitts and Nevis', + capital: 'Basseterre', + languages: ['English'], + population: 46204, + flag: 'https://restcountries.eu/data/kna.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Lucia', + capital: 'Castries', + languages: ['English'], + population: 186000, + flag: 'https://restcountries.eu/data/lca.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Martin (French part)', + capital: 'Marigot', + languages: ['English', 'French', 'Dutch'], + population: 36979, + flag: 'https://restcountries.eu/data/maf.svg', + currency: 'Euro' + }, + { + name: 'Saint Pierre and Miquelon', + capital: 'Saint-Pierre', + languages: ['French'], + population: 6069, + flag: 'https://restcountries.eu/data/spm.svg', + currency: 'Euro' + }, + { + name: 'Saint Vincent and the Grenadines', + capital: 'Kingstown', + languages: ['English'], + population: 109991, + flag: 'https://restcountries.eu/data/vct.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Samoa', + capital: 'Apia', + languages: ['Samoan', 'English'], + population: 194899, + flag: 'https://restcountries.eu/data/wsm.svg', + currency: 'Samoan tālā' + }, + { + name: 'San Marino', + capital: 'City of San Marino', + languages: ['Italian'], + population: 33005, + flag: 'https://restcountries.eu/data/smr.svg', + currency: 'Euro' + }, + { + name: 'Sao Tome and Principe', + capital: 'São Tomé', + languages: ['Portuguese'], + population: 187356, + flag: 'https://restcountries.eu/data/stp.svg', + currency: 'São Tomé and Príncipe dobra' + }, + { + name: 'Saudi Arabia', + capital: 'Riyadh', + languages: ['Arabic'], + population: 32248200, + flag: 'https://restcountries.eu/data/sau.svg', + currency: 'Saudi riyal' + }, + { + name: 'Senegal', + capital: 'Dakar', + languages: ['French'], + population: 14799859, + flag: 'https://restcountries.eu/data/sen.svg', + currency: 'West African CFA franc' + }, + { + name: 'Serbia', + capital: 'Belgrade', + languages: ['Serbian'], + population: 7076372, + flag: 'https://restcountries.eu/data/srb.svg', + currency: 'Serbian dinar' + }, + { + name: 'Seychelles', + capital: 'Victoria', + languages: ['French', 'English'], + population: 91400, + flag: 'https://restcountries.eu/data/syc.svg', + currency: 'Seychellois rupee' + }, + { + name: 'Sierra Leone', + capital: 'Freetown', + languages: ['English'], + population: 7075641, + flag: 'https://restcountries.eu/data/sle.svg', + currency: 'Sierra Leonean leone' + }, + { + name: 'Singapore', + capital: 'Singapore', + languages: ['English', 'Malay', 'Tamil', 'Chinese'], + population: 5535000, + flag: 'https://restcountries.eu/data/sgp.svg', + currency: 'Brunei dollar' + }, + { + name: 'Sint Maarten (Dutch part)', + capital: 'Philipsburg', + languages: ['Dutch', 'English'], + population: 38247, + flag: 'https://restcountries.eu/data/sxm.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Slovakia', + capital: 'Bratislava', + languages: ['Slovak'], + population: 5426252, + flag: 'https://restcountries.eu/data/svk.svg', + currency: 'Euro' + }, + { + name: 'Slovenia', + capital: 'Ljubljana', + languages: ['Slovene'], + population: 2064188, + flag: 'https://restcountries.eu/data/svn.svg', + currency: 'Euro' + }, + { + name: 'Solomon Islands', + capital: 'Honiara', + languages: ['English'], + population: 642000, + flag: 'https://restcountries.eu/data/slb.svg', + currency: 'Solomon Islands dollar' + }, + { + name: 'Somalia', + capital: 'Mogadishu', + languages: ['Somali', 'Arabic'], + population: 11079000, + flag: 'https://restcountries.eu/data/som.svg', + currency: 'Somali shilling' + }, + { + name: 'South Africa', + capital: 'Pretoria', + languages: [ + 'Afrikaans', + 'English', + 'Southern Ndebele', + 'Southern Sotho', + 'Swati', + 'Tswana', + 'Tsonga', + 'Venda', + 'Xhosa', + 'Zulu' + ], + population: 55653654, + flag: 'https://restcountries.eu/data/zaf.svg', + currency: 'South African rand' + }, + { + name: 'South Georgia and the South Sandwich Islands', + capital: 'King Edward Point', + languages: ['English'], + population: 30, + flag: 'https://restcountries.eu/data/sgs.svg', + currency: 'British pound' + }, + { + name: 'Korea (Republic of)', + capital: 'Seoul', + languages: ['Korean'], + population: 50801405, + flag: 'https://restcountries.eu/data/kor.svg', + currency: 'South Korean won' + }, + { + name: 'South Sudan', + capital: 'Juba', + languages: ['English'], + population: 12131000, + flag: 'https://restcountries.eu/data/ssd.svg', + currency: 'South Sudanese pound' + }, + { + name: 'Spain', + capital: 'Madrid', + languages: ['Spanish'], + population: 46438422, + flag: 'https://restcountries.eu/data/esp.svg', + currency: 'Euro' + }, + { + name: 'Sri Lanka', + capital: 'Colombo', + languages: ['Sinhalese', 'Tamil'], + population: 20966000, + flag: 'https://restcountries.eu/data/lka.svg', + currency: 'Sri Lankan rupee' + }, + { + name: 'Sudan', + capital: 'Khartoum', + languages: ['Arabic', 'English'], + population: 39598700, + flag: 'https://restcountries.eu/data/sdn.svg', + currency: 'Sudanese pound' + }, + { + name: 'Suriname', + capital: 'Paramaribo', + languages: ['Dutch'], + population: 541638, + flag: 'https://restcountries.eu/data/sur.svg', + currency: 'Surinamese dollar' + }, + { + name: 'Svalbard and Jan Mayen', + capital: 'Longyearbyen', + languages: ['Norwegian'], + population: 2562, + flag: 'https://restcountries.eu/data/sjm.svg', + currency: 'Norwegian krone' + }, + { + name: 'Swaziland', + capital: 'Lobamba', + languages: ['English', 'Swati'], + population: 1132657, + flag: 'https://restcountries.eu/data/swz.svg', + currency: 'Swazi lilangeni' + }, + { + name: 'Sweden', + capital: 'Stockholm', + languages: ['Swedish'], + population: 9894888, + flag: 'https://restcountries.eu/data/swe.svg', + currency: 'Swedish krona' + }, + { + name: 'Switzerland', + capital: 'Bern', + languages: ['German', 'French', 'Italian'], + population: 8341600, + flag: 'https://restcountries.eu/data/che.svg', + currency: 'Swiss franc' + }, + { + name: 'Syrian Arab Republic', + capital: 'Damascus', + languages: ['Arabic'], + population: 18564000, + flag: 'https://restcountries.eu/data/syr.svg', + currency: 'Syrian pound' + }, + { + name: 'Taiwan', + capital: 'Taipei', + languages: ['Chinese'], + population: 23503349, + flag: 'https://restcountries.eu/data/twn.svg', + currency: 'New Taiwan dollar' + }, + { + name: 'Tajikistan', + capital: 'Dushanbe', + languages: ['Tajik', 'Russian'], + population: 8593600, + flag: 'https://restcountries.eu/data/tjk.svg', + currency: 'Tajikistani somoni' + }, + { + name: 'Tanzania, United Republic of', + capital: 'Dodoma', + languages: ['Swahili', 'English'], + population: 55155000, + flag: 'https://restcountries.eu/data/tza.svg', + currency: 'Tanzanian shilling' + }, + { + name: 'Thailand', + capital: 'Bangkok', + languages: ['Thai'], + population: 65327652, + flag: 'https://restcountries.eu/data/tha.svg', + currency: 'Thai baht' + }, + { + name: 'Timor-Leste', + capital: 'Dili', + languages: ['Portuguese'], + population: 1167242, + flag: 'https://restcountries.eu/data/tls.svg', + currency: 'United States dollar' + }, + { + name: 'Togo', + capital: 'Lomé', + languages: ['French'], + population: 7143000, + flag: 'https://restcountries.eu/data/tgo.svg', + currency: 'West African CFA franc' + }, + { + name: 'Tokelau', + capital: 'Fakaofo', + languages: ['English'], + population: 1411, + flag: 'https://restcountries.eu/data/tkl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Tonga', + capital: "Nuku'alofa", + languages: ['English', 'Tonga (Tonga Islands)'], + population: 103252, + flag: 'https://restcountries.eu/data/ton.svg', + currency: 'Tongan paʻanga' + }, + { + name: 'Trinidad and Tobago', + capital: 'Port of Spain', + languages: ['English'], + population: 1349667, + flag: 'https://restcountries.eu/data/tto.svg', + currency: 'Trinidad and Tobago dollar' + }, + { + name: 'Tunisia', + capital: 'Tunis', + languages: ['Arabic'], + population: 11154400, + flag: 'https://restcountries.eu/data/tun.svg', + currency: 'Tunisian dinar' + }, + { + name: 'Turkey', + capital: 'Ankara', + languages: ['Turkish'], + population: 78741053, + flag: 'https://restcountries.eu/data/tur.svg', + currency: 'Turkish lira' + }, + { + name: 'Turkmenistan', + capital: 'Ashgabat', + languages: ['Turkmen', 'Russian'], + population: 4751120, + flag: 'https://restcountries.eu/data/tkm.svg', + currency: 'Turkmenistan manat' + }, + { + name: 'Turks and Caicos Islands', + capital: 'Cockburn Town', + languages: ['English'], + population: 31458, + flag: 'https://restcountries.eu/data/tca.svg', + currency: 'United States dollar' + }, + { + name: 'Tuvalu', + capital: 'Funafuti', + languages: ['English'], + population: 10640, + flag: 'https://restcountries.eu/data/tuv.svg', + currency: 'Australian dollar' + }, + { + name: 'Uganda', + capital: 'Kampala', + languages: ['English', 'Swahili'], + population: 33860700, + flag: 'https://restcountries.eu/data/uga.svg', + currency: 'Ugandan shilling' + }, + { + name: 'Ukraine', + capital: 'Kiev', + languages: ['Ukrainian'], + population: 42692393, + flag: 'https://restcountries.eu/data/ukr.svg', + currency: 'Ukrainian hryvnia' + }, + { + name: 'United Arab Emirates', + capital: 'Abu Dhabi', + languages: ['Arabic'], + population: 9856000, + flag: 'https://restcountries.eu/data/are.svg', + currency: 'United Arab Emirates dirham' + }, + { + name: 'United Kingdom of Great Britain and Northern Ireland', + capital: 'London', + languages: ['English'], + population: 65110000, + flag: 'https://restcountries.eu/data/gbr.svg', + currency: 'British pound' + }, + { + name: 'United States of America', + capital: 'Washington, D.C.', + languages: ['English'], + population: 323947000, + flag: 'https://restcountries.eu/data/usa.svg', + currency: 'United States dollar' + }, + { + name: 'Uruguay', + capital: 'Montevideo', + languages: ['Spanish'], + population: 3480222, + flag: 'https://restcountries.eu/data/ury.svg', + currency: 'Uruguayan peso' + }, + { + name: 'Uzbekistan', + capital: 'Tashkent', + languages: ['Uzbek', 'Russian'], + population: 31576400, + flag: 'https://restcountries.eu/data/uzb.svg', + currency: "Uzbekistani so'm" + }, + { + name: 'Vanuatu', + capital: 'Port Vila', + languages: ['Bislama', 'English', 'French'], + population: 277500, + flag: 'https://restcountries.eu/data/vut.svg', + currency: 'Vanuatu vatu' + }, + { + name: 'Venezuela (Bolivarian Republic of)', + capital: 'Caracas', + languages: ['Spanish'], + population: 31028700, + flag: 'https://restcountries.eu/data/ven.svg', + currency: 'Venezuelan bolívar' + }, + { + name: 'Viet Nam', + capital: 'Hanoi', + languages: ['Vietnamese'], + population: 92700000, + flag: 'https://restcountries.eu/data/vnm.svg', + currency: 'Vietnamese đồng' + }, + { + name: 'Wallis and Futuna', + capital: 'Mata-Utu', + languages: ['French'], + population: 11750, + flag: 'https://restcountries.eu/data/wlf.svg', + currency: 'CFP franc' + }, + { + name: 'Western Sahara', + capital: 'El Aaiún', + languages: ['Spanish'], + population: 510713, + flag: 'https://restcountries.eu/data/esh.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Yemen', + capital: "Sana'a", + languages: ['Arabic'], + population: 27478000, + flag: 'https://restcountries.eu/data/yem.svg', + currency: 'Yemeni rial' + }, + { + name: 'Zambia', + capital: 'Lusaka', + languages: ['English'], + population: 15933883, + flag: 'https://restcountries.eu/data/zmb.svg', + currency: 'Zambian kwacha' + }, + { + name: 'Zimbabwe', + capital: 'Harare', + languages: ['English', 'Shona', 'Northern Ndebele'], + population: 14240168, + flag: 'https://restcountries.eu/data/zwe.svg', + currency: 'Botswana pula' + } +] diff --git a/Turkish/08_Day_Objects/08_day_starter/index.html b/Turkish/08_Day_Objects/08_day_starter/index.html new file mode 100644 index 0000000..a86b373 --- /dev/null +++ b/Turkish/08_Day_Objects/08_day_starter/index.html @@ -0,0 +1,17 @@ + + + + + 30DaysOfJavaScript:08 Day + + + +

30DaysOfJavaScript:08 Day

+

Objects

+ + + + + + + \ No newline at end of file diff --git a/Turkish/08_Day_Objects/08_day_starter/scripts/main.js b/Turkish/08_Day_Objects/08_day_starter/scripts/main.js new file mode 100644 index 0000000..421fb87 --- /dev/null +++ b/Turkish/08_Day_Objects/08_day_starter/scripts/main.js @@ -0,0 +1,2 @@ +console.log(countries) +alert('Open the console and check if the countries has been loaded') \ No newline at end of file