JavaScript | Day 8 #30DaysOfJavaScript

8thDayOf30DaysJavaScript

Nesneye Yeni Özellik Ekleme

Mevcut JavaScript nesnelerine, onları değiştirdiğiniz şekilde yeni özellikler ekleyebilirsiniz.

var myDog = {
  "name": "Happy Coder",
  "legs": 4,
  "tails": 1,
  "friends": ["Bolt"]
};

myDog.bark = "woof";

Nesneden Özellik Silme

delete object.property; şeklinde silme işlemini gerçekleştirebiliriz.

var ourDog = {
  "name": "Camper",
  "legs": 4,
  "tails": 1,
  "friends": ["everything!"],
  "bark": "bow-wow"
};

delete ourDog.bark;



NESNENİN SON HALİ:


{
  "name": "Camper",
  "legs": 4,
  "tails": 1,
  "friends": ["everything!"]
}

Nesne Özelliklerini Test Etme

Bazen belirli bir nesnenin özelliğinin var olup olmadığını kontrol etmek yararlıdır. Nesnelerin .hasOwnProperty (propname) yöntemini, o nesnenin verilen özellik adına sahip olup olmadığını belirlemek için kullanabiliriz. .hasOwnProperty (), özelliklerin bulunup bulunmama durumuna göre true veya false döndürür.

var myObj = {
  top: "hat",
  bottom: "pants"
};
myObj.hasOwnProperty("top");    // true
myObj.hasOwnProperty("middle"); // false

“Knowing is not enough; we must apply. Wishing is not enough; we must do.”

Johann Wolfgang von Goethe

JavaScript | Day 7 #30DaysOfJavaScript

7thDayOf30DaysJavaScript

Fonksiyonlar İle Yeniden Kullanılabilir Kodlar Yazma

JavaScript’te, foksiyonlar ilekodumuzu yeniden kullanılabilir parçalara ayırabiliriz.

function functionName() {
  console.log("Hello World");
}

Bu işlevi, adını ve ardından parantezleri kullanarak şu şekilde çağırabilir: functionName (); İşlev her çağrıldığında, geliştirici konsolunda “Merhaba Dünya” mesajını yazdıracaktır. Küme parantezleri arasındaki tüm kod, işlev her çağrıldığında çalıştırılacaktır.


UYGULAMA:

  1. Create a function called functionWithArgs that accepts two arguments and outputs their sum to the dev console.
  2. Call the function with two numbers as arguments.
KODUMUZ:
function functionWithArgs(val1, val2){
  console.log(val1 + val2);
}

functionWithArgs(3, 5);

Fonksiyonlarda Yerel ve Global Değişkenler

Aynı ada sahip hem yerel hem de global değişkenlere sahip olmak mümkündür. Bunu yaptığınızda, yerel değişken global değişkene göre öncelik kazanır.

var someVar = "Hat";
function myFun() {
  var someVar = "Head";
  return someVar;
}

console.log(someVar);
console.log(myFun());   // console.log(myFun(););  olmazzzz dikkat!!


|| ÇIKTI:

Hat
Head

Katı Eşitlik Operatörü (Strict Equality Operator)

Katı eşitlik (===), eşitlik operatörünün (==) karşılığıdır. Ancak, her iki değeri de ortak bir türle karşılaştırarak dönüştürmeye çalışan eşitlik operatöründen farklı olarak, katı eşitlik operatörü bir tür dönüştürme gerçekleştirmez. Karşılaştırılan değerlerin farklı türleri varsa, eşit olmadıkları kabul edilir ve katı eşitlik operatörü yanlış döndürür.

3 ===  3   // true
3 === '3'  // false

Yukarıda ikinci örnekte, 3 bir number türüdür, ‘3’ bir string türüdür.


Katı eşitsizlik operatörü (! ==) (Strict Inequality Operator)

Katı eşitsizlik operatörü (! ==), katı eşitlik operatörünün mantıksal zıttıdır. “Kesinlikle Eşit Değildir” anlamına gelir ve katı eşitliğin doğru olduğu ve tersinin doğru olduğu durumlarda yanlış döndürür. Katı eşitsizlik, veri türlerini dönüştürmez. Bu operatör verinin değeriyle birlikte türünü de karşılaştırır.

3 !==  3   // false
3 !== '3'  // true
4 !==  3   // true

Switch İfadesi

Aralarından seçim yapabileceğiniz pek çok seçeneğiniz varsa, bir switch deyimi kullanabiliriz. Bir switch deyimi bir değeri test eder ve çeşitli olası değerleri tanımlayan birçok case deyimine sahip olabilir. İfadeler, ilk eşleşen durum değerinden bir kesinti ile karşılaşılıncaya kadar yürütülür.


DEfault

Bir switch deyiminde, tüm olası değerleri case deyimleri olarak belirtemeyebilirsiniz. Bunun yerine, eşleşen bir vaka ifadesi bulunmazsa yürütülecek varsayılan ifadeyi ekleyebilirsiniz. Bir if / else zincirindeki son else ifadesi gibi düşünün. Bir varsayılan ifade, son durum olmalıdır.

function switchOfStuff(val) {
  var answer = "";

     switch(val){
       case  "a":
         answer = "apple";
         break;
       case "b":
         answer = "bird";
         break;
       case "c":
         answer = "cat";
         break;
       default:
         answer = "stuff";
         break;
     }
  return answer;
}

Fonksiyonlardan Boolean Değerlerini Döndürme

Eşitlik Operatörü ile Karşılaştırma’dan tüm karşılaştırma işleçlerinin bir mantıksal doğru veya yanlış değeri döndürdüğünü hatırlayabilirsiniz. Bazen insanlar karşılaştırma yapmak için şöyle bir if / else ifadesi kullanırlar ancak bunu yapmanın daha iyi bir yolu var. === true veya false döndürdüğünden, karşılaştırmanın sonucunu döndürebiliriz

function isEqual(a,b) {
  if (a === b) {
    return true;
  } else {
    return false;
  }
}

YERİNE:

function isEqual(a,b) {
  return a === b;
}

Fonksiyonlarda return Kalıbı

Bir dönüş ifadesine ulaşıldığında, mevcut fonksiyonun yürütülmesi durur ve kontrol, çağıran konuma geri döner.

function myFun() {
  console.log("Merhaba");
  return "Bünya";
  console.log("byebye")
}
myFun();

Yukarıdaki, konsola “Merhaba” çıktısı verir, “Dünya” değerini döndürür, ancak “byebye” hiçbir zaman çıktılanmaz, çünkü işlev dönüş deyiminde çıkar.

UYGULAMA:

Modify the function abTest so that if a or b are less than 0 the function will immediately exit with a value of undefined.

Hint
Remember that undefined is a keyword, not a string.

verilenler
function abTest(a, b) {
  // Only change code below this line



  // Only change code above this line

  return Math.round(Math.pow(Math.sqrt(a) + Math.sqrt(b), 2));
}

abTest(2,2);
kodumuz
function abTest(a, b) {

if(a < 0 || b < 0){
return undefined;   // undefined bir anahtar kelime, string değil!!
}

  return Math.round(Math.pow(Math.sqrt(a) + Math.sqrt(b), 2));
}

abTest(2,2);

Nesne Özelliklerine Erişme

Bir nesnenin özelliklerine erişmenin iki yolu vardır: nokta notasyonu (.) Ve bir diziye benzer köşeli parantez gösterimi ([]).

1)

var myObj = {
  prop1: "val1",
  prop2: "val2"
};
var prop1val = myObj.prop1; // val1
var prop2val = myObj.prop2; // val2

2)

var myObj = {
  "Space Name": "Kirk",
  "More Space": "Spock",
  "NoSpace": "USS Enterprise"
};
myObj["Space Name"]; // Kirk
myObj['More Space']; // Spock
myObj["NoSpace"];    // USS Enterprise

“Do the difficult things while they are easy and do the great things while they are small. A journey of a thousand miles must begin with a single step.”

Lao Tzu

JavaScript | Day 5 #30DaysOfJavaScript

5thDayOf30DaysJavaScript

P.s. 5 adet veri tip, 3 adet Object tipi bulunan javaScript dilinde veri tiplerini Number, String, Boolean, Undefined, ve Null (bu da bir object’dir). Object tipini ise fonksiyon, dizi, nesne (object)  gibi referanslar oluşturmaktadır.


Fonksiyonların Tanımlanması

function anahtar kelimesinden sonra,

  1. Fonksiyonun adı yazılır
  2. Fonksiyonun aldığı parametreler (parantezler ile çevrili ve virgüller ile birbirinden ayrılmış olmalıdırlar).
  3. Çalıştırılacak JavaScript ifadeleri (süslü parantezler ile çevrilmelidir).
function topla(sayi1, sayi2) {

  var toplam = sayi1 + sayi2;
  return toplam;

}

Eğer bir nesneyi (Array veya bir kullanıcı tanımlı nesne gibi ilkel olmayan değer) fonksiyona parametre olarak geçerseniz, nesne fonksiyon içerisinde kopyalanmadığı için nesne üzerinde yapılan değişiklikler fonksiyon dışında da korunur. Aşağıdaki örneği inceleyelim:

function arabamıDeğiştir(araba) {
  araba.markası = "Toyota";
}

var arabam = {markası: "Honda", modeli: "Accord", yılı: 1998};
var x, y;

x = arabam.markası ; // "Honda" değerini getirir

arabamıDeğiştir(arabam);
y = arabam.markası; // "Toyota" değeri döndürülür
                    // (markası özelliği fonksiyon tarafından değiştirilmiştir)

Fonksiyonları şu iki şekilde çağırabiliriz:

1)

<script>
     Goster();

      function  Goster(){
          window.alert("2021 süperrr geçsin! Tam 30 dk sonra 1 Ocak 2021.");   // saat: 23.30  tarih 31.12.2020
      }fonksiyonu çağ
</script>

2)

<body>
  <div id = "result"></div>
  <button type = "button" onClick ="Hesapla();">Hesapla</button>  // fonksiyonu çağırırken "Hesapla" değil de "Hesapla();" yazdık!

    <script>
          function  Hesapla(sayi1, sayi2, sayi3){
              var x, y, z;
              x = 2;
              y = 3;
              z = (x + y) * 4;
              document.getElementById('result').innerHTML = "Sonuç:" + z;
          }
     </script>

</body>

Nesne (Object) Kullanımı

Nesne içindeki özelliklerden biri metot içinde kullanılacaksa bu özellik this anahtar sözcüğü ile kullanılmalıdır. (this.saatUcreti)

<!DOCTYPE html>
<html>
    <head>
        <title>www.yazilimkodlama.com</title>
        <meta charset="utf-8">
    </head>
<body>
 
<p><u>JavaScript Object Kullanımı</u></p>
 
<p id="bilgi"></p>
<p><b>Araç Detayları</b></p>
<p id="detay"></p>
<p id="tutar"></p>
<script>
var arac={
    marka:"Renault",
    model:"Clio",
    yil:2018,
    renk:"Beyaz",
    yakit:"Dizel",
    saatUcreti:60,
    ucretHesapla:function(saat){
        return saat*this.saatUcreti;
    }
};
 
document.getElementById("bilgi").innerHTML =
arac.marka + " " + arac.model + " model "+arac.yakit+" aracın saatlik kiralama ücreti : "+arac.saatUcreti;
    
document.getElementById("detay").innerHTML=
    "Marka      : "+arac.marka+"<br>"+
    "Model      : "+arac.model+"<br>"+
    "Model Yılı : "+arac.yil+"<br>"+
    "Renk       : "+arac.renk+"<br>"+
    "Yakıt Türü : "+arac.yakit+"<br>"+
    "Saat Ücreti: "+arac.saatUcreti;
    
document.getElementById("tutar").innerHTML="Ödenecek Tutar : "+arac.ucretHesapla(3);
    
</script>
 
</body>

|| ÇIKTI:


Yararlandıklarım:

  1. https://developer.mozilla.org/tr/docs/Web/JavaScript/Guide/Fonksiyonlar
  2. https://www.yazilimkodlama.com/web/javascript-object-nesne-kullanimi/

Type Conversion (Typecast and Methods)

Type Conversion (tür dönüşümü)’ın bir alt formu olan Typecast konusu anladığım kadarıyla; basit, temel ve bir o kadar da önemli bir konu. Kodlamaya başladığım ilk zamanlarda öğrenmiş olmama rağmen ve hatta şu kısa süreli blog serüvenimde bile bununla ilgili bir örnek yapmış olmama rağmen, yaptığım matematik işlemlerinde bu konuyla ilgili detaylar yüzünden sonuca ulaşamadığımı fark ettiğim bir konu olduğu için tür dönüşümleri için ayrı bir başlık açmak istedim.

Veri türeleri arası dönüşüm, bir değişkenin değişik türdeki hâlinin başka bir değişkene atanmasıdır. Typecast (type casting) de denir. İki formu vardır.

Typecast

  1. Bilinçsiz Dönüşüm (Implicit Type Conversion): Düşük kapasiteli bir değişken, sabit ya da değişken ve sabitlerden oluşan matematiksel ifadenin daha yüksek kapasiteli bir değişkene atanması. Özel bir kod gerekmez
  2. Bilinçli Dönüşüm (Explicit Type Conversion): Genellikle derleyicinin izin vermediği durumlarda kullanılır. Bilinçli tür dönüşümüyle küçük türün büyük türe dönüştürülmesi gereksizdir, bilinçsiz tür dönüşümü bu işi yapar. Dönüşümü yapılan değişkenin tuttuğu değer, dönüştürülecek türün kapasitesinden büyükse veri kaybı gerçekleşebilir.

Bilinçsiz Dönüşüm (Implicit Type Conversion)

Bilinçli Dönüşüm (Explicit Type Conversion)

object Türüyle İlgili Kurallar

object türündeki bir değişkene başka herhangi bir türdeki değişken ya da sabit (string dışında) + işaretiyle eklenemez.

object türündeki bir değişkene herhangi bir türdeki değişken ya da sabit atanabilir (bilinçsiz tür dönüşümü). object türündeki bir değişkeni başka bir türe çevirmek için tür dönüştürme işlemi kullanılır. Dönüştürülen türlerin uyumlu olması gerekir.

Aynı satırda çifte dönüşüm yapılamaz.

string Türüyle İlgili Dönüşümler

x.ToString(): x değişken ya da sabitini stringe çevirip tutar.

string türüyle ilgili bilinmesi gerekenler:

Methods (System.Convert sınıfı)

Tür dönüşümü için metotlar System isim uzayında Convert sınıfındadır. Hemen hemen her tür her türe dönüştürülebilir. Değişken türlerinin CTS (Common Type System) karşılıkları bilinmelidir.

~Aritmetik Dönüşüm Hiyerarşisi

Kaynaklar:

C# – Alan ve çevre hesabı yapabilen metodları içeren sınıf yazma ve main altında bu sınıfın objelerini oluşturma

Normalde, alan ve çevre hesabı yapabilen metodları, main metodu ile aynı sınıf içine yazabilirdik fakat bu kodda başka bir sınıf altında yazılan kodun, main içerisinde objesini nasıl oluşturup alan ve çevre hesabını yaptırdığımızı göreceğiz. Aynı kemik kod üzerinde 2 farklı örnek bulunuyor. Bu kodlar birbiriyle bağımsızdır. Birisi dik üçgenler üzerine, diğeri dikdörtgen üzerine yazılmıştır.

Kodumuz

1-Dik Üçgen Sınıfı

2-Dikdörtgen Sınıfı

Kodun Çıktısı

1-Dik Üçgen Sınıfının Çıktısı

2-Dikdörtgen Sınıfının Çıktısı

2 haftadır ara ara düşünüp kavrayamadığım, yazamadığım bir koddu. Ağlayacağım.

20 Ekim 2019. * R