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