JavaScript Notlarım



       dP                                                       oo            dP   
       88                                                                     88   
       88 .d8888b. dP   .dP .d8888b. .d8888b. .d8888b. 88d888b. dP 88d888b. d8888P 
       88 88'  `88 88   d8' 88'  `88 Y8ooooo. 88'  `"" 88'  `88 88 88'  `88   88   
88.  .d8P 88.  .88 88 .88'  88.  .88       88 88.  ... 88       88 88.  .88   88   
 `Y8888'  `88888P8 8888P'   `88888P8 `88888P' `88888P' dP       dP 88Y888P'   dP   
                                                                   88              
                                                                   dP


 ==================================================================== 

  ------------------------->   1.Demlik   <-------------------------  

 ====================================================================



1.Bardak_________________________________________DEĞİŞKENLER


var -> Variable -> Değişken


var data = 2; -> 2

var data = "Javascript" -> JavaScript

var data = 1.23 -> 1.23


!!! - değişken isimleri Rakam ile başlamaz.

!!! - değişken isimleri function olamaz. (özel isim)


!!! - CamelCase durumu isimler için daha okunabilir bir hal almasına sebep olur.

var userdatacount --- var userDataCount


Değişkenler toplu olarak tanımlanabilir.


var data1 = 1;

var data2 = 2;

var data3 = 3;


var data = 1, data2 = 2, data3 = 3;





2.Bardak_________________________________________BÜYÜK-KÜÇÜK HARF DUYARLILIĞI


var ad = 1; 

var Ad = 2;

var aD = 3;

var AD = 4;


4 Farklı ad değişkeni oluşturulmuştur.





3.Bardak__________________________________________AÇIKLAMA SATIRLARI


// -> Tek satır için Açıklama satırı oluşturulabilir.

//Açıklama Satırı


/* --- */ -> Çok satırlı açıklama satırı oluşturulabilir.


/*

* Açıklama

* Satırı

* Deneme

*/




4.Bardak__________________________________________BİRLEŞTİRME OPERATÖRLERİ

 

var soyad = "taskin";

console log("mehmet" + soyad); ---> mehmettaskin


var sayi1 = 1;

var sayi2 = 2;

console.log(sayi1 + sayi2); ---> 3

console.log(sayi1 + "2"); ---> 12




5.Bardak__________________________________________ARİTMETİK OPERATÖRLER



+----------+---------+

| Operatör | İşlevi  |

+----------+---------+

| +        | Toplama |

| -        | Çıkarma |

| *        | Çarpma  |

| /        | Bölme   |

+----------+---------+




% --> Mod (Bölümünden Kalan)

Ex: 10 % 2 = 0

Ex: 10 % 3 = 1


++ --> Değeri 1 Artır

Ex: ++1 --> Console.log(++1); --> Önce Değişkenin Değerini Artırır Sonra Consola yazdırır. 

Ex: 1++ --> Console.log(1++); --> Önce Consola Yazdırır Sonra Değerini Artırır.


-- --> Değeri 1 Eksiltir.

Ex: --1 --> Console.log(--1); --> Önce Değişkenin Değerini Eksiltir Sonra Consola yazdırır. 

Ex: 1-- --> Console.log(1--); --> Önce Consola Yazdırır Sonra Değerini Eksiltir.



+=X --> Değeri X kadar artır.

Ex: sayi += 2 --> sayi değişkeninden 2 ekliyip sayi değişkenine atama yapar.


-=X --> Değeri X kadar eksiltir.

Ex: sayi -= 2 --> sayi değişkeninden 2 çıkartıp sayi değişkenine atama yapar.




6.Bardak___________________________________________KARŞILAŞTIRMA OPERATÖRLERİ



+----------+--------------------------------+

| Operatör |             İşlevi             |

+----------+--------------------------------+

| ==       | Eşit ise                       |

| ===      | Veri Türü Dahil Eşit İse       |

| !=       | Eşit Değilse                   |

| !==      | Veri Türü Dahil Eşit Değil İse |

| >        | Büyüktür                       |

| <        | Küçüktür                       |

| >=       | Büyük Eşittir.                 |

| <=       | Küçük Eşittir.                 |

| ==       | Eşit İse                       |

+----------+--------------------------------+


7.Bardak___________________________________________MANTIKSAL OPERATÖRLER


+----------+--------+

| Operatör | İşlevi |

+----------+--------+

| &&       | Ve     |

| ||       | veya   |

+----------+--------+




8.Bardak____________________________________________CallBack Fonksiyonlar


önce aFunc Sonra bFunc sırası ile çalışması isteniyor Fakat aşağıdaki durumda

aFunc 30sn sürerken bFunc 3 saniyede bitirip senkronizasyonu bozuyor


aFunc(); --> 30sn

bFunc(); --> 3sn


bu sorunu çözmek için,aFunc içerise bFunc olarak callback edilerek sorun çözülür.


aFunc(X,Callback); ---> aFunc(x,bFunc);





9.Bardak____________________________________________SetTimeout Fonksiyonu


Aşağıdaki Callback fonksiyonu ile yaptığımız yazımda

ilk olarak setTimeout Çalışacaktır

daha sonra callback fonksiyonu olan console.log çalışacaktır.




+------------------------------+

| _______1.Yazım Şekli________ |

+------------------------------+

| setTimeout(function(){       |

| console.log("TestText");     |

| },2000);                     |

|                              |

| _______2.Yazım Şekli________ |

| var fnc = function () {      |

|                              |

| console.log("TestText");     |

| };                           |

| setTimeout(fnc,3000);        |

+------------------------------+





10.Bardak___________________________________________setInterval Fonksiyonu


Bu fonksityon belirtilen süre sonunda sürekli çalışır.


setInterval(function(){


sayi++;


},1000);


Yukarıdaki yazım her saniye sayi değerini 1 artır.


kesmeyi durdurmak için ise clearInterval(funcname); fonksiyonu kullanılır.





11.Bardak__________________________________________Scope Kavramı



---------------------------------------

Burada main ile testFonk içindeki değişkeni birbirinden bağımsız olucaktır.

---------------------------------------

var x = "x değişkeni";


function testFonk() {

var x = "testFonkdegisken"

console.log(x);

}


testFonk();

console.log(x);


RES:

testFonkdegisken

x degiskeni


--------------------------------------




---------------------------------------

Burada main ile testFonk içindeki değişkeni birine bağımlıdır olucaktır.

---------------------------------------

var x = "x değişkeni";


function testFonk() {

x = "testFonkdegisken"  // !!!  -  var x çıkartıldı.

console.log(x);

}


testFonk();

console.log(x);


Res:

testFonkdegisken

testFonkdegisken


--------------------------------------




12.Bardak___________________________________________Nesneler



+----------------------------+

|          1.Yazım           |

+----------------------------+

| var insan = {};            |

| insan.yas = 12 ;           |

| insan.isim = "fırat";      |

| insan.yuru = function () { |

| console.log("Yürüü");      |

| };                         |

| insan.yuru();              |

|                            |

| RES:                       |

| yürüü                      |

| },2000);                   |

|                            |

+----------------------------+




+-----------------------+

|        2.Yazım        |

+-----------------------+

| var insan = {         |

| yas : 12 ,            |

| isim : "fırat",       |

| yuru : function () {  |

| console.log("Yürüü"); |

| };                    |

| insan.yuru();         |

|                       |

| RES:                  |

| yürüü                 |

| },2000);              |

|                       |

+-----------------------+




13.Bardak_________________________________________Diziler


----------------< 1.Yazım >-------------------

var myDizi = [];

var myDizi2 = ['ali',24,false,0.3];


console.log(myDizi2);

console.log(myDizi2[1]);


RES:

['ali',24,false,0.3];

24




----------------< 2.Yazım >-------------------

var myDizi = [];

var myDizi2 = ['ali',24,false,0.3];


for(var i = 0; i < myDizi2.lenght; i++){


console.log(myDizi[i]);


}


RES:

ali

24

false

0.3



----------------< 3.Yazım >-------------------

var myDizi = [];

var myDizi2 = ['ali',24,false,0.3];


myDizi2.forEach(function(k){


console.log(k);


});


RES:

ali

24

false

0.3




14.Bardak_________________________________________İstisna Yönetimi


try

catch

throw

finally


-----------------< THROW >-----------------

var isim = "mehmet";

if (isim !== "mehmet") throw Error("beklenmeyen isim");


console.log(isim);


RES: 

mehmet


-------------

var isim = "mehmet";

if (isim !== "ahmet") throw Error("beklenmeyen isim");


console.log(isim);


RES: 

ERROR: beklenmeyen isim

-------------





-----------------< TRY-CATCH-FİNALLY >-----------------


try{

var sayi1 = 4;

var sayi2 = 1;

var sonuc = sayi1 / sayi2;


if(sayi2 === 0) 

throw Error('sayi2 sıfır olamaz');

else

console.log(sonuc);

}catch(error){

console.log(error)

}


RES:

4


----------------------------------------------


try{

var sayi1 = 4;

!!! var sayi2 = 0; 

var sonuc = sayi1 / sayi2;


if(sayi2 === 0) 

throw Error('sayi2 sıfır olamaz');

else

console.log(sonuc);

}catch(error){

console.log(error)

}


RES:

ERROR: sayi2 sıfır olamaz


-----------------------------------------------



try{

var sayi1 = 4;

!!! var sayi2 = 0; 

var sonuc = sayi1 / sayi2;


if(sayi2 === 0) 

throw Error('sayi2 sıfır olamaz');

else

console.log(sonuc);

}catch(error){

console.log(error)

}finally{

 console.log("burası finnaly");

}


RES:

ERROR: sayi2 sıfır olamaz

burası finally

-----------------------------------------------




15.Bardak_________________________________________Use Strict



Javascript 1996 yılından bu yana kullanılmaktadır. 

en son sürümü ise 2009 yılında çıktı

sonradan kaldırılan özellikler için çoğu tarayıcı hangi versiyonda

çalışan js kodu olduğunu bilmediği için en eski versiyonda çalıştırır ve

hata almaz.


fakat en son kararlı versiyonda çalışmak için kod satırırnın başına


"use strict"; 


ekledikten sonra javascript motoru bizi en son sürümü kullanmata zorlayacaktır.





16.Bardak________________________________________EcmaScript-6


Javascript zaman içerisinde evrim geçirmiştir.



17.Bardak________________________________________var,let,const ve farkları




+-------------+-------------------------+-------------------+-----------------+

|   Özellik   |           VAR           |        LET        |      CONST      |

+-------------+-------------------------+-------------------+-----------------+

| Erişim      | Global                  | Local             | Global          |

| Tanımlama   | Birden Fazla Kez        | Tek Seferlik      | Tek Seferlik    |

| Uyumluluk   | ES6< (Tavsiye Edilmez)  | Güncel            | Güncel          |

| Veri Atama  | Birden Fazla Kez        | Birden Fazla Kez  | Tek Seferlik    |

| ----------- | ----------------------- | ----------------- | -------------   |

| Example     | ( )var x = 1;           | ( )let x = 1;     | ( )const x = 1; |

| -           | (+)var x = 2;           | (+)x = 2;         | (-)const x = 2; |

| -           | (+)x = 3;               | (-)let x = 3;     | (-)x = 3;       |

+-------------+-------------------------+-------------------+-----------------+











 ==================================================================== 

  ------------------------->   2.Demlik   <-------------------------  

 ====================================================================


17.Bardak_________________________________________Template Literal



ES6'dan önce --------------------------------

const name = "Mehmet";

const surname = "ali";


console.log(name + surname);



ES6'dan sonra -------------------------------


!!! `` -> backtick


const name = "Mehmet";

const surname = "ali";


console.log(`Benim adım ${name}, soyadım ${surname}`);

---------------------------------------------



Şablon değişmezleri, çok satırlı dizelere, gömülü ifadelerle dize enterpolasyonuna ve etiketli şablonlar adı verilen özel yapılara izin veren, ters işaret (`) karakterleriyle sınırlandırılmış değişmez değerlerdir.


Şablon değişmezleri bazen gayri resmi olarak şablon dizeleri olarak adlandırılır, çünkü bunlar en yaygın olarak dize enterpolasyonu için kullanılır (yer tutucuları değiştirerek dizeler oluşturmak için). Ancak, etiketli bir şablon değişmezi bir dizeyle sonuçlanmayabilir; şablon değişmezinin farklı bölümlerinde istediğiniz işlemleri gerçekleştirmek için özel bir etiket işleviyle birlikte kullanılabilir.





TANIM:--------------------------------------


Şablon değişmezleri, çift veya tek tırnak işaretleri yerine ters tik (`) karakterleri içine alınır.


Normal dizelere sahip olmanın yanı sıra, şablon değişmezleri, dolar işareti ve küme parantezleri ile sınırlandırılmış gömülü ifadeler olan yer tutucular adı verilen diğer parçaları da içerebilir: ${expression}. 


Dizeler ve yer tutucular, varsayılan bir işlev veya sizin sağladığınız bir işlev olan bir işleve iletilir. Varsayılan işlev (kendinizi sağlamadığınızda), yer tutucuların yerini almak için yalnızca dize enterpolasyonu gerçekleştirir ve ardından parçaları tek bir dizede birleştirir.



`\`` === '`' // --> true


`\${1}` === '${1}' // --> true







Multi-line strings-------------------------


Kaynağa eklenen tüm yeni satır karakterleri, şablon değişmezinin bir parçasıdır.



>Normal dizeleri kullanarak, çok satırlı dizeleri elde etmek için aşağıdaki sözdizimini kullanmanız gerekir:


+--------------------------------------+

| console.log('string text line 1\n' + |

| 'string text line 2');               |

| // "string text line 1               |

| // string text line 2"               |

+--------------------------------------+



>Şablon değişmezlerini kullanarak, bununla aynısını yapabilirsiniz:


+---------------------------------+

| console.log(`string text line 1 |

| string text line 2`);           |

| // "string text line 1          |

| // string text line 2"          |

+---------------------------------+





String interpolation----------------------


Şablon değişmezleri olmadan, ifadelerin çıktısını dizelerle birleştirmek istediğinizde, bunları "+" (artı işareti) (toplama operatörü) kullanarak birleştirirsiniz:


+--------------------------------------------------------------------------+

| let a = 5;                                                               |

| let b = 10;                                                              |

| console.log('Fifteen is ' + (a + b) + ' and\nnot ' + (2 * a + b) + '.'); |

| // "Fifteen is 15 and                                                    |

| // not 20."                                                              |

+--------------------------------------------------------------------------+


Bunu okumak zor olabilir - özellikle birden fazla ifadeniz olduğunda.


Şablon değişmezleri ile, gömülü ifadeler için ikameler gerçekleştirmek üzere "${expression}" formunun yer tutucularını kullanarak birleştirme operatöründen kaçınabilir ve kodunuzun okunabilirliğini iyileştirebilirsiniz:



+--------------------------------------+

| let a = 5;                           |

| let b = 10;                          |

| console.log(`Fifteen is ${a + b} and |

| not ${2 * a + b}.`);                 |

| // "Fifteen is 15 and                |

| // not 20."                          |

+--------------------------------------+






Nesting templates-------------------------


Bazı durumlarda, bir şablonu iç içe yerleştirmek, yapılandırılabilir dizelere sahip olmanın en kolay (ve belki de daha okunaklı) yoludur. Geri tepme ile sınırlandırılmış bir şablonda, şablon içinde bir ${expression} yer tutucusu içinde kullanarak iç tiklere izin vermek kolaydır.


>Örneğin, şablon değişmezleri olmadan, belirli bir koşula dayalı olarak belirli bir değer döndürmek istiyorsanız, aşağıdakine benzer bir şey yapabilirsiniz:


+----------------------------------------+

| let classes = 'header';                |

| classes += (isLargeScreen() ?          |

| '' : item.isCollapsed ?                |

| ' icon-expander' : ' icon-collapser'); |

+----------------------------------------+


>Hazır bir şablonla ancak iç içe yerleştirmeden bunu yapabilirsiniz:


+-------------------------------------------------------------+

| const classes = `header ${ isLargeScreen() ? '' :           |

| (item.isCollapsed ? 'icon-expander' : 'icon-collapser') }`; |

+-------------------------------------------------------------+


>Şablon değişmezlerinin iç içe yerleştirilmesiyle şunu yapabilirsiniz:


+-----------------------------------------------------------+

| const classes = `header ${ isLargeScreen() ? '' :         |

| `icon-${item.isCollapsed ? 'expander' : 'collapser'}` }`; |

+-----------------------------------------------------------+





Tagged templates-------------------------


Şablon değişmezlerinin daha gelişmiş bir biçimi etiketli şablonlardır.


Etiketler, şablon değişmezlerini bir işlevle ayrıştırmanıza olanak tanır. Bir etiket işlevinin ilk argümanı, bir dizi dize değeri içerir. Kalan argümanlar ifadelerle ilgilidir.


Etiket işlevi daha sonra bu bağımsız değişkenler üzerinde istediğiniz işlemleri gerçekleştirebilir ve değiştirilen dizeyi döndürebilir. (Alternatif olarak, aşağıdaki örneklerden birinde açıklandığı gibi tamamen farklı bir şey döndürebilir.)


Etiket için kullanılan fonksiyonun adı istediğiniz gibi olabilir.




18.Bardak________________________________________Destructing


ES6'dan önce ------------------------


const degerler = {

deger1: 'deger1',

deger2: 'deger2',

deger3: 'deger3


};



const x1 = degerler.deger1;

const x2 = degerler.deger1;


console.log( x1 , x2 );


RES:

deger1

deger2


ES6'dan sonra ------------------------


const degerler = {

deger1: 'deger1',

deger2: 'deger2',

deger3: 'deger3


};


const { deger1, deger2 } = degerler;


console.log( deger1 , deger2 );


RES:

deger1

deger2


--------- diziler için ---------------


const degerler = [1,2,3];

const [x1,x2,x3] = degerler;


console.log(x1);

console.log(x2);

console.log(x3);


RES:

x1

x2

x3

--------------------------------------


const degerler = {

deger1:'deger1',

deger2:'deger2',

deger3:{

isim:'mehmet'

}

};


const { deger3: { isim } } = degerler;

console.log(isim);


-------------------------------------


const degerler = {

deger1:'deger1',

deger2:'deger2',

deger3:{

isim:'mehmet'

}

};


const { deger3: { isim: name } } = degerler;

console.log(name);


-------------------------------------



19.Bardak________________________________________(...arr)Spread Operator


Array içerisindeki tüm elemanları yazdırmak içim kullanılır.

---------------------------------

const arr = ['foo','bar','xyz'];

console.log(...arr);

RES:

foo bar xyz

---------------------------------

const arr = [1,2,3];

const arr2 = [arr,4,5];


console.log(arr2);

RES:

[[1,2,3],4,5,6]

---------------------------------

const arr = [1,2,3];

const arr2 = [...arr,4,5];


console.log(arr2);

RES:

[1,2,3,4,5,6]

---------------------------------




20.Bardak______________________________________(...rest)Rest operator


> Rest operatöründe aşağıda görüldüğü gibi 


a -> deger1'e , b ->deger2'ye

geri kalan herşey rest değişkenine dizi olarak atanır.

----------------------------------------

const arr = ['a','b','c','d'];

const [deger1, deger2, ...rest] = arr;


console.log(rest);


RES:

[ 'c' , 'd' ]

----------------------------------------

const arr = ['a','b','c','d'];

const [deger1, deger2, ...rest] = arr;


console.log(...rest);


RES:

c d

----------------------------------------




21.Bardak_____________________________________Arrow Functions

> Fonksiyonlarda sadeleştirme için türetilmiş bir yapıdır.




ES6'dan önce

---------------------------

var myFunc = function (sayi1,sayi2) {

return sayi1+sayi2;

};


console.log(myFunc(1,2));

RES:3

--------------------------



ES6'dan sonra

--------------------------

const myFunc = (sayi1,sayi2) => sayi1+sayi2


console.log(myFunc(1,2));

RES:3

--------------------------




22.Bardak________________________________________Promise


> Tekrar eden iç içe yapıların oluşturduğu okuma ve tekrar zorluğundan dolayı

promise yapısı oluşturulmuştur.


ES6'dan Önce---------------------------------------------

const asenkronFonksiyon = function (sayi, callback) {

    const sonuc = sayi + 2;

    callback(sonuc);

};

asenkronFonksiyon(2, function (sonuc) {

    console.log(sonuc);

    asenkronFonksiyon(4, function (sonuc) {

        console.log(sonuc);

        asenkronFonksiyon(6, function (sonuc) {

            console.log(sonuc);

            asenkronFonksiyon(8, function (sonuc) {

                console.log(sonuc);

            })

        })

    })

});

---------------------------------------------------------





ES6'dan Sonra--------------------------------------------

const asenFunc = (data) => {

  return new Promise((resolve, reject) => {

      if(data === 'test') reject('!!! - PROBLEM')

      else resolve('---> OK <---');

      }

  )

};


asenFunc()

    .then((data) => {

        console.log(data);

        return 1;

    })

    .then((data) => {

        console.log(data);

        return 2;

    })

    .then((data)=>{

        console.log(data);

        return 3;

    })

    .catch((error)=>{

    console.log(error);

    })


-------------------------------------------------------





23.Bardak__________________________________Async/Wait



const user = {id: 1, name: 'Cemal'};

const friends = [{id: 2, name: 'Ali', old: 23}, {id: 3, name: 'Melih', old: 34}, {id: 4, name: 'Ahmet', old: 54},

    {id: 5, name: 'Kerem', old: 24}, {id: 6, name: 'Mustafa', old: 26}, {id: 7, name: 'Cuma', old: 12}];


//console.table(friends);


const getUser = () => {

    return new Promise((resolve, reject) => {

        setTimeout(() => {

            resolve(user);

        }, 500);

    });

};


const getFriends = () => {

    return new Promise((resolve, reject) => {

        setTimeout(() => {

            resolve(friends);

        }, 1000);

    });

};


//CallBack Hell -------------------------------------


let userId;

getUser()

    .then(function (user) {

        userId = user.id;

        //console.log(userId);

        getFriends(userId)

            .then(function (friends) {

                console.log(user);

                console.table(friends);

            })

    });



//Promise Chain-1 ------------------------------------


getUser()

    .then((user) => {

        return user.id;

    })

    .then((userId) => {

        getFriends(userId)

            .then((friends) => {

                console.log(friends);

            });

    });




//Promise Chain-2 ------------------------------------


getUser()

    .then((user) => {

        return getFriends(user.id);

    })

    .then((friends)=>{

        console.log(friends);

    });



Async - Await ----------------------------------------



async function asenkronAkis () {

    const user = await getUser();

    const friends = await getFriends(user.id);


    console.log(user,friends);

};


asenkronAkis();




24.Bardak__________________________Async/Await Hata Ayıklama



async function asenkronAkis () {


try{

const user = await getUser();

const friends = await getFriends(user.id);

console.log(user,friends);

}catch (error){

console.log(error);

}


}











 ==================================================================== 

  ------------------------->   3.Demlik   <-------------------------  

 ====================================================================



25.Bardak______________________________Module.export ve require



+---------------------------------+

|            modul.js             |

+---------------------------------+

| function funcOne(){             |

| return 'foo1';                  |

| }                               |

| function funcTwo(){             |

| return 'foo2';                  |

| }                               |

| module.export.func1 = funcOne;  |

| module.export.func2 = funcTwo;  |

+---------------------------------+



+-----------------------------------------+

|                index.js                 |

+-----------------------------------------+

| const func1 = require('./modul').func1; |

| const func2 = require('./modul').func2; |

| ----------------VEYA------------------  |

| const {func1,func2}=require('./modul'); |

| --------------------------------------  |

| console.log(func1,func2);               |

+-----------------------------------------+





26.Bardak___________________________Paket/Version



----------Paket Yükleme----------------------

LOCAL  - npm install (paket adı)

GLOBAL - npm install -g (paket adı)

VERSION- npm install (paket adı)@(version)


Version Kontrol - npm outdated

Version Güncelleme - npm update (paket adı)

Version Güncelleme - npm update

---------------------------------------------





27.Bardak______________________Bağımlılık Yönetimi


Bazı paketleri modül olarak kurmamıza gerek yok.

(Dev'de çalışacak)bunun için


npm install (Paket Adı) --save-dev


Ex:npm install gulp --save-dev





28.Bardak_______________________Script Tanımla


------------------package.json-------------------


"scripts" : {

"start" :" nodemon app ",

"sayHello" :" echo 'merhaba ben ali'",

"test" :" echo \"Error: no test specified\" && exit 1 "

}


-------------------------------------------------



29.Bardak_______________________________Paket Kaldırma


PAKET LİSTELEME - npm list -g --depth=0

SİLME - npm uninstall (paket adı)

GLOBAL'DAN SİLME - npm uninstall -g (paket adı)

FOLDER'DAN SİLME - npm uninstall (paket adı) --no-save

- Package.json'dan Kaldırılmaz.







 ==================================================================== 

  ------------------------->   4.Demlik   <-------------------------  

 ====================================================================



30.Bardak_______________________________Olaylar

(Events & Event Emitter)


Çok Kez Çalışır - eventEmitter.on ( KOŞUL , ()=>{} );

Çok Kez Çalışır - eventEmitter.on ( KOŞUL , (OBJECT)=>{} );

Bir Defa Çalışır - eventEmitter.once ( KOŞUL , ()=>{} );

Bir Defa Çalışır - eventEmitter.once ( KOŞUL , (OBJECT)=>{} );


--------------------------BASIC--------------------------

const events = require('events');

const eventEmitter = new events.EventEmitter();


eventEmitter.on('selamlar',()=>{

    console.log("merhabalar bu selamlama mesajıdır.");

});


eventEmitter.emit('selamlar');




--------------------------OBJECT--------------------------

const events = require('events');

const eventEmitter = new events.EventEmitter();


eventEmitter.on('selamlar',(object)=>{

    console.log(`merhabalar ${object.name} ${object.surname}`);

});


eventEmitter.emit('selamlar',{name:'memat',surname:'dereli'});




30.Bardak____________________________filename vd __dirname



__filename --> dosya ismi ile birlikte dosya yolunu döndürür.

__dirname  --> Dosya Yolunu Döndürür




31.Bardak__________________________Diskten Dosya Okuma


-----------------------------------------

Async Okuma --> readFile(Dosya Yolu);

 Sync Okuma --> readFileSync(Dosya Yolu)

-----------------------------------------


const fileManager = require('fs');


fileManager.readFile('metindosyasi.txt', function (err, data) {

    console.log(data.toString());

});


const demoDosyasi = fileManager.readFileSync('metindosyasi.txt', function (err, data) {

    console.log(data);

});


console.log(demoDosyasi);





32.Bardak______________________________________Dosya Oluşturma ve Yazma


Dosya Üzerine Ekleme Yapar --> fs.appendFile();

Dosya İçeriğini Silip Tekrar Yükleme Yapar --> fs.writeFile();

Dosya Silme --> fs.unlink();




const fileManager = require('fs');


fileManager.appendFile('demo.txt','merhaba dünya', (err)=>{

});


fileManager.writeFile('demo.txt','merhaba dünya', (err)=>{

});


fileManager.unlink('demo.txt','merhaba dünya', (err)=>{

if(err) throw err;

});




 ==================================================================== 

  ------------------------->   5.Demlik   <-------------------------  

 ====================================================================





















Yorumlar

Bu blogdaki popüler yayınlar

OCPP ve Open Source Şarj Protokolü (OCA) nedir?

OOP - Örnekler

OOP - Inheritance (Kalıtım)