diff --git a/Turkish/02_Day_Data_types/02_day_data_types.md b/Turkish/02_Day_Data_types/02_day_data_types.md index 694313f..b688531 100644 --- a/Turkish/02_Day_Data_types/02_day_data_types.md +++ b/Turkish/02_Day_Data_types/02_day_data_types.md @@ -7,10 +7,11 @@ Twitter Follow - Author: - Asabeneh Yetayeh
- January, 2020 -
+Author: +Asabeneh Yetayeh
+ January, 2020 +
+ @@ -19,37 +20,37 @@ ![JavaScript'in 30 Günü](../../images/banners/day_1_2.png) - [📔 Gün 2](#-gun-2) - - [Veri Türleri](#veri-turleri) - - [İlkel Veri Türleri](#ilkel-veri-türleri) - - [İlkel Olmayan Veri Türleri](#ilkel-olmayan-veri-türleri) - - [Sayılar](#sayilar) - - [Sayı Veri Türlerini Bildirme](#sayı-veri-türleri-bildirme) - - [Math Nesnesi](#math-nesnesi) - - [Rastgele Sayı Üretme](#rastgele-sayı-üretme) - - [Stringler](#stringler) - - [String Birleştirme](#string-birleştirme) - - [Toplama Operatörünü Kullanarak Birleştirme](#toplama-operatörü-kullanarak-birleştirme) - - [Uzun Değişmez String'ler](#uzun-değişmez-stringler) - - [String'lerdeki Kaçış Dizileri](#strringlerdeki-kaçış-dizileri) - - [Şablon Değişmezleri](#şablon-değişmezleri) - - [String Metotları](#string-metotları) - - [Veri Türlerini Kontrol Etme ve Döküm](#veri-türlerini-kontrol-etme-ve-döküm) - - [Veri Türlerini Kontrol Etme](#veri-türlerini-kontrol-etme) - - [Veri Türünü Değiştirme (Döküm)](#veri-türünü-değiştirme-döküm) - - [String to Int](#string-to-int) - - [String to Float](#string-to-float) - - [Float to Int](#float-to-int) - - [💻 Gün 2: Egzersizler](#-gün-2-egzersizler) - - [Egzersiz: Seviye 1](#egzersiz-seviye-1) - - [Egzersiz: Seviye 2](#egzersiz-seviye-2) - - [Egzersiz: Seviye 3](#egzersiz-seviye-3) + - [Veri Türleri](#veri-turleri) + - [İlkel Veri Türleri](#ilkel-veri-türleri) + - [İlkel Olmayan Veri Türleri](#ilkel-olmayan-veri-türleri) + - [Sayılar](#sayilar) + - [Sayı Veri Türlerini Bildirme](#sayı-veri-türleri-bildirme) + - [Math Nesnesi](#math-nesnesi) + - [Rastgele Sayı Üretme](#rastgele-sayı-üretme) + - [Stringler](#stringler) + - [String Birleştirme](#string-birleştirme) + - [Toplama Operatörünü Kullanarak Birleştirme](#toplama-operatörü-kullanarak-birleştirme) + - [Uzun Değişmez String'ler](#uzun-değişmez-stringler) + - [String'lerdeki Kaçış Dizileri](#strringlerdeki-kaçış-dizileri) + - [Şablon Değişmezleri](#şablon-değişmezleri) + - [String Metotları](#string-metotları) + - [Veri Türlerini Kontrol Etme ve Döküm](#veri-türlerini-kontrol-etme-ve-döküm) + - [Veri Türlerini Kontrol Etme](#veri-türlerini-kontrol-etme) + - [Veri Türünü Değiştirme (Döküm)](#veri-türünü-değiştirme-döküm) + - [String to Int](#string-to-int) + - [String to Float](#string-to-float) + - [Float to Int](#float-to-int) + - [💻 Gün 2: Egzersizler](#-gün-2-egzersizler) + - [Egzersiz: Seviye 1](#egzersiz-seviye-1) + - [Egzersiz: Seviye 2](#egzersiz-seviye-2) + - [Egzersiz: Seviye 3](#egzersiz-seviye-3) # 📔 Gün 2 -( type çeviri olarak "tür - tip " olarak kullanılabilir. ) +( type çeviri olarak "tür - tip " olarak kullanılabilir. ) Bölüm çevirisini yaparken bazı kelimeleri çevirmedim zira bunları ingilizce halleriyle bilmenizde fayda var. Örn: - String vb.. +String vb.. ## Veri Türleri @@ -63,130 +64,129 @@ Veri türleri, verilerin özelliklerini tanımlar. Veri türleri ikiye ayrılabi JavaScript'teki ilkel veri türleri şunları içerir: - 1. Numbers - Tamsayılar - Ondalık sayılar - 2. Strings - Tek tırnak, çift tırnak veya ters tırnak içerisindeki tüm veriler.. - 3. Booleans - true yada false (true = 1 false = 0 bu iki terimi bu şekilde öğrenin. Çevirilerine çok girmeyin kısaca var yada yok ) - 4. Null - Boş değer yada değeri yok - 5. Undefined - Bir değer verilmeyen değişken. ( Örn: let variables; ) - 6. Symbol - Sembol yapıcısı tarafından oluşturulabilen benzersiz bir değer +1. Numbers - Tamsayılar - Ondalık sayılar +2. Strings - Tek tırnak, çift tırnak veya ters tırnak içerisindeki tüm veriler.. +3. Booleans - true ya da false (true = 1 false = 0 bu iki terimi bu şekilde öğrenin. Çevirilerine çok girmeyin kısaca var ya da yok ) +4. Null - Boş değer ya da değeri yok +5. Undefined - Bir değer verilmeyen değişken. ( Örn: let variables; ) +6. Symbol - Sembol yapıcısı tarafından oluşturulabilen benzersiz bir değer JavaScript'teki ilkel olmayan veri türleri şunları içerir: 1. Objects ( Nesneler ) -2. Arrays ( Diziler ) - +2. Arrays ( Diziler ) Şimdi ilkel ve ilkel olmayan veri türlerinin tam olarak ne anlama geldiğini görelim. -*İlkel* veri türleri değişmez (değiştirilemez) veri türleridir. İlkel bir veri türü oluşturulduktan sonra onu değiştiremeyiz. +_İlkel_ veri türleri değişmez (değiştirilemez) veri türleridir. İlkel bir veri türü oluşturulduktan sonra onu değiştiremeyiz. **Örnek:** ```js -let word = 'JavaScript' +let word = "JavaScript"; ``` -*word* değişkeninde saklanan dizeyi değiştirmeye çalışırsak JavaScript bir hata vermelidir. Tek, çift veya ters tırnak arasındaki herhangi bir veri türü, dize veri türüdür. - +_word_ değişkeninde saklanan dizeyi değiştirmeye çalışırsak JavaScript bir hata vermelidir. Tek, çift veya ters tırnak arasındaki herhangi bir veri türü, dize veri türüdür. + ```js -word[0] = 'Y' +word[0] = "Y"; ``` -Bu ifade *word* değişkeninde saklanan dizeyi değiştirmez. Yani, string'lerin değiştirilemez ya da başka bir deyişle değişmez olduğunu söyleyebiliriz. +Bu ifade _word_ değişkeninde saklanan dizeyi değiştirmez. Yani, string'lerin değiştirilemez ya da başka bir deyişle değişmez olduğunu söyleyebiliriz. İlkel veri türleri değerlerine göre karşılaştırılır. Farklı veri değerlerini karşılaştıralım. Aşağıdaki örneğe bakın: ```js -let numOne = 3 -let numTwo = 3 +let numOne = 3; +let numTwo = 3; -console.log(numOne == numTwo) // true ( Burada iki değişkende 3 e eşit olduğu için birbirine eşit olduğu sonucu çıkıyor ) +console.log(numOne == numTwo); // true ( Burada iki değişkende 3 e eşit olduğu için birbirine eşit olduğu sonucu çıkıyor ) -let js = 'JavaScript' -let py = 'Python' +let js = "JavaScript"; +let py = "Python"; -console.log(js == py) //false ( Burada iki değişkende farklı olduğu ve eşitlenemedikleri için false yani 0 değeri dönüyor ) +console.log(js == py); //false ( Burada iki değişkende farklı olduğu ve eşitlenemedikleri için false yani 0 değeri dönüyor ) -let lightOn = true -let lightOff = false +let lightOn = true; +let lightOff = false; -console.log(lightOn == lightOff) //false ( Yukarıdaki örnek gibi eeşit olmadıkları için false yani 0 değeri dönüyor ) +console.log(lightOn == lightOff); //false ( Yukarıdaki örnek gibi eeşit olmadıkları için false yani 0 değeri dönüyor ) ``` ### İlkel Olmayan Veri Türleri -*İlkel olmayan* veri türleri düzenlenebilir veya değiştirilebilir. İlkel olmayan veri türlerinin değerini, oluşturulduktan sonra değiştirebiliriz. +_İlkel olmayan_ veri türleri düzenlenebilir veya değiştirilebilir. İlkel olmayan veri türlerinin değerini, oluşturulduktan sonra değiştirebiliriz. Bir dizi oluşturarak görelim. Dizi, köşeli parantez içindeki veri değerlerinin bir listesidir.Diziler aynı veya farklı veri türlerini içerebilir. Dizi değerleri dizin indekslerine ( dizinine ) göre referans alınır. JavaScript'te dizilerin indeksi sıfırdan başlar. Yani bir dizinin ilk elemanı sıfır indeksinde, ikinci elemanı bir indeksinde, üçüncü elemanı iki indeksinde bulunur. ( Orjinal anlatıma bağlı kalmak istiyorum lakin bazen anlamsız olabiliyor. Kısaca diziler okunurken 0-1-2-3 .... şeklinde indekslenir. Bir dizinin ilk elemanına erişmek istiyorsanız indeks numarasına 0 yazmalısınız. Aşağıdaki örneği incelerseniz bu karmaşıklığı çözmüş olacaksınız. ) ```js -let nums = [1, 2, 3] -nums[0] = 10 +let nums = [1, 2, 3]; +nums[0] = 10; -console.log(nums) // [10, 2, 3] ( nums değişkeninin ilk elemanı yada 0. indeksinin değerini 10 yapmış oldu ) +console.log(nums); // [10, 2, 3] ( nums değişkeninin ilk elemanı ya da 0. indeksinin değerini 10 yapmış oldu ) ``` Gördüğünüz gibi "DİZİ" ilkel olmayan bir veri türü değişkenidir. İlkel olmayan veri türleri değere göre karşılaştırılamaz. İlkel olmayan veri türleri aynı özelliklere ve değerlere sahip olsa bile, kesinlikle eşit değildirler. ```js -let nums = [1, 2, 3] -let numbers = [1, 2, 3] +let nums = [1, 2, 3]; +let numbers = [1, 2, 3]; -console.log(nums == numbers) // false +console.log(nums == numbers); // false let userOne = { -name:'Asabeneh', -role:'teaching', -country:'Finland' -} + name: "Asabeneh", + role: "teaching", + country: "Finland", +}; let userTwo = { -name:'Asabeneh', -role:'teaching', -country:'Finland' -} + name: "Asabeneh", + role: "teaching", + country: "Finland", +}; -console.log(userOne == userTwo) // false +console.log(userOne == userTwo); // false ``` Temel kural, ilkel olmayan veri türlerini karşılaştıramıyoruz. Dizileri (arrays), fonksiyonları (functions) veya nesneleri (objects) karşılaştırmayın. İlkel olmayan değerler, değer yerine referansla karşılaştırıldıkları için referans türleri olarak adlandırılır. İki nesne, yalnızca aynı temel nesneye atıfta bulunuyorlarsa kesinlikle eşittir. ```js -let nums = [1, 2, 3] -let numbers = nums +let nums = [1, 2, 3]; +let numbers = nums; -console.log(nums == numbers) // true ( değişken oluştururken numbers'ın değerini nums'a eşitlediği için bunun sonucu true dönmektedir.) +console.log(nums == numbers); // true ( değişken oluştururken numbers'ın değerini nums'a eşitlediği için bunun sonucu true dönmektedir.) let userOne = { -name:'Asabeneh', -role:'teaching', -country:'Finland' -} + name: "Asabeneh", + role: "teaching", + country: "Finland", +}; -let userTwo = userOne +let userTwo = userOne; -console.log(userOne == userTwo) // true ( yukarıdaki ile aynı ) +console.log(userOne == userTwo); // true ( yukarıdaki ile aynı ) ``` -İlkel veri türleri ile ilkel olmayan veri türleri arasındaki farkı anlamakta zorluk çekiyorsan, bunu yaşayan tek kişi değilsin. Sakin ol ve bir sonraki bölüme geç ve bir süre sonra geri gelip burayı tekrar incele. Şimdi sayı türlerine göre veri türlerine başlayalım. +İlkel veri türleri ile ilkel olmayan veri türleri arasındaki farkı anlamakta zorluk çekiyorsan, bunu yaşayan tek kişi değilsin. Sakin ol ve bir sonraki bölüme geç ve bir süre sonra geri gelip burayı tekrar incele. Şimdi sayı türlerine göre veri türlerine başlayalım. ## Sayılar -Sayılar, tüm aritmetik işlemleri yapabilen tam sayılar ve ondalık değerlerdir. +Sayılar, tüm aritmetik işlemleri yapabilen tam sayılar ve ondalık değerlerdir. Hadi sayılar ile ilgili bazı örnekler görelim. ### Sayı Veri Türlerini Bildirme ```js -let age = 35 -const gravity = 9.81 // yer çekimi kuvvet değeri bu değer haliyle değişmeyeceği için const olarak tanımlanıyor. Değişmez değişkenleri const ile tanımlarsınız. Bunu unutmayın. -let mass = 72 // kilogram cinsinden kütle -const PI = 3.14 // pi sayısı matematikte sabit bir sayı olduğu için const ile oluşturulmuş. ( küsüratı almamış ) +let age = 35; +const gravity = 9.81; // yer çekimi kuvvet değeri bu değer haliyle değişmeyeceği için const olarak tanımlanıyor. Değişmez değişkenleri const ile tanımlarsınız. Bunu unutmayın. +let mass = 72; // kilogram cinsinden kütle +const PI = 3.14; // pi sayısı matematikte sabit bir sayı olduğu için const ile oluşturulmuş. ( küsuratı almamış ) // daha fazla örnek -const boilingPoint = 100 // derece cinsinden sıcaklık, suyun sabit olan kaynama noktası ( derecesi ) -const bodyTemp = 37 // derece. İnsan vücudun sabit olan ortalama sıcaklığı +const boilingPoint = 100; // derece cinsinden sıcaklık, suyun sabit olan kaynama noktası ( derecesi ) +const bodyTemp = 37; // derece. İnsan vücudunun sabit olan ortalama sıcaklığı -console.log(age, gravity, mass, PI, boilingPoint, bodyTemp) +console.log(age, gravity, mass, PI, boilingPoint, bodyTemp); ``` ### Matematik Nesnesi - Objesi ( Math Object ) @@ -194,61 +194,61 @@ console.log(age, gravity, mass, PI, boilingPoint, bodyTemp) JavaScript'te Math Objesi, sayılar ile çalışmanız için birçok yöntem sağlar. ```js -const PI = Math.PI // Buraya kısa bir açıklama getirelim. Math objesi sayesinde PI sayısının değerini otomatik alıyoruz. +const PI = Math.PI; // Buraya kısa bir açıklama getirelim. Math nesnesi sayesinde PI sayısının değerini otomatik alıyoruz. -console.log(PI) // 3.141592653589793 +console.log(PI); // 3.141592653589793 // En yakın sayıya yuvarlama // Eğer .5'in altındaysa aşağıya üstündeyse yukarıya yuvarlar. Örn: 3.14 ise 3 yapar 3.51 ise 4 yapar. -console.log(Math.round(PI)) // 3.14 olduğu için 3 e yuvarlama yapıyor +console.log(Math.round(PI)); // 3.14 olduğu için 3 e yuvarlama yapıyor -console.log(Math.round(9.81)) // Ondası 0.5 üstünde olduğu için 10 yapar +console.log(Math.round(9.81)); // Ondası 0.5 üstünde olduğu için 10 yapar -console.log(Math.floor(PI)) // floor aşağı yuvarlar Bu 3 olur +console.log(Math.floor(PI)); // floor aşağı yuvarlar Bu 3 olur -console.log(Math.ceil(PI)) // ceil yukarı yuvarlar Bu 4 olur +console.log(Math.ceil(PI)); // ceil yukarı yuvarlar Bu 4 olur -console.log(Math.min(-5, 3, 20, 4, 5, 10)) // En küçük sayıyı bulmaya yaradığı için sonuç -5 döner +console.log(Math.min(-5, 3, 20, 4, 5, 10)); // En küçük sayıyı bulmaya yaradığı için sonuç -5 döner -console.log(Math.max(-5, 3, 20, 4, 5, 10)) // En büyük sayıyı bulmaya yaradığı için sonuç 20 döner +console.log(Math.max(-5, 3, 20, 4, 5, 10)); // En büyük sayıyı bulmaya yaradığı için sonuç 20 döner -const randNum = Math.random() // 0 ile 0.999999 arasında rastgele bir sayı üretir. -console.log(randNum) +const randNum = Math.random(); // 0 ile 0.999999 arasında rastgele bir sayı üretir. +console.log(randNum); // 0 ile 10 arasında rastgele bir sayı oluşturalım. -const num = Math.floor(Math.random () * 11) // 0 ile 10 arasında rastgele sayı oluşturur -console.log(num) +const num = Math.floor(Math.random() * 11); // 0 ile 10 arasında rastgele sayı oluşturur +console.log(num); //Mutlak değer -console.log(Math.abs(-10)) // 10 +console.log(Math.abs(-10)); // 10 //Kare kök -console.log(Math.sqrt(100)) // 10 +console.log(Math.sqrt(100)); // 10 -console.log(Math.sqrt(2)) // 1.4142135623730951 +console.log(Math.sqrt(2)); // 1.4142135623730951 // Üs -console.log(Math.pow(3, 2)) // 9 +console.log(Math.pow(3, 2)); // 9 -console.log(Math.E) // 2.718 +console.log(Math.E); // 2.718 // Logaritma // Returns the natural logarithm with base E of x, Math.log(x) -console.log(Math.log(2)) // 0.6931471805599453 -console.log(Math.log(10)) // 2.302585092994046 +console.log(Math.log(2)); // 0.6931471805599453 +console.log(Math.log(10)); // 2.302585092994046 // Sırasıyla 2 ve 10'un doğal logaritmasını döndürür -console.log(Math.LN2) // 0.6931471805599453 -console.log(Math.LN10) // 2.302585092994046 +console.log(Math.LN2); // 0.6931471805599453 +console.log(Math.LN10); // 2.302585092994046 // Trigonometri -Math.sin(0) -Math.sin(60) +Math.sin(0); +Math.sin(60); -Math.cos(0) -Math.cos(60) +Math.cos(0); +Math.cos(60); ``` #### Rastgele Sayı Üretme @@ -256,43 +256,43 @@ Math.cos(60) JavaScript'te Math nesnesi random() methodu 0 ile 0,999999999 arasında bir sayı üretir ```js -let randomNum = Math.random() // 0 ile 0.999999999 arasında bir sayı üretir +let randomNum = Math.random(); // 0 ile 0.999999999 arasında bir sayı üretir ``` Şimdi 0 ile 10 arasında rastgele bir sayı üretmek için random() methodu'nu nasıl kullanabileceğimizi görelim: ```js -let randomNum = Math.random() // 0 ile 0.999 arasında oluşturur -let numBtnZeroAndTen = randomNum * 11 +let randomNum = Math.random(); // 0 ile 0.999 arasında oluşturur +let numBtnZeroAndTen = randomNum * 11; -console.log(numBtnZeroAndTen) // Sonuç : minimum 0 ve maksimum 10.99 +console.log(numBtnZeroAndTen); // Sonuç : minimum 0 ve maksimum 10.99 -let randomNumRoundToFloor = Math.floor(numBtnZeroAndTen) // yuvarlama yapıyor -console.log(randomNumRoundToFloor) // Sonuç 0 ile 10 arasında çıkar +let randomNumRoundToFloor = Math.floor(numBtnZeroAndTen); // yuvarlama yapıyor +console.log(randomNumRoundToFloor); // Sonuç 0 ile 10 arasında çıkar ``` -## Strings +## Strings Dizeler **_tek_**, **_çift_** ve **_ters tırnak_** arasındaki metinlerdir. -Bir dize bildirmek için değişken adına, atama operatörüne, tek tırnak, çift tırnak veya ters tırnak içerisinde bir değere ihtiyacımız var. +Bir dize bildirmek için değişken adına, atama operatörüne, tek tırnak, çift tırnak veya ters tırnak içerisinde bir değere ihtiyacımız var. Bazı dize örnekleri görelim: ```js -let space = ' ' // boş alan string tek tırnaklı -let firstName = 'Asabeneh' // tek tırnaklı string -let lastName = 'Yetayeh' // tek tırnaklı string -let country = 'Finland' // tek tırnaklı string -let city = 'Helsinki' // tek tırnaklı string -let language = 'JavaScript' // tk tırnaklı string -let job = 'teacher' // tek tırnaklı string -let quote = "The saying,'Seeing is Believing' is not correct in 2020." // çift tırnaklı string -let quotWithBackTick = `The saying,'Seeing is Believing' is not correct in 2020.` // ters tırnaklı string (bu karakteri genellikle klavyenizdeki noktalı virgülü kullanarak yaparsınız. Benim klavyemde alt gr + noktalı virgül ve iki kere tıklanınca çıkıyor) +let space = " "; // boş alan string tek tırnaklı +let firstName = "Asabeneh"; // tek tırnaklı string +let lastName = "Yetayeh"; // tek tırnaklı string +let country = "Finland"; // tek tırnaklı string +let city = "Helsinki"; // tek tırnaklı string +let language = "JavaScript"; // tek tırnaklı string +let job = "teacher"; // tek tırnaklı string +let quote = "The saying,'Seeing is Believing' is not correct in 2020."; // çift tırnaklı string +let quotWithBackTick = `The saying,'Seeing is Believing' is not correct in 2020.`; // ters tırnaklı string (bu karakteri genellikle klavyenizdeki noktalı virgülü kullanarak yaparsınız. Benim klavyemde alt gr + noktalı virgül ve iki kere tıklanınca çıkıyor) ``` ### String Birleştirme İki veya daha fazla string'i birbirine bağlama işlemine birleştirme denir. -Yukarda bulunan string örneklerini kullanarak: +Yukarda bulunan string örneklerini kullanarak: ```js let fullName = firstName + space + lastName; // birleştirme, iki string'i bir araya getirme. @@ -300,10 +300,10 @@ console.log(fullName); ``` ```sh -Asabeneh Yetayeh +Asabeneh Yetayeh ``` -String'leri farklı şekildede birleştirebiliriz. +String'leri farklı şekilde de birleştirebiliriz. #### Toplama Operatörünü Kullanarak Birleştirme @@ -311,66 +311,69 @@ Ekleme operatörü kullanarak birleştirme eski bir yöntemdir. Bu birleştirme ```js // Farklı veri türlerini oluşturma -let space = ' ' -let firstName = 'Asabeneh' -let lastName = 'Yetayeh' -let country = 'Finland' -let city = 'Helsinki' -let language = 'JavaScript' -let job = 'teacher' -let age = 250 - +let space = " "; +let firstName = "Asabeneh"; +let lastName = "Yetayeh"; +let country = "Finland"; +let city = "Helsinki"; +let language = "JavaScript"; +let job = "teacher"; +let age = 250; -let fullName =firstName + space + lastName -let personInfoOne = fullName + '. I am ' + age + '. I live in ' + country; // ES5 toplama operatörü ile değişkenleri birleştiriyor +let fullName = firstName + space + lastName; +let personInfoOne = fullName + ". I am " + age + ". I live in " + country; // ES5 toplama operatörü ile değişkenleri birleştiriyor -console.log(personInfoOne) +console.log(personInfoOne); ``` ```sh -Asabeneh Yetayeh. I am 250. I live in Finland +Asabeneh Yetayeh. I am 250. I live in Finland ``` #### Uzun Değişmez Stringler -Stringler tek bir karakter, paragraf yada sayfa olabilir. String uzunluğu çok büyükse tek bir satıra sığmayabilir. String'in bir sonraki satırda devam edeceğini belirtmek için her satırın sonunda ters eğik çizgi karakterini (\\) kullanabiliriz. +Stringler tek bir karakter, paragraf ya da sayfa olabilir. String uzunluğu çok büyükse tek bir satıra sığmayabilir. String'in bir sonraki satırda devam edeceğini belirtmek için her satırın sonunda ters eğik çizgi karakterini (\\) kullanabiliriz. **Örnek:** ```js // burada kendinden bahseden bir paragraf yazmış. Bunuda çevirmeyelim :D -const paragraph = "My name is Asabeneh Yetayeh. I live in Finland, Helsinki.\ +const paragraph = + "My name is Asabeneh Yetayeh. I live in Finland, Helsinki.\ I am a teacher and I love teaching. I teach HTML, CSS, JavaScript, React, Redux, \ Node.js, Python, Data Analysis and D3.js for anyone who is interested to learn. \ In the end of 2019, I was thinking to expand my teaching and to reach \ to global audience and I started a Python challenge from November 20 - December 19.\ It was one of the most rewarding and inspiring experience.\ Now, we are in 2020. I am enjoying preparing the 30DaysOfJavaScript challenge and \ -I hope you are enjoying too." +I hope you are enjoying too."; -console.log(paragraph) +console.log(paragraph); ``` #### String'lerdeki Kaçış Dizileri -JavaScript ve diğer programlama dillerinde \ (ters eğik çizgi ) ardından bazı karakterler kaçış dizisidir. En yaygın kaçış karakterlerini görelim: + +JavaScript ve diğer programlama dillerinde \ (ters eğik çizgi ) ardından bazı karakterler kaçış dizisidir. En yaygın kaçış karakterlerini görelim: - \n: yeni satır - \t: Tab, 8 boşluk anlamına gelir ( klavyedeki tab tuşunu temsil eder ) - \\\\: Ters eğik çizgi - \\': Tek Tırnak (') - \\": Çift Tırnak (") - + ```js // kodları console kısmına yazarak denerseniz daha iyi anlarsınız. -console.log('I hope everyone is enjoying the 30 Days Of JavaScript challenge.\nDo you ?') // Buradakı \n satır sonu anlamına gelir sonrası aşağı iner -console.log('Days\tTopics\tExercises') // Burada her kelimeden sonra bir tab (\t) tuşuna basılmış etkisi verir -console.log('Day 1\t3\t5') // \t bir başka örnek -console.log('Day 2\t3\t5') // \t bir başka örnek -console.log('Day 3\t3\t5') // \t bir başka örnek -console.log('Day 4\t3\t5') // \t bir başka örnek -console.log('This is a backslash symbol (\\)') // Ters eğik çizgi yazmak için \\ kullanılıyor -console.log('In every programming language it starts with \"Hello, World!\"') // Hello World'ü çift tırnak içine almak için \" Hello World \" kullanılıyor. -console.log("In every programming language it starts with \'Hello, World!\'") // Hello World'ü tek tırnak içine almak için \' Hello World \' kullanılıyor. -console.log('The saying \'Seeing is Believing\' isn\'t correct in 2020') // Bu kısımdada alıntıları kullanmak için \ kullanımı gösterilmiş. +console.log( + "I hope everyone is enjoying the 30 Days Of JavaScript challenge.\nDo you ?" +); // Buradaki \n satır sonu anlamına gelir sonrası aşağı iner +console.log("Days\tTopics\tExercises"); // Burada her kelimeden sonra bir tab (\t) tuşuna basılmış etkisi verir +console.log("Day 1\t3\t5"); // \t bir başka örnek +console.log("Day 2\t3\t5"); // \t bir başka örnek +console.log("Day 3\t3\t5"); // \t bir başka örnek +console.log("Day 4\t3\t5"); // \t bir başka örnek +console.log("This is a backslash symbol (\\)"); // Ters eğik çizgi yazmak için \\ kullanılıyor +console.log('In every programming language it starts with "Hello, World!"'); // Hello World'ü çift tırnak içine almak için \" Hello World \" kullanılıyor. +console.log("In every programming language it starts with 'Hello, World!'"); // Hello World'ü tek tırnak içine almak için \' Hello World \' kullanılıyor. +console.log("The saying 'Seeing is Believing' isn't correct in 2020"); // Bu kısımda da alıntıları kullanmak için \ kullanımı gösterilmiş. ``` Konsol çıktıları : @@ -391,41 +394,39 @@ The saying 'Seeing is Believing' isn't correct in 2020 #### Şablon Değişmezleri (Şablon String'ler) -Şablon string'leri oluşturmak için iki ters tırnak kullanıyoruz. Verileri bir şablon string'i içine ifade olarak ekleme yapabiliriz. Verileri eklemek için, ifadeyi $ (dolar) işareti ile başlayan bir küme parantezinin "{}" içine alırız. Aşağıdaki sözdizimine bakın. +Şablon string'leri oluşturmak için iki ters tırnak kullanıyoruz. Verileri bir şablon string'i içine ifade olarak ekleme yapabiliriz. Verileri eklemek için, ifadeyi $ (dolar) işareti ile başlayan bir küme parantezinin "{}" içine alırız. Aşağıdaki sözdizimine bakın. ```js //Syntax -`String literal text` -`String literal text ${expression}` +`String literal text``String literal text ${expression}`; ``` **Örnek : 1** ```js -console.log(`The sum of 2 and 3 is 5`) // statik bir veri -let a = 2 -let b = 3 -console.log(`The sum of ${a} and ${b} is ${a + b}`) // verileri dinamik olarak ekleme +console.log(`The sum of 2 and 3 is 5`); // statik bir veri +let a = 2; +let b = 3; +console.log(`The sum of ${a} and ${b} is ${a + b}`); // verileri dinamik olarak ekleme ``` **Örnek :2** ```js - // Bu kısımda yazar + kullanarak ekleme yapmanın diğer yöntemi olan ES6 ekleme yöntemini gösteriyor. Bu daha stabil çalışıyor. -let firstName = 'Asabeneh' -let lastName = 'Yetayeh' -let country = 'Finland' -let city = 'Helsinki' -let language = 'JavaScript' -let job = 'teacher' -let age = 250 -let fullName = firstName + ' ' + lastName +let firstName = "Asabeneh"; +let lastName = "Yetayeh"; +let country = "Finland"; +let city = "Helsinki"; +let language = "JavaScript"; +let job = "teacher"; +let age = 250; +let fullName = firstName + " " + lastName; -let personInfoTwo = `I am ${fullName}. I am ${age}. I live in ${country}.` //ES6 - dize ekleme yöntemi ( ES5 yukarda gösterilmişti ) -let personInfoThree = `I am ${fullName}. I live in ${city}, ${country}. I am a ${job}. I teach ${language}.` -console.log(personInfoTwo) -console.log(personInfoThree) +let personInfoTwo = `I am ${fullName}. I am ${age}. I live in ${country}.`; //ES6 - dize ekleme yöntemi ( ES5 yukarda gösterilmişti ) +let personInfoThree = `I am ${fullName}. I live in ${city}, ${country}. I am a ${job}. I teach ${language}.`; +console.log(personInfoTwo); +console.log(personInfoThree); ``` ```sh @@ -433,12 +434,12 @@ I am Asabeneh Yetayeh. I am 250. I live in Finland. I am Asabeneh Yetayeh. I live in Helsinki, Finland. I am a teacher. I teach JavaScript. ``` -Bir string şablonu veya interpolasyon ( matematiksel bir terim ) yöntemi kullanarak, bir değer olabilecek ifadeler veya bazı işlemler ekleyebiliriz.(karşılaştırma, aritmetik işlemler, üçlü işlem) +Bir string şablonu veya interpolasyon ( matematiksel bir kavram ) yöntemi kullanarak, bir değer olabilecek ifadeler veya bazı işlemler ekleyebiliriz.(karşılaştırma, aritmetik işlemler, üçlü işlem) ```js -let a = 2 -let b = 3 -console.log(`${a} is greater than ${b}: ${a > b}`) // a b den büyüktür yazıyor ve interpolasyon metodu bunun yanlış olduğunu söylecek +let a = 2; +let b = 3; +console.log(`${a} is greater than ${b}: ${a > b}`); // a b den büyüktür yazıyor ve interpolasyon metodu bunun yanlış olduğunu söyleyecek ``` ```sh @@ -449,321 +450,322 @@ console.log(`${a} is greater than ${b}: ${a > b}`) // a b den büyüktür yazıy JavaScript'teki her şey bir nesnedir. Bir string ilkel veri türüyse bunu değiştiremeyiz. String bir nesnenin, birçok string metodu vardır. Birçok string metodu bulunmaktadır, bunlar string'ler ile çalışmamıza yardımcı olurlar. ( stringlerin özelliklerini vb bulma metodları bunlar Örneğe bakın) -1. *length*: String içerisindeki karakterlerin sayısını belirtir. Boşluklar dahildir. +1. _length_: String içerisindeki karakterlerin sayısını belirtir. Boşluklar dahildir. **Örnek :** ```js -let js = 'JavaScript' -console.log(js.length) // 10 -let firstName = 'Asabeneh' -console.log(firstName.length) // 8 +let js = "JavaScript"; +console.log(js.length); // 10 +let firstName = "Asabeneh"; +console.log(firstName.length); // 8 ``` -2. *String'deki karakterlere erişim*: String içerisinde bulunan her karaktere indeks numarasıyla erişebiliriz. Programlamada sayma 0 dan başlar. String'in ilk dizini 0, son dizini ise toplam uzunluğun -1'dir. ( Kısaca 10 karakter varsa sıralama 0-9 arasında yapılıyor. Resme bakın daha iyi anlayacaksınız.) +2. _String'deki karakterlere erişim_: String içerisinde bulunan her karaktere indeks numarasıyla erişebiliriz. Programlamada sayma 0 dan başlar. String'in ilk dizini 0, son dizini ise toplam uzunluğun -1'dir. ( Kısaca 10 karakter varsa sıralama 0-9 arasında yapılıyor. Resme bakın daha iyi anlayacaksınız.) + +![Dizine göre dizine erişme](../../images/string_indexes.png) - ![Dizine göre dizine erişme](../../images/string_indexes.png) - -'JavaScript' string'indeki farklı karakterlere erişelim. +'JavaScript' string'indeki farklı karakterlere erişelim. ```js -let string = 'JavaScript' -let firstLetter = string[0] +let string = "JavaScript"; +let firstLetter = string[0]; -console.log(firstLetter) // J +console.log(firstLetter); // J -let secondLetter = string[1] // a -let thirdLetter = string[2] -let lastLetter = string[9] +let secondLetter = string[1]; // a +let thirdLetter = string[2]; +let lastLetter = string[9]; -console.log(lastLetter) // t +console.log(lastLetter); // t -let lastIndex = string.length - 1 +let lastIndex = string.length - 1; -console.log(lastIndex) // 9 -console.log(string[lastIndex]) // t +console.log(lastIndex); // 9 +console.log(string[lastIndex]); // t ``` -3. *toUpperCase()*: bu metot string verisini büyük harflere dönüştürür. +3. _toUpperCase()_: bu metot string'i büyük harflere dönüştürür. ```js -let string = 'JavaScript' +let string = "JavaScript"; -console.log(string.toUpperCase()) // JAVASCRIPT +console.log(string.toUpperCase()); // JAVASCRIPT -let firstName = 'Asabeneh' +let firstName = "Asabeneh"; -console.log(firstName.toUpperCase()) // ASABENEH +console.log(firstName.toUpperCase()); // ASABENEH -let country = 'Finland' +let country = "Finland"; -console.log(country.toUpperCase()) // FINLAND +console.log(country.toUpperCase()); // FINLAND ``` -4. *toLowerCase()*: bu metot string verisini küçük harflere dönüştürür. +4. _toLowerCase()_: bu metot string verisini küçük harflere dönüştürür. ```js -let string = 'JavasCript' +let string = "JavasCript"; -console.log(string.toLowerCase()) // javascript +console.log(string.toLowerCase()); // javascript -let firstName = 'Asabeneh' +let firstName = "Asabeneh"; -console.log(firstName.toLowerCase()) // asabeneh +console.log(firstName.toLowerCase()); // asabeneh -let country = 'Finland' +let country = "Finland"; -console.log(country.toLowerCase()) // finland +console.log(country.toLowerCase()); // finland ``` -5. *substr()*: İki arrgüman alır, başlangıç indeksi ve silenecek karakter sayısı. +5. _substr()_: İki argüman alır, başlangıç indeksi ve alınacak karakter sayısı. ```js -let string = 'JavaScript' -console.log(string.substr(4,6)) // Script +let string = "JavaScript"; +console.log(string.substr(4, 6)); // Script -let country = 'Finland' -console.log(country.substr(3, 4)) // land +let country = "Finland"; +console.log(country.substr(3, 4)); // land ``` -6. *substring()*: Başlangıç indeksi ve durma indeksi olmak üzere iki argüman almaktadır. +6. _substring()_: Başlangıç indeksi ve bitiş indeksi olmak üzere iki argüman almaktadır. ```js -let string = 'JavaScript' +let string = "JavaScript"; -console.log(string.substring(0,4)) // Java -console.log(string.substring(4,10)) // Script -console.log(string.substring(4)) // Script +console.log(string.substring(0, 4)); // Java +console.log(string.substring(4, 10)); // Script +console.log(string.substring(4)); // Script -let country = 'Finland' +let country = "Finland"; -console.log(country.substring(0, 3)) // Fin -console.log(country.substring(3, 7)) // land -console.log(country.substring(3)) // land +console.log(country.substring(0, 3)); // Fin +console.log(country.substring(3, 7)); // land +console.log(country.substring(3)); // land ``` -7. *split()*: Bu metot bir stringi belirtilen yerden bölmeye yarar. ( array oluşturuyor ) +7. _split()_: Bu metot bir stringi belirtilen yerden bölmeye yarar. ( dizi oluşturuyor ) ```js -let string = '30 Days Of JavaScript' +let string = "30 Days Of JavaScript"; -console.log(string.split()) // bu kısımda birşey belirtmediğin için 1 elementli array oluştu -> ["30 Days Of JavaScript"] -console.log(string.split(' ')) // bu kısımda boşluktan böl dediğimiz için 4 elementli array oluştu -> ["30", "Days", "Of", "JavaScript"] +console.log(string.split()); // bu kısımda birşey belirtmediğin için 1 elementli dizi oluştu -> ["30 Days Of JavaScript"] +console.log(string.split(" ")); // bu kısımda boşluktan böl dediğimiz için 4 elementli dizi oluştu -> ["30", "Days", "Of", "JavaScript"] -let firstName = 'Asabeneh' +let firstName = "Asabeneh"; -console.log(firstName.split()) // - > ["Asabeneh"] -console.log(firstName.split('')) // burada sadece tek tırnak kullandığımız için string'in içindeki tüm karakterleri array haline getirdi -> ["A", "s", "a", "b", "e", "n", "e", "h"] +console.log(firstName.split()); // - > ["Asabeneh"] +console.log(firstName.split("")); // burada sadece tek tırnak kullandığımız için string'in içindeki tüm karakterleri dizi haline getirdi -> ["A", "s", "a", "b", "e", "n", "e", "h"] -let countries = 'Finland, Sweden, Norway, Denmark, and Iceland' +let countries = "Finland, Sweden, Norway, Denmark, and Iceland"; -console.log(countries.split(',')) // Dikkat edin sadece virgül ile ayırıyor. İknci elementin solunda boşluk oluşuyor. ["Finland", " Sweden", " Norway", " Denmark", " and Iceland"] -console.log(countries.split(', ')) // Dikkat edin burayada. ', ' virgül ve boşluk bulunmakta bu yüzden elementleri virgülden ayırıp boşluklsuz arrray oluşturuyor.  ["Finland", "Sweden", "Norway", "Denmark", "and Iceland"] +console.log(countries.split(",")); // Dikkat edin sadece virgül ile ayırıyor. İknci elementin solunda boşluk oluşuyor. ["Finland", " Sweden", " Norway", " Denmark", " and Iceland"] +console.log(countries.split(", ")); // Dikkat edin burayada. ', ' virgül ve boşluk bulunmakta bu yüzden elementleri virgülden ayırıp boşluklsuz arrray oluşturuyor.  ["Finland", "Sweden", "Norway", "Denmark", "and Iceland"] ``` -8. *trim()*: String'in başında ve sonundaki boşlukları silmeye yarar. +8. _trim()_: String'in başında ve sonundaki boşlukları silmeye yarar. ```js -let string = ' 30 Days Of JavaScript ' +let string = " 30 Days Of JavaScript "; -console.log(string) -console.log(string.trim(' ')) +console.log(string); +console.log(string.trim(" ")); -let firstName = ' Asabeneh ' +let firstName = " Asabeneh "; -console.log(firstName) -console.log(firstName.trim()) // içinde tırnak kullanmasanız dahi boşlukları siler +console.log(firstName); +console.log(firstName.trim()); // içinde tırnak kullanmasanız dahi boşlukları siler ``` ```sh - 30 Days Of JavasCript + 30 Days Of JavasCript 30 Days Of JavasCript - Asabeneh + Asabeneh Asabeneh ``` -9. *includes()*: Bu metot string içerisinde varlık kontrolü yapmaya yarar. Eğer bulursa true, bulamazsa false döner. ( birebir arama yapar ) +9. _includes()_: Bu metot string içerisinde varlık kontrolü yapmaya yarar. Eğer bulursa true, bulamazsa false döner. ( birebir arama yapar ) ```js -let string = '30 Days Of JavaScript' +let string = "30 Days Of JavaScript"; -console.log(string.includes('Days')) // true -console.log(string.includes('days')) // false - birebir arama yapar! -console.log(string.includes('Script')) // true -console.log(string.includes('script')) // false -console.log(string.includes('java')) // false -console.log(string.includes('Java')) // true +console.log(string.includes("Days")); // true +console.log(string.includes("days")); // false - birebir arama yapar! +console.log(string.includes("Script")); // true +console.log(string.includes("script")); // false +console.log(string.includes("java")); // false +console.log(string.includes("Java")); // true -let country = 'Finland' +let country = "Finland"; -console.log(country.includes('fin')) // false -console.log(country.includes('Fin')) // true -console.log(country.includes('land')) // true -console.log(country.includes('Land')) // false +console.log(country.includes("fin")); // false +console.log(country.includes("Fin")); // true +console.log(country.includes("land")); // true +console.log(country.includes("Land")); // false ``` -10. *replace()*: Bu metot string içerisinde değiştirme yapmamızı sağlar. Eski ve Yeni olmak üzere iki argüman alır. +10. _replace()_: Bu metot string içerisinde değiştirme işlemi yapmamızı sağlar. Eski ve Yeni olmak üzere iki argüman alır. ```js -string.replace(oldsubstring, newsubstring) +string.replace(oldsubstring, newsubstring); ``` ```js -let string = '30 Days Of JavaScript' -console.log(string.replace('JavaScript', 'Python')) // 30 Days Of Python +let string = "30 Days Of JavaScript"; +console.log(string.replace("JavaScript", "Python")); // 30 Days Of Python -let country = 'Finland' -console.log(country.replace('Fin', 'Noman')) // Nomanland +let country = "Finland"; +console.log(country.replace("Fin", "Noman")); // Nomanland ``` -11. *charAt()*: Stringdeki indeksi belirttiğinizde o indeksin değerini yazdırır. +11. _charAt()_: Stringdeki indeksi belirttiğinizde o indeksin değerini döndürür. ```js -string.charAt(index) +string.charAt(index); ``` ```js -let string = '30 Days Of JavaScript' -console.log(string.charAt(0)) // 3 (0. indeksin değerini döndürdü) +let string = "30 Days Of JavaScript"; +console.log(string.charAt(0)); // 3 (0. indeksin değerini döndürdü) -let lastIndex = string.length - 1 // bu kısımda yukardaki değişkenin karakter sayısını alıyor (21) sonra bu sonucu 1 ile çıkartıyor sonuç 20. aşağı bak -console.log(string.charAt(lastIndex)) // pogramlamada sayma 0 dan başladığı için -1 yapıyor yukarıda console.log da çıkan sonuç "t" olacaktır. Buda 20. karakterdir. İnanmazsan say =) ama sıfırdan başlamayı unutma +let lastIndex = string.length - 1; // bu kısımda yukardaki değişkenin karakter sayısını alıyor (21) sonra bu sonucu 1 ile çıkartıyor sonuç 20. aşağı bak +console.log(string.charAt(lastIndex)); // pogramlamada sayma 0 dan başladığı için -1 yapıyor yukarıda console.log da çıkan sonuç "t" olacaktır. Buda 20. karakterdir. İnanmazsan say =) ama sıfırdan başlamayı unutma ``` -12. *charCodeAt()*: String'teki vermiş olduğunuz index değerinin ASCII numarasını döndürür. +12. _charCodeAt()_: String'teki vermiş olduğunuz index değerinin ASCII numarasını döndürür. ```js -string.charCodeAt(index) +string.charCodeAt(index); ``` ```js -let string = '30 Days Of JavaScript' -console.log(string.charCodeAt(3)) // D ASCII 68 - -let lastIndex = string.length - 1 -console.log(string.charCodeAt(lastIndex)) // t ASCII 116 +let string = "30 Days Of JavaScript"; +console.log(string.charCodeAt(3)); // D ASCII kodu 68 +let lastIndex = string.length - 1; +console.log(string.charCodeAt(lastIndex)); // t ASCII kodu 116 ``` -13. *indexOf()*: Bu metot belirtilen değerin indeksini verir. Değer bulunamazsa -1 sonucunu döndürür. ( Birebir arama yapar örneğe bakın ) +13. _indexOf()_: Bu metot belirtilen değerin indeksini verir. Değer bulunamazsa -1 sonucunu döndürür. ( Birebir arama yapar örneğe bakın ) ```js -string.indexOf(substring) +string.indexOf(substring); ``` ```js -let string = '30 Days Of JavaScript' +let string = "30 Days Of JavaScript"; -console.log(string.indexOf('D')) // 3 -console.log(string.indexOf('Days')) // 3 -console.log(string.indexOf('days')) // -1 -console.log(string.indexOf('a')) // 4 -console.log(string.indexOf('JavaScript')) // 11 -console.log(string.indexOf('Script')) //15 -console.log(string.indexOf('script')) // -1 +console.log(string.indexOf("D")); // 3 +console.log(string.indexOf("Days")); // 3 +console.log(string.indexOf("days")); // -1 +console.log(string.indexOf("a")); // 4 +console.log(string.indexOf("JavaScript")); // 11 +console.log(string.indexOf("Script")); //15 +console.log(string.indexOf("script")); // -1 ``` -14. *lastIndexOf()*: Bu metot belirtilen değerin son değer indeksini verir. Değer bulunamazsa -1 sonucunu döndürür. ( Birebir arama yapar örneğe bakın ) - +14. _lastIndexOf()_: Bu metot belirtilen değerin son değer indeksini verir. Değer bulunamazsa -1 sonucunu döndürür. ( Birebir arama yapar örneğe bakın ) ```js //syntax -string.lastIndexOf(substring) +string.lastIndexOf(substring); ``` ```js -let string = 'I love JavaScript. If you do not love JavaScript what else can you love.' +let string = + "I love JavaScript. If you do not love JavaScript what else can you love."; -console.log(string.lastIndexOf('love')) // 67 -console.log(string.lastIndexOf('you')) // 63 -console.log(string.lastIndexOf('JavaScript')) // 38 +console.log(string.lastIndexOf("love")); // 67 +console.log(string.lastIndexOf("you")); // 63 +console.log(string.lastIndexOf("JavaScript")); // 38 ``` -15. *concat()*: Bu metot birleştirme işlemini sağlar, birden fazla değer alabilir +15. _concat()_: Bu metot birleştirme işlemini sağlar, birden fazla değer alabilir ```js -string.concat(substring, substring, substring) +string.concat(substring, substring, substring); ``` ```js -let string = '30' -console.log(string.concat("Days", "Of", "JavaScript")) // 30DaysOfJavaScript +let string = "30"; +console.log(string.concat("Days", "Of", "JavaScript")); // 30DaysOfJavaScript -let country = 'Fin' -console.log(country.concat("land")) // Finland +let country = "Fin"; +console.log(country.concat("land")); // Finland ``` -16. *startsWith*: String'in belirtilen değer ile başlayıp başlamadığını kontrol eder. true yada false döndürür. +16. _startsWith_: String'in belirtilen değer ile başlayıp başlamadığını kontrol eder. true ya da false döndürür. ```js //syntax -string.startsWith(substring) +string.startsWith(substring); ``` ```js -let string = 'Love is the best to in this world' +let string = "Love is the best to in this world"; -console.log(string.startsWith('Love')) // true -console.log(string.startsWith('love')) // false -console.log(string.startsWith('world')) // false +console.log(string.startsWith("Love")); // true +console.log(string.startsWith("love")); // false +console.log(string.startsWith("world")); // false -let country = 'Finland' +let country = "Finland"; -console.log(country.startsWith('Fin')) // true -console.log(country.startsWith('fin')) // false -console.log(country.startsWith('land')) // false +console.log(country.startsWith("Fin")); // true +console.log(country.startsWith("fin")); // false +console.log(country.startsWith("land")); // false ``` -17. *endsWith*: String'in belirtilen değer ile bitip bitmediğini kontrol eder. true yada false döndürür. +17. _endsWith_: String'in belirtilen değer ile bitip bitmediğini kontrol eder. true ya da false döndürür. ```js -string.endsWith(substring) +string.endsWith(substring); ``` ```js -let string = 'Love is the most powerful feeling in the world' +let string = "Love is the most powerful feeling in the world"; -console.log(string.endsWith('world')) // true -console.log(string.endsWith('love')) // false -console.log(string.endsWith('in the world')) // true +console.log(string.endsWith("world")); // true +console.log(string.endsWith("love")); // false +console.log(string.endsWith("in the world")); // true -let country = 'Finland' +let country = "Finland"; -console.log(country.endsWith('land')) // true -console.log(country.endsWith('fin')) // false -console.log(country.endsWith('Fin')) // false +console.log(country.endsWith("land")); // true +console.log(country.endsWith("fin")); // false +console.log(country.endsWith("Fin")); // false ``` -18. *search*: Argüman olarak bir alt dize alır ve ilk eşleşmenin dizinini döndürür. Arama değeri bir dize veya normal ifade kalıbı olabilir. +18. _search_: Argüman olarak bir alt dize alır ve ilk eşleşmenin dizinini döndürür. Arama değeri bir dize veya normal ifade kalıbı olabilir. ```js -string.search(substring) +string.search(substring); ``` ```js -let string = 'I love JavaScript. If you do not love JavaScript what else can you love.' -console.log(string.search('love')) // 2 -console.log(string.search(/javascript/gi)) // 7 buradaki gi açıklaması bir alt örnekte var +let string = + "I love JavaScript. If you do not love JavaScript what else can you love."; +console.log(string.search("love")); // 2 +console.log(string.search(/javascript/gi)); // 7 buradaki gi açıklaması bir alt örnekte var ``` -19. *match*: Argüman olarak bir alt dize veya normal ifade kalıbı alır ve eşleşme varsa bir dizi döndürür, değilse null döndürür. Normal bir ifade kalıbının nasıl göründüğünü görelim. / işareti ile başlar ve / işareti ile biter. +19. _match_: Argüman olarak bir alt dize veya normal ifade kalıbı alır ve eşleşme varsa bir dizi döndürür, değilse null döndürür. Normal bir ifade kalıbının nasıl göründüğünü görelim. / işareti ile başlar ve / işareti ile biter. ```js -let string = 'love' -let patternOne = /love/ // koşulsuz -let patternTwo = /love/gi // g-bütün metinde ara, i - büyük küçük harf duyarsız +let string = "love"; +let patternOne = /love/; // koşulsuz +let patternTwo = /love/gi; // g-bütün metinde ara, i - büyük küçük harf duyarsız ``` Match syntax ```js // syntax -string.match(substring) +string.match(substring); ``` ```js -let string = 'I love JavaScript. If you do not love JavaScript what else can you love.' -console.log(string.match('love')) +let string = + "I love JavaScript. If you do not love JavaScript what else can you love."; +console.log(string.match("love")); ``` ```sh @@ -771,33 +773,34 @@ console.log(string.match('love')) ``` ```js -let pattern = /love/gi -console.log(string.match(pattern)) // ["love", "love", "love"] +let pattern = /love/gi; +console.log(string.match(pattern)); // ["love", "love", "love"] ``` Normal bir ifade kullanarak metinden sayıları çıkaralım. Burası normal ifade bölümü değil, panik yapmayın! Düzenli ifadeleri daha sonra ele alacağız. ```js -let txt = 'In 2019, I ran 30 Days of Python. Now, in 2020 I am super exited to start this challenge' -let regEx = /\d+/ +let txt = + "In 2019, I ran 30 Days of Python. Now, in 2020 I am super exited to start this challenge"; +let regEx = /\d+/; // kaçış karakterli d, d'nin normal olmadığı anlamına gelir, d bunun yerine bir rakam gibi davranır // + bir veya daha fazla basamaklı sayı anlamına gelir, // ondan sonra g varsa global demektir, her yerde ara. -console.log(txt.match(regEx)) // ["2", "0", "1", "9", "3", "0", "2", "0", "2", "0"] -console.log(txt.match(/\d+/g)) // ["2019", "30", "2020"] +console.log(txt.match(regEx)); // ["2", "0", "1", "9", "3", "0", "2", "0", "2", "0"] +console.log(txt.match(/\d+/g)); // ["2019", "30", "2020"] ``` -20. *repeat()*: bağımsız değişken olarak bir sayı alır ve stringi sayı kadar döndürür. +20. _repeat()_: bağımsız değişken olarak bir sayı alır ve stringi sayı kadar döndürür. ```js -string.repeat(n) +string.repeat(n); ``` ```js -let string = 'love' -console.log(string.repeat(10)) // lovelovelovelovelovelovelovelovelovelove +let string = "love"; +console.log(string.repeat(10)); // lovelovelovelovelovelovelovelovelovelove ``` ## Veri Türlerini Kontrol Etme ve Döküm @@ -812,33 +815,32 @@ Belirli bir değişkenin veri türünü kontrol etmek için _typeof_ yöntemini // Farklı javascript veri türleri // Farklı veri tipleri tanımlayalım -let firstName = 'Asabeneh' // string -let lastName = 'Yetayeh' // string -let country = 'Finland' // string -let city = 'Helsinki' // string -let age = 250 // number, benim gerçek yaşım değil merak etme -let job // undefined, çünkü bir değer atanmamış - -console.log(typeof 'Asabeneh') // string -console.log(typeof firstName) // string -console.log(typeof 10) // number -console.log(typeof 3.14) // number -console.log(typeof true) // boolean -console.log(typeof false) // boolean -console.log(typeof NaN) // number -console.log(typeof job) // undefined -console.log(typeof undefined) // undefined -console.log(typeof null) // object +let firstName = "Asabeneh"; // string +let lastName = "Yetayeh"; // string +let country = "Finland"; // string +let city = "Helsinki"; // string +let age = 250; // number, benim gerçek yaşım değil merak etme +let job; // undefined, çünkü bir değer atanmamış + +console.log(typeof "Asabeneh"); // string +console.log(typeof firstName); // string +console.log(typeof 10); // number +console.log(typeof 3.14); // number +console.log(typeof true); // boolean +console.log(typeof false); // boolean +console.log(typeof NaN); // number +console.log(typeof job); // undefined +console.log(typeof undefined); // undefined +console.log(typeof null); // object ``` ### Veri Türünü Değiştirme (Döküm) - Döküm: Bir veri tipini başka bir veri tipine dönüştürme. Kullandıklarımız _parseInt()_, _parseFloat()_, _Number()_, _+ sign_, _str()_ - Aritmetik işlemler yapmadan önce string sayıları önce integer yada float türüne dönüştürmeliyiz yoksa hata alırız. + Aritmetik işlemler yapmadan önce string sayıları önce integer ya da float türüne dönüştürmeliyiz yoksa hata alırız. #### String to Int - String bir numarayı sayıya dönüştürebiliriz. Alıntı içerisindeki herhangi bir sayı string numarasıdır. Bir string numarası örneği: '10', '5', vb. Aşağıdaki metotları kullanarak string'i sayıya dönüştürebiliriz: @@ -847,28 +849,28 @@ Aşağıdaki metotları kullanarak string'i sayıya dönüştürebiliriz: - Plus sign(+) // artı işareti demek ```js -let num = '10' -let numInt = parseInt(num) -console.log(numInt) // 10 +let num = "10"; +let numInt = parseInt(num); +console.log(numInt); // 10 ``` ```js -let num = '10' -let numInt = Number(num) +let num = "10"; +let numInt = Number(num); -console.log(numInt) // 10 +console.log(numInt); // 10 ``` ```js -let num = '10' -let numInt = +num +let num = "10"; +let numInt = +num; -console.log(numInt) // 10 +console.log(numInt); // 10 ``` #### String to Float -String içindeki ondalık numarayı sayıya çevirebiliriz. Tırnak içerisindeki ondalık sayı string ondalık sayıdır. Bir string ondalık numarası örneği: '9.81', '3.14', '1.44' vb. +String içindeki ondalık numarayı sayıya çevirebiliriz. Tırnak içerisindeki ondalık sayı string ondalık sayıdır. Bir string ondalık numarası örneği: '9.81', '3.14', '1.44' vb. Aşağıdaki metotları kullanarak ondalık stringi sayıya dönüştürebiliriz: - parseFloat() @@ -876,24 +878,24 @@ Aşağıdaki metotları kullanarak ondalık stringi sayıya dönüştürebiliriz - Plus sign(+) ```js -let num = '9.81' -let numFloat = parseFloat(num) +let num = "9.81"; +let numFloat = parseFloat(num); -console.log(numFloat) // 9.81 +console.log(numFloat); // 9.81 ``` ```js -let num = '9.81' -let numFloat = Number(num) +let num = "9.81"; +let numFloat = Number(num); -console.log(numFloat) // 9.81 +console.log(numFloat); // 9.81 ``` ```js -let num = '9.81' -let numFloat = +num +let num = "9.81"; +let numFloat = +num; -console.log(numFloat) // 9.81 +console.log(numFloat); // 9.81 ``` #### Float to Int @@ -902,63 +904,62 @@ Ondalık sayıları tam sayılara çevirebiliriz. (Int) ( bu aşağıya yuvarlı Float'ı int'e dönüştürmek için aşağıdaki metodu kullanıyoruz: - parseInt() - + ```js -let num = 9.81 -let numInt = parseInt(num) +let num = 9.81; +let numInt = parseInt(num); -console.log(numInt) // 9 +console.log(numInt); // 9 ``` -🌕 Harikasın. 2. gün zorluklarını yeni tamamladınız ve mükemmelliğe giden yolda iki adım öndesiniz. Şimdi beyniniz ve kasınız için bazı egzersizler yapın. +🌕 Harikasın. 2. gün zorluklarını yeni tamamladınız ve mükemmelliğe giden yolda iki adım öndesiniz. Şimdi beyniniz ve kasınız için bazı egzersizler yapın. ## 💻 Gün 2: Egzersizleri ### Exercise: Seviye 1 -1. Challenge adında bir değişken tanımlayın ve **'30 Days Of JavaScript'** başlangıç ​​değerine atayın. -2. __console.log()__ kullanarak tarayıcı konsolunda değişkeni yazdırın, -3. _console.log()_ kullanarak tarayıcı konsolunda dizenin __length__ değerini yazdırın, -4. __toUpperCase()__ yöntemini kullanarak tüm dize karakterlerini büyük harflerle değiştirin, -5. __toLowerCase()__ yöntemini kullanarak tüm dize karakterlerini küçük harflerle değiştirin, -6. __substr()__ veya __substring()__ yöntemini kullanarak string'in ilk kelimesini kesin-silin (dilimleyin) -7. *Days Of JavaScript* ifadesini *30 Days Of JavaScript*'ten ayırın. -8. __includes()__ yöntemini kullanarak string'in __Script__ kelimesini içerip içermediğini kontrol edin -9. __split()__ yöntemini kullanarak __string__ öğesini bir __array__'ye bölün -10. 30 Days Of JavaScript dizesini __split()__ yöntemini kullanarak boşlukta bölün -11. 'Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon' dizeyi virgülden __split__ ve bir dizi olarak değiştirin. -12. __replace()__ yöntemini kullanarak 30 Days of JavaScript'i 30 Days of Python olarak değiştirin. -13. 'JavaScript'in 30 Günü' dizesinde dizin 15'teki karakter nedir? __charAt()__ yöntemini kullanın. -14. __charCodeAt()__ kullanan 'JavaScript'in 30 Günü' dizesindeki J karakter kodu nedir? -15. 30 Days of JavaScript'te __a__ öğesinin ilk oluşumunun konumunu belirlemek için __indexOf__ kullanın -16. 30 Days of JavaScript'te __a__ öğesinin son oluşumunun konumunu belirlemek için __lastIndexOf__ kullanın. -17. Aşağıdaki cümlede __çünkü__ kelimesinin ilk geçtiği yeri bulmak için __indexOf__ kullanın: -__'Bir cümleyi çünkü ile bitiremezsiniz çünkü çünkü bir bağlaçtır'__ -18. Aşağıdaki cümlede __çünkü__ kelimesinin son geçtiği yeri bulmak için __lastIndexOf__ kullanın: -__'Bir cümleyi çünkü ile bitiremezsiniz çünkü çünkü bir bağlaçtır'__ -19. Aşağıdaki cümlede __çünkü__ kelimesinin ilk geçtiği yeri bulmak için __search__ kullanın: -__'Bir cümleyi çünkü ile bitiremezsiniz çünkü çünkü bir bağlaçtır'__ -20. Bir dizgenin başındaki ve sonundaki boşlukları kaldırmak için __trim()__ kullanın. Örneğin '30 Days Of JavaScript'. -21. *30 Days Of JavaScript* dizesiyle __startsWith()__ yöntemini kullanın ve sonucu doğru yapın -22. *30 Days Of JavaScript* dizesiyle __endsWith()__ yöntemini kullanın ve sonucu doğru yapın -23. JavaScript'in 30 Günü'ndeki tüm __a__'leri bulmak için __match()__ yöntemini kullanın -24. __concat()__ kullanın ve '30 Days of' ve 'JavaScript'i tek bir dize olan '30 Days of JavaScript' ile birleştirin -25. 30 Gün JavaScript'i 2 kez yazdırmak için __repeat()__ yöntemini kullanın - +1. Challenge adında bir değişken tanımlayın ve **'30 Days Of JavaScript'** başlangıç ​​değerine atayın. +2. **console.log()** kullanarak tarayıcı konsolunda değişkeni yazdırın, +3. _console.log()_ kullanarak tarayıcı konsolunda dizenin **length** değerini yazdırın, +4. **toUpperCase()** yöntemini kullanarak tüm dize karakterlerini büyük harflerle değiştirin, +5. **toLowerCase()** yöntemini kullanarak tüm dize karakterlerini küçük harflerle değiştirin, +6. **substr()** veya **substring()** yöntemini kullanarak string'in ilk kelimesini kesin-silin (dilimleyin) +7. _Days Of JavaScript_ ifadesini _30 Days Of JavaScript_'ten ayırın. +8. **includes()** yöntemini kullanarak string'in **Script** kelimesini içerip içermediğini kontrol edin +9. **split()** yöntemini kullanarak **string** öğesini bir **diziye**'ye bölün +10. 30 Days Of JavaScript dizesini **split()** yöntemini kullanarak boşlukta bölün +11. 'Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon' dizeyi virgülden **split** ve bir dizi olarak değiştirin. +12. **replace()** yöntemini kullanarak 30 Days of JavaScript'i 30 Days of Python olarak değiştirin. +13. 'JavaScript'in 30 Günü' dizesinde dizin 15'teki karakter nedir? **charAt()** yöntemini kullanın. +14. **charCodeAt()** kullanan 'JavaScript'in 30 Günü' dizesindeki J karakter kodu nedir? +15. 30 Days of JavaScript'te **a** öğesinin ilk oluşumunun konumunu belirlemek için **indexOf** kullanın +16. 30 Days of JavaScript'te **a** öğesinin son oluşumunun konumunu belirlemek için **lastIndexOf** kullanın. +17. Aşağıdaki cümlede **çünkü** kelimesinin ilk geçtiği yeri bulmak için **indexOf** kullanın: + **'Bir cümleyi çünkü ile bitiremezsiniz çünkü çünkü bir bağlaçtır'** +18. Aşağıdaki cümlede **çünkü** kelimesinin son geçtiği yeri bulmak için **lastIndexOf** kullanın: + **'Bir cümleyi çünkü ile bitiremezsiniz çünkü çünkü bir bağlaçtır'** +19. Aşağıdaki cümlede **çünkü** kelimesinin ilk geçtiği yeri bulmak için **search** kullanın: + **'Bir cümleyi çünkü ile bitiremezsiniz çünkü çünkü bir bağlaçtır'** +20. Bir dizgenin başındaki ve sonundaki boşlukları kaldırmak için **trim()** kullanın. Örneğin '30 Days Of JavaScript'. +21. _30 Days Of JavaScript_ dizesiyle **startsWith()** yöntemini kullanın ve sonucu doğru yapın +22. _30 Days Of JavaScript_ dizesiyle **endsWith()** yöntemini kullanın ve sonucu doğru yapın +23. JavaScript'in 30 Günü'ndeki tüm **a**'leri bulmak için **match()** yöntemini kullanın +24. **concat()** kullanın ve '30 Days of' ve 'JavaScript'i tek bir dize olan '30 Days of JavaScript' ile birleştirin +25. 30 Gün JavaScript'i 2 kez yazdırmak için **repeat()** yöntemini kullanın ### Egzersiz: Seviye 2 1. console.log() kullanarak aşağıdaki ifadeyi yazdırın: - ```sh - The quote 'There is no exercise better for the heart than reaching down and lifting people up.' by John Holmes teaches us to help one another. - ``` + ```sh + The quote 'There is no exercise better for the heart than reaching down and lifting people up.' by John Holmes teaches us to help one another. + ``` 2. console.log()'u kullanarak Rahibe Teresa'nın aşağıdaki alıntısını yazdırın: - ```sh - "Love is not patronizing and charity isn't about pity, it is about love. Charity and love are the same -- with charity you give love, so don't just give money but reach out your hand instead." - ``` + ```sh + "Love is not patronizing and charity isn't about pity, it is about love. Charity and love are the same -- with charity you give love, so don't just give money but reach out your hand instead." + ``` 3. '10' tipinin tam olarak 10'a eşit olup olmadığını kontrol edin. Değilse tam olarak eşit yapın. 4. parseFloat('9.8') 10'a tam olarak eşit değilse, 10'a eşit olup olmadığını kontrol edin. @@ -978,19 +979,20 @@ __'Bir cümleyi çünkü ile bitiremezsiniz çünkü çünkü bir bağlaçtır'_ 5 1 5 25 125 ``` -12. __substr__ kullanarak __çünkü çünkü__ ifadesini aşağıdaki cümleden ayırın:__'Bir cümleyi çünkü ile bitiremezsiniz çünkü çünkü bir bağlaçtır'__ +12. **substr** kullanarak **çünkü çünkü** ifadesini aşağıdaki cümleden ayırın:**'Bir cümleyi çünkü ile bitiremezsiniz çünkü çünkü bir bağlaçtır'** ### Egzersiz: Seviye 3 -1. 'Aşk bu dünyadaki en iyi şeydir. Bazıları aşkını buldu ve bazıları hala aşkını arıyor.' Bu cümledeki __love__ kelimesini sayın. -2. Aşağıdaki cümledeki tüm __çünkü__ sayısını saymak için __match()__ kullanın:__'Bir cümleyi çünkü ile bitiremezsiniz çünkü çünkü bir bağlaçtır'__ +1. 'Aşk bu dünyadaki en iyi şeydir. Bazıları aşkını buldu ve bazıları hala aşkını arıyor.' Bu cümledeki **love** kelimesini sayın. +2. Aşağıdaki cümledeki tüm **çünkü** sayısını saymak için **match()** kullanın:**'Bir cümleyi çünkü ile bitiremezsiniz çünkü çünkü bir bağlaçtır'** 3. Aşağıdaki metni temizleyin ve en sık kullanılan kelimeyi bulun (ipucu, değiştirme ve normal ifadeleri kullanın). - ```js - const sentence = '%I $am@% a %tea@cher%, &and& I lo%#ve %te@a@ching%;. The@re $is no@th@ing; &as& mo@re rewarding as educa@ting &and& @emp%o@weri@ng peo@ple. ;I found tea@ching m%o@re interesting tha@n any ot#her %jo@bs. %Do@es thi%s mo@tiv#ate yo@u to be a tea@cher!? %Th#is 30#Days&OfJavaScript &is al@so $the $resu@lt of &love& of tea&ching' - ``` + ```js + const sentence = + "%I $am@% a %tea@cher%, &and& I lo%#ve %te@a@ching%;. The@re $is no@th@ing; &as& mo@re rewarding as educa@ting &and& @emp%o@weri@ng peo@ple. ;I found tea@ching m%o@re interesting tha@n any ot#her %jo@bs. %Do@es thi%s mo@tiv#ate yo@u to be a tea@cher!? %Th#is 30#Days&OfJavaScript &is al@so $the $resu@lt of &love& of tea&ching"; + ``` -4. Aşağıdaki metinden sayıları çıkararak kişinin yıllık toplam gelirini hesaplayın. +4. Aşağıdaki metinden sayıları çıkararak kişinin yıllık toplam gelirini hesaplayın. 'Aylık maaşından 5000 euro, yıllık 10000 euro ikramiye, ayda 15000 euro online kurstan kazanıyor.'