You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -59,8 +59,8 @@ Yeni bir `Date` objesi yaratmak için `new Date()` aşağıdaki argümanların b
59
59
En düşün hassasiyet 1ms'dir(1/1000)
60
60
61
61
```js run
62
-
let tarih = new Date(2011, 0, 1, 2, 3, 4, 567);
63
-
alert( tarih ); // 1.01.2011, 02:03:04.567
62
+
let date = new Date(2011, 0, 1, 2, 3, 4, 567);
63
+
alert( date ); // 1.01.2011, 02:03:04.567
64
64
```
65
65
66
66
## Tarih bileşenlerine erişim
@@ -143,10 +143,10 @@ Gördüğünüz gibi,`setHours` gibi bazı metodlar birden fazla bileşeni aynı
143
143
Örneğin:
144
144
145
145
```js run
146
-
letbugun=newDate();
146
+
lettoday=newDate();
147
147
148
148
bugun.setHours(0);
149
-
alert(bugun); // bu gün ve saat 0
149
+
alert(today); // bu gün ve saat 0
150
150
151
151
bugun.setHours(0, 0, 0, 0);
152
152
alert(today); // bu gün ve saniye 00:00:00.
@@ -159,41 +159,41 @@ alert(today); // bu gün ve saniye 00:00:00.
159
159
Örneğin:
160
160
161
161
```js run
162
-
lettarih=newDate(2013, 0, *!*32*/!*); //32 Ocak 2013?!?
163
-
alert(tarih); // ...is 1st Şubat 2013!
162
+
letdate=newDate(2013, 0, *!*32*/!*); //32 Ocak 2013?!?
163
+
alert(date); // ...is 1st Şubat 2013!
164
164
```
165
165
Sınırın dışındaki tarih bileşenleri otomatik olarak dağıtılır.
166
166
Ayların sınırlarını düşünmenize gerek yoktur. Bunlar `Date` objesi tarafından otomatik olarak hesaplanacaktır.
167
167
168
168
Diyelim ki "28 Şub 2016"'yı iki gün artırmak istediniz. Belki "2 Mart" belki de "1 Mart" olabilir. Bunu bizim düşünmemize gerek yoktur. Sadece iki gün ekleyin yeterli. `Date` objesi geri kalanı sizin için yapacaktır:
169
169
170
170
```js run
171
-
lettarih=newDate(2016, 1, 28);
171
+
letdate=newDate(2016, 1, 28);
172
172
*!*
173
-
tarih.setDate(date.getDate() +2);
173
+
date.setDate(date.getDate() +2);
174
174
*/!*
175
175
176
-
alert( tarih ); // 1 Mar 2016
176
+
alert( date ); // 1 Mar 2016
177
177
```
178
178
179
179
Bu özellik belirtilen bir süre sonrasında tekrardan tarihi almak için kullanılır. Örneğin "Şu andan 70 sn sonrası"'ni al.
180
180
181
181
```js run
182
-
lettarih=newDate();
183
-
tarih.setSeconds(tarih.getSeconds() +70);
182
+
letdate=newDate();
183
+
date.setSeconds(tarih.getSeconds() +70);
184
184
185
185
alert( date ); // doğru tarihi gösterir.
186
186
```
187
187
Sıfır veya negatif değer de ayarlamak mümkündür. Örneğin:
188
188
189
189
190
190
```js run
191
-
lettarih=newDate(2016, 0, 2); // 2 Ocak 2016
191
+
letdate=newDate(2016, 0, 2); // 2 Ocak 2016
192
192
193
-
tarih.setDate(1); // ayın 1. günü
194
-
alert( tarih );
193
+
date.setDate(1); // ayın 1. günü
194
+
alert( date );
195
195
196
-
tarih.setDate(0); // İlk gün 1 olduğundan dolayı 0 geçen ayın son gününü verir. min day is 1, so the last day of the previous month is assumed
196
+
date.setDate(0); // İlk gün 1 olduğundan dolayı 0 geçen ayın son gününü verir. min day is 1, so the last day of the previous month is assumed
197
197
alert( date ); // 31 Aralık 2015
198
198
```
199
199
@@ -202,25 +202,25 @@ alert( date ); // 31 Aralık 2015
202
202
`Date` objesi sayıya çevrildiğinde, aynı timestamp'te olduğu gibi `date.getTime()` değerini alır:
203
203
204
204
```js run
205
-
lettarih=newDate();
206
-
alert(+tarih); // date.getTime() ile aynı şekilde milisaniye döner.
205
+
letdate=newDate();
206
+
alert(+date); // date.getTime() ile aynı şekilde milisaniye döner.
207
207
```
208
208
209
209
Önemli not: tarihler birbirinden çıkarılabilir fakat sonuç ms cinsinden olur.
210
210
211
211
Bu iki tarih arasındaki zamanı ölçmek için kullanılabilir:
212
212
213
213
```js run
214
-
letbaslangic=newDate(); // saymaya başla!
214
+
letstart=newDate(); // saymaya başla!
215
215
216
216
// işi yap
217
217
for (let i =0; i <100000; i++) {
218
218
let doSomething = i * i * i;
219
219
}
220
220
221
-
letbitis=newDate(); // bitt
221
+
letend=newDate(); // bitt
222
222
223
-
alert( `Döngü ${bitis-baslangic} ms` );
223
+
alert( `Döngü ${end-start} ms` );
224
224
```
225
225
226
226
## Date.now()
@@ -237,7 +237,7 @@ Aşağıdaki daha iyidir denebilir:
237
237
238
238
```js run
239
239
*!*
240
-
letbaslangic=Date.now(); // 1 Ocak 1970'den şimdiye kadar olan zamanın ms cinsinden değeri
240
+
letstart=Date.now(); // 1 Ocak 1970'den şimdiye kadar olan zamanın ms cinsinden değeri
241
241
*/!*
242
242
243
243
// işi yap
@@ -246,10 +246,10 @@ for (let i = 0; i < 100000; i++) {
246
246
}
247
247
248
248
*!*
249
-
letbitis=Date.now(); // done
249
+
letend=Date.now(); // done
250
250
*/!*
251
251
252
-
alert( `Döngü ${bitis-baslangic} ms sürdür` ); // sadece sayılar çıkarıldı tarihler değil.
252
+
alert( `Döngü ${end-start} ms sürdür` ); // sadece sayılar çıkarıldı tarihler değil.
253
253
```
254
254
255
255
## Kıyaslama
@@ -260,13 +260,13 @@ Eğer çok ağır yüklü işlemler için kıyaslama yapılıyorsa, dikkatli olu
260
260
261
261
```js
262
262
// tarih1 ve tarih2, hangisi işlemi daha hızlı tamamlar.
263
-
functioncikarma(tarih1, tarih2) {
264
-
returntarih2-tarih1;
263
+
functiondiffSubtract(date1, date2) {
264
+
returndate2-date1;
265
265
}
266
266
267
267
// veya
268
-
functiontarihFarki(tarih1, tarih2) {
269
-
returntarih2.getTime() -tarih1.getTime();
268
+
functiondiffGetTime(date1, date2) {
269
+
returndate2.getTime() -date1.getTime();
270
270
}
271
271
```
272
272
Yukarıdaki iki fonksiyon aynı işlemi yapar, fakat bir tanesi `date.getTime()` ile o tarihin ms cinsinden değerini alırken diğeri tarihin sayıya doğrudan çevrilmesine dayalı. Sonuçları her zaman aynı olacaktır.
@@ -278,25 +278,25 @@ Bunu ölçmek için fonksiyonları birçok defa çalıştırıp aradaki farkı
278
278
Ölçülecek olursa:
279
279
280
280
```js run
281
-
functioncikarma(tarih1, tarih2) {
282
-
returntarih2-tarih1;
281
+
functiondiffSubtract(date1, date2) {
282
+
returndate2-date1;
283
283
}
284
284
285
-
functiontarihFarki(tarih1, tarih2) {
286
-
returntarih2.getTime() -tarih1.getTime();
285
+
functiondiffGetTime(date1, date2) {
286
+
returndate2.getTime() -date1.getTime();
287
287
}
288
288
289
-
functionkarsilastirma(f) {
290
-
lettarih1=newDate(0);
291
-
lettarih2=newDate();
289
+
functionbench(f) {
290
+
letdate1=newDate(0);
291
+
letdate2=newDate();
292
292
293
-
letbaslangic=Date.now();
294
-
for (let i =0; i <100000; i++) f(tarih1, tarih2);
295
-
returnDate.now() -baslangic;
293
+
letstart=Date.now();
294
+
for (let i =0; i <100000; i++) f(date1, date2);
295
+
returnDate.now() -start;
296
296
}
297
297
298
-
alert( 'Çıkarma işlemi ile: '+karsilastirma(cikarma) +'ms' );
alert( 'Time of diffSubtract: '+bench(diffSubtract) +'ms' );
299
+
alert( 'Time of diffGetTime: '+bench(diffGetTime) +'ms' );
300
300
```
301
301
302
302
`getTime()` ile yapılan işlem çok daha hızlı! Bunun nedeni tip dönüşümü olmaması, böylece JavaScript motoru çok daha iyi optimize edebilmektedir.
@@ -316,48 +316,48 @@ Sonuç olarak `karsilastirm(cikarma)` için daha az işlemci kaynağı kullanıl
316
316
Aşağıda örneğini görebilirsiniz:
317
317
318
318
```js run
319
-
functioncikarma(tarih1, tarih2) {
320
-
returntarih2-tarih1;
319
+
functiondiffSubtract(date1, date2) {
320
+
returndate2-date1;
321
321
}
322
322
323
-
functiontarihFarki(tarih1, tarih2) {
324
-
returntarih2.getTime() -tarih1.getTime();
323
+
functiondiffGetTime(date1, date2) {
324
+
returndate2.getTime() -date1.getTime();
325
325
}
326
326
327
-
functionkarsilastirma(f) {
328
-
lettarih1=newDate(0);
329
-
lettarih2=newDate();
327
+
functionbench(f) {
328
+
letdate1=newDate(0);
329
+
letdate2=newDate();
330
330
331
-
letbaslangic=Date.now();
332
-
for (let i =0; i <100000; i++) f(tarih1, tarih2);
333
-
returnDate.now() -baslangic;
331
+
letstart=Date.now();
332
+
for (let i =0; i <100000; i++) f(date1, date2);
333
+
returnDate.now() -start;
334
334
}
335
335
336
-
letzaman1=0;
337
-
letzaman2=0;
336
+
lettime1=0;
337
+
lettime2=0;
338
338
339
339
*!*
340
340
// Paketi 10 defa çalışacak şekilde ayarlayın
341
341
for (let i =0; i <10; i++) {
342
-
zaman1+=karsilastirma(cikarma);
343
-
zaman2+=karsilastirma(tarihFarki);
342
+
time1+=bench(diffSubtract);
343
+
time2+=bench(diffGetTime);
344
344
}
345
345
*/!*
346
346
347
-
alert( 'Cikarma islemi ile geçen süre: '+zaman1 );
348
-
alert( 'TarihFarki islemi ile geçen süre: '+zaman2 );
347
+
alert( 'Total time for diffSubtract: '+time1 );
348
+
alert( 'Total time for diffGetTime: '+time2 );
349
349
```
350
350
Modern JavaScript motorları "sıcak kod" için daha gelişmiş optimizasyon yapmaya başladılar. Bu nadiren çalışan kodlar yerine daha çok fazlaca tekrar eden kodların optimizasyonu anlamına gelmektedir. Böylece ilk çalışmalar çok ta optimize edilmezler.
@@ -411,7 +411,7 @@ Diğer sistemlerin aksine, zaman damgası javascripte saniye değil sarise cinsi
411
411
Eğer daha ayrıntılı zaman bilgisine erişmek istiyorsanız. JavaScript desteklemese bile çoğu sistem microsaniyeye destek verir ( saniyenin milyonda biri ). Örneğin [performance.now()](mdn:api/Performance/now) sayfanın yüklenme süresini mikrosaniye cinsinden verir.
412
412
413
413
```js run
414
-
alert(`Yüklemeye 4731.26000000001ms önce başladı`);
414
+
alert(`Loading started ${performance.now()}ms ago`);
415
415
// Sonuç : Yüklemeye 4731.26000000001ms önce başladı
416
416
// .26 mikrosaniye (260 mikrosaniye)
417
417
// noktanın 3. basamağından sonraki değerler sapmadır fakat ilk 3 basamak doğrudur.
0 commit comments