[{"data":1,"prerenderedAt":1382},["ShallowReactive",2],{"post-\u002Ftr\u002Fes5-nedir":3},{"page":4,"translation":1213,"nav":1229,"related":1359,"random":1369},{"id":5,"title":6,"body":7,"categories":1211,"category":1213,"date":1214,"description":1215,"draft":1216,"extension":1217,"image":1218,"kind":1213,"lang":986,"meta":1219,"navigation":153,"path":1220,"readingTime":164,"seo":1221,"slug":1222,"stem":1223,"tags":1224,"translationKey":1213,"type":1212,"updated":1227,"__hash__":1228},"postsTr\u002Ftr\u002Fes5-nedir.md","ES5 Nedir? JavaScript Geliştiricileri İçin Kılavuz",{"type":8,"value":9,"toc":1195},"minimark",[10,17,26,103,106,111,114,119,126,207,211,221,485,489,504,628,631,645,649,656,676,826,830,840,973,975,979,1097,1099,1103,1107,1119,1123,1134,1138,1145,1147,1151,1178,1183,1191],[11,12,13],"p",{},[14,15,16],"strong",{},"ES5 (ECMAScript 5), Aralık 2009'da yayınlanan ve Haziran 2011'de v5.1 güncellemesini alan 5. ECMAScript standardıdır.",[11,18,19,20,25],{},"Modern JavaScript dünyasının temelleri bu sürümle atılmıştır. Kendisinden sonra gelen ",[21,22,24],"a",{"href":23},"\u002Ftr\u002Fes6-nedir-ecmascript-2015-nedir","ES6 (ES2015)"," ile birlikte tarayıcı uyumluluğu ve modern dil özelliklerinin standartlaşmasını sağlamıştır.",[27,28,29,35],"blockquote",{},[11,30,31,32],{},"💡 ",[14,33,34],{},"Özet (TL;DR):",[36,37,38,50,74,90],"ul",{},[39,40,41,44,45,49],"li",{},[14,42,43],{},"Strict Mode:"," JavaScript'in esnek ve hata yapmaya müsait yapısını disipline eden ",[46,47,48],"code",{},"'use strict'"," ifadesi eklendi.",[39,51,52,55,56,59,60,59,63,59,66,69,70,73],{},[14,53,54],{},"Yeni Dizi Metotları:"," Döngü yazmayı azaltan ",[46,57,58],{},"forEach",", ",[46,61,62],{},"map",[46,64,65],{},"filter",[46,67,68],{},"reduce"," ve ",[46,71,72],{},"every"," gibi fonksiyonel dizi metotları geldi.",[39,75,76,79,80,59,83,69,86,89],{},[14,77,78],{},"Nesne Yetenekleri:"," Nesnelerin özelliklerini koruma altına alan ",[46,81,82],{},"Object.defineProperty()",[46,84,85],{},"Object.freeze()",[46,87,88],{},"Object.create()"," eklendi.",[39,91,92,95,96,69,99,102],{},[14,93,94],{},"JSON Desteği:"," JSON verilerini ayrıştırmayı ve string'e dönüştürmeyi sağlayan yerleşik ",[46,97,98],{},"JSON.parse()",[46,100,101],{},"JSON.stringify()"," geldi.",[104,105],"hr",{},[107,108,110],"h2",{"id":109},"es5-i̇le-gelen-temel-yenilikler","ES5 İle Gelen Temel Yenilikler",[11,112,113],{},"ES5, JavaScript'e hem fonksiyonel programlama yetenekleri kazandırmış hem de nesne yönelimli programlama (OOP) tarafını güçlendirmiştir. Öne çıkan özellikleri pratik örneklerle inceleyelim:",[115,116,118],"h3",{"id":117},"_1-strict-mode-katı-mod","1. Strict Mode (Katı Mod)",[11,120,121,122,125],{},"Kodunuzun en başına ya da bir fonksiyonun ilk satırına ",[46,123,124],{},"\"use strict\";"," ekleyerek bu modu aktif edebilirsiniz. Strict mode, hatalı ve güvensiz yazım şekillerini engelleyerek tarayıcının hata fırlatmasını sağlar.",[127,128,133],"pre",{"className":129,"code":130,"language":131,"meta":132,"style":132},"language-javascript shiki shiki-themes github-light github-dark","\"use strict\";\n\n\u002F\u002F ❌ Hata fırlatır: Değişken tanımlanmadan kullanılamaz (Uncaught ReferenceError)\nx = 3.14; \n\n\u002F\u002F ❌ Hata fırlatır: Bir nesne özelliğini silmeye çalışmak\ndelete Object.prototype;\n","javascript","",[46,134,135,148,155,162,179,184,190],{"__ignoreMap":132},[136,137,140,144],"span",{"class":138,"line":139},"line",1,[136,141,143],{"class":142},"sZZnC","\"use strict\"",[136,145,147],{"class":146},"sVt8B",";\n",[136,149,151],{"class":138,"line":150},2,[136,152,154],{"emptyLinePlaceholder":153},true,"\n",[136,156,158],{"class":138,"line":157},3,[136,159,161],{"class":160},"sJ8bj","\u002F\u002F ❌ Hata fırlatır: Değişken tanımlanmadan kullanılamaz (Uncaught ReferenceError)\n",[136,163,165,168,172,176],{"class":138,"line":164},4,[136,166,167],{"class":146},"x ",[136,169,171],{"class":170},"szBVR","=",[136,173,175],{"class":174},"sj4cs"," 3.14",[136,177,178],{"class":146},"; \n",[136,180,182],{"class":138,"line":181},5,[136,183,154],{"emptyLinePlaceholder":153},[136,185,187],{"class":138,"line":186},6,[136,188,189],{"class":160},"\u002F\u002F ❌ Hata fırlatır: Bir nesne özelliğini silmeye çalışmak\n",[136,191,193,196,199,202,205],{"class":138,"line":192},7,[136,194,195],{"class":170},"delete",[136,197,198],{"class":174}," Object",[136,200,201],{"class":146},".",[136,203,204],{"class":174},"prototype",[136,206,147],{"class":146},[115,208,210],{"id":209},"_2-erişim-ve-atama-metotları-getters-and-setters","2. Erişim ve Atama Metotları (Getters and Setters)",[11,212,213,214,69,217,220],{},"Nesne içindeki özelliklere güvenli bir şekilde erişmek veya değer atamak için kullanılan yerleşik ",[46,215,216],{},"get",[46,218,219],{},"set"," metotları ES5 ile standart hale geldi.",[127,222,224],{"className":129,"code":223,"language":131,"meta":132,"style":132},"var user = {\n  firstName: \"John\",\n  lastName : \"Doe\",\n  _role    : \"user\",\n\n  \u002F\u002F Getter\n  get fullName() {\n    return this.firstName + \" \" + this.lastName;\n  },\n\n  \u002F\u002F Setter\n  get role() {\n    return this._role;\n  },\n  set role(value) {\n    this._role = (value === \"admin\" || value === \"user\") ? value : \"user\";\n  }\n};\n\nconsole.log(user.fullName); \u002F\u002F \"John Doe\"\nuser.role = \"super-admin\"; \u002F\u002F Geçersiz rol ataması\nconsole.log(user.role); \u002F\u002F \"user\" (setter tarafından kontrol edildi ve varsayılana çekildi)\n",[46,225,226,239,250,260,270,274,279,291,317,323,328,334,344,354,359,377,423,429,435,440,455,472],{"__ignoreMap":132},[136,227,228,231,234,236],{"class":138,"line":139},[136,229,230],{"class":170},"var",[136,232,233],{"class":146}," user ",[136,235,171],{"class":170},[136,237,238],{"class":146}," {\n",[136,240,241,244,247],{"class":138,"line":150},[136,242,243],{"class":146},"  firstName: ",[136,245,246],{"class":142},"\"John\"",[136,248,249],{"class":146},",\n",[136,251,252,255,258],{"class":138,"line":157},[136,253,254],{"class":146},"  lastName : ",[136,256,257],{"class":142},"\"Doe\"",[136,259,249],{"class":146},[136,261,262,265,268],{"class":138,"line":164},[136,263,264],{"class":146},"  _role    : ",[136,266,267],{"class":142},"\"user\"",[136,269,249],{"class":146},[136,271,272],{"class":138,"line":181},[136,273,154],{"emptyLinePlaceholder":153},[136,275,276],{"class":138,"line":186},[136,277,278],{"class":160},"  \u002F\u002F Getter\n",[136,280,281,284,288],{"class":138,"line":192},[136,282,283],{"class":170},"  get",[136,285,287],{"class":286},"sScJk"," fullName",[136,289,290],{"class":146},"() {\n",[136,292,294,297,300,303,306,309,312,314],{"class":138,"line":293},8,[136,295,296],{"class":170},"    return",[136,298,299],{"class":174}," this",[136,301,302],{"class":146},".firstName ",[136,304,305],{"class":170},"+",[136,307,308],{"class":142}," \" \"",[136,310,311],{"class":170}," +",[136,313,299],{"class":174},[136,315,316],{"class":146},".lastName;\n",[136,318,320],{"class":138,"line":319},9,[136,321,322],{"class":146},"  },\n",[136,324,326],{"class":138,"line":325},10,[136,327,154],{"emptyLinePlaceholder":153},[136,329,331],{"class":138,"line":330},11,[136,332,333],{"class":160},"  \u002F\u002F Setter\n",[136,335,337,339,342],{"class":138,"line":336},12,[136,338,283],{"class":170},[136,340,341],{"class":286}," role",[136,343,290],{"class":146},[136,345,347,349,351],{"class":138,"line":346},13,[136,348,296],{"class":170},[136,350,299],{"class":174},[136,352,353],{"class":146},"._role;\n",[136,355,357],{"class":138,"line":356},14,[136,358,322],{"class":146},[136,360,362,365,367,370,374],{"class":138,"line":361},15,[136,363,364],{"class":170},"  set",[136,366,341],{"class":286},[136,368,369],{"class":146},"(",[136,371,373],{"class":372},"s4XuR","value",[136,375,376],{"class":146},") {\n",[136,378,380,383,386,388,391,394,397,400,403,405,408,411,414,416,419,421],{"class":138,"line":379},16,[136,381,382],{"class":174},"    this",[136,384,385],{"class":146},"._role ",[136,387,171],{"class":170},[136,389,390],{"class":146}," (value ",[136,392,393],{"class":170},"===",[136,395,396],{"class":142}," \"admin\"",[136,398,399],{"class":170}," ||",[136,401,402],{"class":146}," value ",[136,404,393],{"class":170},[136,406,407],{"class":142}," \"user\"",[136,409,410],{"class":146},") ",[136,412,413],{"class":170},"?",[136,415,402],{"class":146},[136,417,418],{"class":170},":",[136,420,407],{"class":142},[136,422,147],{"class":146},[136,424,426],{"class":138,"line":425},17,[136,427,428],{"class":146},"  }\n",[136,430,432],{"class":138,"line":431},18,[136,433,434],{"class":146},"};\n",[136,436,438],{"class":138,"line":437},19,[136,439,154],{"emptyLinePlaceholder":153},[136,441,443,446,449,452],{"class":138,"line":442},20,[136,444,445],{"class":146},"console.",[136,447,448],{"class":286},"log",[136,450,451],{"class":146},"(user.fullName); ",[136,453,454],{"class":160},"\u002F\u002F \"John Doe\"\n",[136,456,458,461,463,466,469],{"class":138,"line":457},21,[136,459,460],{"class":146},"user.role ",[136,462,171],{"class":170},[136,464,465],{"class":142}," \"super-admin\"",[136,467,468],{"class":146},"; ",[136,470,471],{"class":160},"\u002F\u002F Geçersiz rol ataması\n",[136,473,475,477,479,482],{"class":138,"line":474},22,[136,476,445],{"class":146},[136,478,448],{"class":286},[136,480,481],{"class":146},"(user.role); ",[136,483,484],{"class":160},"\u002F\u002F \"user\" (setter tarafından kontrol edildi ve varsayılana çekildi)\n",[115,486,488],{"id":487},"_3-objectdefineproperty-ve-nesne-koruma","3. Object.defineProperty() ve Nesne Koruma",[11,490,491,492,495,496,499,500,503],{},"Bir nesneye yeni bir özellik eklerken, bu özelliğin değiştirilip değiştirilemeyeceğini (",[46,493,494],{},"writable","), döngülerde görünüp görünmeyeceğini (",[46,497,498],{},"enumerable",") ve silinip silinemeyeceğini (",[46,501,502],{},"configurable",") hassas bir şekilde belirlememizi sağlar.",[127,505,507],{"className":129,"code":506,"language":131,"meta":132,"style":132},"const car = {};\n\nObject.defineProperty(car, 'wheels', {\n  value: 4,\n  writable: false,     \u002F\u002F Değeri sonradan değiştirilemez\n  enumerable: true,    \u002F\u002F Döngülerde (Object.keys vb.) görünür\n  configurable: false  \u002F\u002F Silinemez veya yeniden tanımlanamaz\n});\n\ncar.wheels = 5; \u002F\u002F Hata vermez ama değer değişmez (strict mode'da hata fırlatır)\nconsole.log(car.wheels); \u002F\u002F 4\n",[46,508,509,523,527,544,554,568,582,592,597,601,616],{"__ignoreMap":132},[136,510,511,514,517,520],{"class":138,"line":139},[136,512,513],{"class":170},"const",[136,515,516],{"class":174}," car",[136,518,519],{"class":170}," =",[136,521,522],{"class":146}," {};\n",[136,524,525],{"class":138,"line":150},[136,526,154],{"emptyLinePlaceholder":153},[136,528,529,532,535,538,541],{"class":138,"line":157},[136,530,531],{"class":146},"Object.",[136,533,534],{"class":286},"defineProperty",[136,536,537],{"class":146},"(car, ",[136,539,540],{"class":142},"'wheels'",[136,542,543],{"class":146},", {\n",[136,545,546,549,552],{"class":138,"line":164},[136,547,548],{"class":146},"  value: ",[136,550,551],{"class":174},"4",[136,553,249],{"class":146},[136,555,556,559,562,565],{"class":138,"line":181},[136,557,558],{"class":146},"  writable: ",[136,560,561],{"class":174},"false",[136,563,564],{"class":146},",     ",[136,566,567],{"class":160},"\u002F\u002F Değeri sonradan değiştirilemez\n",[136,569,570,573,576,579],{"class":138,"line":186},[136,571,572],{"class":146},"  enumerable: ",[136,574,575],{"class":174},"true",[136,577,578],{"class":146},",    ",[136,580,581],{"class":160},"\u002F\u002F Döngülerde (Object.keys vb.) görünür\n",[136,583,584,587,589],{"class":138,"line":192},[136,585,586],{"class":146},"  configurable: ",[136,588,561],{"class":174},[136,590,591],{"class":160},"  \u002F\u002F Silinemez veya yeniden tanımlanamaz\n",[136,593,594],{"class":138,"line":293},[136,595,596],{"class":146},"});\n",[136,598,599],{"class":138,"line":319},[136,600,154],{"emptyLinePlaceholder":153},[136,602,603,606,608,611,613],{"class":138,"line":325},[136,604,605],{"class":146},"car.wheels ",[136,607,171],{"class":170},[136,609,610],{"class":174}," 5",[136,612,468],{"class":146},[136,614,615],{"class":160},"\u002F\u002F Hata vermez ama değer değişmez (strict mode'da hata fırlatır)\n",[136,617,618,620,622,625],{"class":138,"line":330},[136,619,445],{"class":146},[136,621,448],{"class":286},[136,623,624],{"class":146},"(car.wheels); ",[136,626,627],{"class":160},"\u002F\u002F 4\n",[11,629,630],{},"Ayrıca nesneleri tamamen dondurmak veya mühürlemek için şu metotlar eklenmiştir:",[36,632,633,639],{},[39,634,635,638],{},[46,636,637],{},"Object.freeze(obj)",": Nesne üzerinde hiçbir değişiklik yapılmasına izin vermez.",[39,640,641,644],{},[46,642,643],{},"Object.seal(obj)",": Yeni özellik eklenmesini ve silinmesini engeller, ancak mevcut özelliklerin değerleri değiştirilebilir.",[115,646,648],{"id":647},"_4-fonksiyonel-dizi-array-metotları","4. Fonksiyonel Dizi (Array) Metotları",[11,650,651,652,655],{},"Klasik ",[46,653,654],{},"for"," döngüleri yerine dizileri bildirimsel (declarative) bir şekilde işlememizi sağlayan metotlar eklendi:",[36,657,658,664,670],{},[39,659,660,663],{},[14,661,662],{},"map()",": Dizinin her elemanını işleyip yeni bir dizi döndürür.",[39,665,666,669],{},[14,667,668],{},"filter()",": Belirli bir koşulu sağlayan elemanlardan yeni bir dizi oluşturur.",[39,671,672,675],{},[14,673,674],{},"reduce()",": Dizi elemanlarını tek bir değere indirger.",[127,677,679],{"className":129,"code":678,"language":131,"meta":132,"style":132},"var prices = [100, 200, 300, 400];\n\n\u002F\u002F %20 indirimli fiyatları hesapla\nvar discounted = prices.map(function(price) {\n  return price * 0.8;\n}); \u002F\u002F [80, 160, 240, 320]\n\n\u002F\u002F 150 TL üzerindeki fiyatları filtrele\nvar expensive = prices.filter(function(price) {\n  return price > 150;\n}); \u002F\u002F [200, 300, 400]\n",[46,680,681,714,718,723,749,765,773,777,782,805,819],{"__ignoreMap":132},[136,682,683,685,688,690,693,696,698,701,703,706,708,711],{"class":138,"line":139},[136,684,230],{"class":170},[136,686,687],{"class":146}," prices ",[136,689,171],{"class":170},[136,691,692],{"class":146}," [",[136,694,695],{"class":174},"100",[136,697,59],{"class":146},[136,699,700],{"class":174},"200",[136,702,59],{"class":146},[136,704,705],{"class":174},"300",[136,707,59],{"class":146},[136,709,710],{"class":174},"400",[136,712,713],{"class":146},"];\n",[136,715,716],{"class":138,"line":150},[136,717,154],{"emptyLinePlaceholder":153},[136,719,720],{"class":138,"line":157},[136,721,722],{"class":160},"\u002F\u002F %20 indirimli fiyatları hesapla\n",[136,724,725,727,730,732,735,737,739,742,744,747],{"class":138,"line":164},[136,726,230],{"class":170},[136,728,729],{"class":146}," discounted ",[136,731,171],{"class":170},[136,733,734],{"class":146}," prices.",[136,736,62],{"class":286},[136,738,369],{"class":146},[136,740,741],{"class":170},"function",[136,743,369],{"class":146},[136,745,746],{"class":372},"price",[136,748,376],{"class":146},[136,750,751,754,757,760,763],{"class":138,"line":181},[136,752,753],{"class":170},"  return",[136,755,756],{"class":146}," price ",[136,758,759],{"class":170},"*",[136,761,762],{"class":174}," 0.8",[136,764,147],{"class":146},[136,766,767,770],{"class":138,"line":186},[136,768,769],{"class":146},"}); ",[136,771,772],{"class":160},"\u002F\u002F [80, 160, 240, 320]\n",[136,774,775],{"class":138,"line":192},[136,776,154],{"emptyLinePlaceholder":153},[136,778,779],{"class":138,"line":293},[136,780,781],{"class":160},"\u002F\u002F 150 TL üzerindeki fiyatları filtrele\n",[136,783,784,786,789,791,793,795,797,799,801,803],{"class":138,"line":319},[136,785,230],{"class":170},[136,787,788],{"class":146}," expensive ",[136,790,171],{"class":170},[136,792,734],{"class":146},[136,794,65],{"class":286},[136,796,369],{"class":146},[136,798,741],{"class":170},[136,800,369],{"class":146},[136,802,746],{"class":372},[136,804,376],{"class":146},[136,806,807,809,811,814,817],{"class":138,"line":325},[136,808,753],{"class":170},[136,810,756],{"class":146},[136,812,813],{"class":170},">",[136,815,816],{"class":174}," 150",[136,818,147],{"class":146},[136,820,821,823],{"class":138,"line":330},[136,822,769],{"class":146},[136,824,825],{"class":160},"\u002F\u002F [200, 300, 400]\n",[115,827,829],{"id":828},"_5-functionprototypebind","5. Function.prototype.bind()",[11,831,832,833,836,837,839],{},"Bir fonksiyonun içindeki ",[46,834,835],{},"this"," bağlamını (context) kalıcı olarak sabitleyip yeni bir fonksiyon kopyası oluşturur. Özellikle asenkron işlemlerde ",[46,838,835],{}," kayıplarını önlemek için hayat kurtarıcıdır.",[127,841,843],{"className":129,"code":842,"language":131,"meta":132,"style":132},"const module = {\n  x: 42,\n  getX: function() {\n    return this.x;\n  }\n};\n\nconst unboundGetX = module.getX;\nconsole.log(unboundGetX()); \u002F\u002F undefined (Scope kayboldu)\n\nconst boundGetX = unboundGetX.bind(module);\nconsole.log(boundGetX()); \u002F\u002F 42 (Scope module nesnesine sabitlendi)\n",[46,844,845,856,866,878,887,891,895,899,913,930,934,957],{"__ignoreMap":132},[136,846,847,849,852,854],{"class":138,"line":139},[136,848,513],{"class":170},[136,850,851],{"class":174}," module",[136,853,519],{"class":170},[136,855,238],{"class":146},[136,857,858,861,864],{"class":138,"line":150},[136,859,860],{"class":146},"  x: ",[136,862,863],{"class":174},"42",[136,865,249],{"class":146},[136,867,868,871,874,876],{"class":138,"line":157},[136,869,870],{"class":286},"  getX",[136,872,873],{"class":146},": ",[136,875,741],{"class":170},[136,877,290],{"class":146},[136,879,880,882,884],{"class":138,"line":164},[136,881,296],{"class":170},[136,883,299],{"class":174},[136,885,886],{"class":146},".x;\n",[136,888,889],{"class":138,"line":181},[136,890,428],{"class":146},[136,892,893],{"class":138,"line":186},[136,894,434],{"class":146},[136,896,897],{"class":138,"line":192},[136,898,154],{"emptyLinePlaceholder":153},[136,900,901,903,906,908,910],{"class":138,"line":293},[136,902,513],{"class":170},[136,904,905],{"class":174}," unboundGetX",[136,907,519],{"class":170},[136,909,851],{"class":174},[136,911,912],{"class":146},".getX;\n",[136,914,915,917,919,921,924,927],{"class":138,"line":319},[136,916,445],{"class":146},[136,918,448],{"class":286},[136,920,369],{"class":146},[136,922,923],{"class":286},"unboundGetX",[136,925,926],{"class":146},"()); ",[136,928,929],{"class":160},"\u002F\u002F undefined (Scope kayboldu)\n",[136,931,932],{"class":138,"line":325},[136,933,154],{"emptyLinePlaceholder":153},[136,935,936,938,941,943,946,949,951,954],{"class":138,"line":330},[136,937,513],{"class":170},[136,939,940],{"class":174}," boundGetX",[136,942,519],{"class":170},[136,944,945],{"class":146}," unboundGetX.",[136,947,948],{"class":286},"bind",[136,950,369],{"class":146},[136,952,953],{"class":174},"module",[136,955,956],{"class":146},");\n",[136,958,959,961,963,965,968,970],{"class":138,"line":336},[136,960,445],{"class":146},[136,962,448],{"class":286},[136,964,369],{"class":146},[136,966,967],{"class":286},"boundGetX",[136,969,926],{"class":146},[136,971,972],{"class":160},"\u002F\u002F 42 (Scope module nesnesine sabitlendi)\n",[104,974],{},[107,976,978],{"id":977},"es5-vs-es6-karşılaştırması","ES5 vs ES6 Karşılaştırması",[980,981,982,999],"table",{},[983,984,985],"thead",{},[986,987,988,993,996],"tr",{},[989,990,992],"th",{"align":991},"left","Özellik",[989,994,995],{"align":991},"ES5 (2009)",[989,997,998],{"align":991},"ES6 \u002F ES2015 (2015)",[1000,1001,1002,1024,1044,1062,1078],"tbody",{},[986,1003,1004,1010,1016],{},[1005,1006,1007],"td",{"align":991},[14,1008,1009],{},"Değişken Tanımlama",[1005,1011,1012,1013,1015],{"align":991},"Sadece ",[46,1014,230],{}," (Function-scoped)",[1005,1017,1018,69,1021,1023],{"align":991},[46,1019,1020],{},"let",[46,1022,513],{}," (Block-scoped)",[986,1025,1026,1031,1038],{},[1005,1027,1028],{"align":991},[14,1029,1030],{},"String Birleştirme",[1005,1032,1033,1034,1037],{"align":991},"Artı işareti ile (",[46,1035,1036],{},"\"a\" + \"b\"",")",[1005,1039,1040,1041,1037],{"align":991},"Template Literals (Ters tırnak: ",[46,1042,1043],{},"`a ${b}`",[986,1045,1046,1051,1056],{},[1005,1047,1048],{"align":991},[14,1049,1050],{},"Fonksiyonlar",[1005,1052,1053,1055],{"align":991},[46,1054,741],{}," ifadesi",[1005,1057,1058,1059,1037],{"align":991},"Ok Fonksiyonları (Arrow Functions: ",[46,1060,1061],{},"() => {}",[986,1063,1064,1069,1072],{},[1005,1065,1066],{"align":991},[14,1067,1068],{},"Modül Desteği",[1005,1070,1071],{"align":991},"Resmi destek yok (CommonJS \u002F AMD)",[1005,1073,1074,1075,1037],{"align":991},"Yerleşik modül yapısı (",[46,1076,1077],{},"import \u002F export",[986,1079,1080,1085,1088],{},[1005,1081,1082],{"align":991},[14,1083,1084],{},"Sınıf Yapısı",[1005,1086,1087],{"align":991},"Prototip tabanlı nesne türetme",[1005,1089,1090,1093,1094,1037],{"align":991},[46,1091,1092],{},"class"," anahtar kelimesi ve kalıtım (",[46,1095,1096],{},"extends",[104,1098],{},[107,1100,1102],{"id":1101},"sıkça-sorulan-sorular-faq","Sıkça Sorulan Sorular (FAQ)",[115,1104,1106],{"id":1105},"es5-dizi-metotları-klasik-for-döngüsünden-daha-mı-yavaştır","ES5 dizi metotları klasik for döngüsünden daha mı yavaştır?",[11,1108,1109,1110,1112,1113,1115,1116,1118],{},"Evet, teknik olarak ",[46,1111,58],{}," veya ",[46,1114,62],{}," gibi metotlar her eleman için yeni bir fonksiyon çağrısı (callback) yaptığı için klasik ",[46,1117,654],{}," döngüsüne göre milisaniyeler düzeyinde daha yavaştır. Ancak modern JavaScript motorları (V8 gibi) bu farkı optimize eder. Kodun okunabilirliği ve bakımı kolaylığı için fonksiyonel metotları kullanmak neredeyse her zaman daha iyi bir tercihtir.",[115,1120,1122],{"id":1121},"jsonparse-ve-jsonstringify-öncesinde-ne-kullanılıyordu","JSON.parse() ve JSON.stringify() öncesinde ne kullanılıyordu?",[11,1124,1125,1126,1129,1130,1133],{},"ES5 öncesinde JSON tarayıcılar tarafından yerleşik olarak desteklenmiyordu. Geliştiriciler harici kütüphaneler (Douglas Crockford'un ",[46,1127,1128],{},"json2.js"," kütüphanesi gibi) kullanmak ya da güvensiz olan ",[46,1131,1132],{},"eval()"," fonksiyonu ile JSON string'lerini çalıştırmak zorunda kalıyorlardı.",[115,1135,1137],{"id":1136},"trailing-commas-sondaki-virgül-neden-faydalıdır","Trailing Commas (Sondaki Virgül) neden faydalıdır?",[11,1139,1140,1141,1144],{},"Dizi veya nesnelerin son elemanından sonra bırakılan virgüller (",[46,1142,1143],{},"[1, 2, 3,]",") ES5 ile geçerli kabul edilmeye başlandı. Bu sayede Git gibi versiyon kontrol sistemlerinde yeni bir eleman eklendiğinde sadece eklenen satır değişmiş görünür, önceki satırın sonuna virgül eklemek için yapılan değişiklik diff kayıtlarını kirletmez.",[104,1146],{},[107,1148,1150],{"id":1149},"resmi-kaynaklar","Resmi Kaynaklar",[36,1152,1153,1164,1171],{},[39,1154,1155],{},[21,1156,1163],{"href":1157,"rel":1158,"target":1162},"https:\u002F\u002Fwww.ecma-international.org\u002Fpublications-and-standards\u002Fstandards\u002Fecma-262\u002F",[1159,1160,1161],"nofollow","noopener","noreferrer","_blank","ECMA-262 5.1 Edition Standard Specification",[39,1165,1166],{},[21,1167,1170],{"href":1168,"rel":1169,"target":1162},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FReference\u002FGlobal_Objects\u002FObject\u002FdefineProperty",[1159,1160,1161],"MDN Web Docs: Object.defineProperty()",[39,1172,1173],{},[21,1174,1177],{"href":1175,"rel":1176,"target":1162},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FReference\u002FStrict_mode",[1159,1160,1161],"MDN Web Docs: Strict Mode",[1179,1180,1182],"h5",{"id":1181},"bu-yazıda-yapılan-değişiklikler","Bu Yazıda Yapılan Değişiklikler",[36,1184,1185,1188],{},[39,1186,1187],{},"20.06.2026: Yazı içeriği tamamen modernize edildi. Hatalı syntax içeren eski getter\u002Fsetter ve defineProperty kod örnekleri düzeltildi. ES5 vs ES6 karşılaştırma tablosu, performans ve JSON tarihi hakkında SSS (FAQ) alanları ve LLO geliştirmeleri eklendi.",[39,1189,1190],{},"11.05.2022: Başlıklardaki görsel hatalar düzeltildi. Özet bölümü düzenlendi.",[1192,1193,1194],"style",{},"html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":132,"searchDepth":150,"depth":150,"links":1196},[1197,1204,1205,1210],{"id":109,"depth":150,"text":110,"children":1198},[1199,1200,1201,1202,1203],{"id":117,"depth":157,"text":118},{"id":209,"depth":157,"text":210},{"id":487,"depth":157,"text":488},{"id":647,"depth":157,"text":648},{"id":828,"depth":157,"text":829},{"id":977,"depth":150,"text":978},{"id":1101,"depth":150,"text":1102,"children":1206},[1207,1208,1209],{"id":1105,"depth":157,"text":1106},{"id":1121,"depth":157,"text":1122},{"id":1136,"depth":157,"text":1137},{"id":1149,"depth":150,"text":1150},[1212],"technical",null,"2021-10-20","ECMAScript 5 (ES5) ile JavaScript dünyasına katılan strict mode, getter\u002Fsetter, Object.defineProperty ve yeni dizi metotlarını pratik kod örnekleriyle öğrenin.",false,"md","\u002Fimages\u002Fhero\u002Fes5.avif",{},"\u002Ftr\u002Fes5-nedir",{"title":6,"description":1215},"es5-nedir","tr\u002Fes5-nedir",[131,1225,1226],"es5","ecmascript","2022-05-11","0cul-NupcAxeO8ZLxbMj9vDIxGVjPRDTleItEKlsKHE",{"prev":1230,"next":1233,"others":1235,"lucky":1356,"readingTime":164},{"path":1231,"title":1232},"\u002Ftr\u002Fecmascript-nedir-ecmascript-ne-degildir-bilinmesi-gerekenler","ECMAScript Nedir? Bilinmesi Gerekenler...",{"path":23,"title":1234},"ES6 Nedir? ECMAScript 2015 Nedir?",[1236,1239,1242,1245,1248,1251,1254,1257,1260,1263,1266,1269,1272,1275,1278,1281,1284,1287,1290,1293,1296,1299,1302,1305,1308,1311,1314,1317,1320,1323,1326,1329,1332,1335,1338,1341,1344,1347,1350,1353],{"path":1237,"title":1238},"\u002Ftr\u002Fadapter-tasarim-deseni-nedir","Adapter Tasarım Deseni Nedir?",{"path":1240,"title":1241},"\u002Ftr\u002Fnext-js-on-bellegi-nasil-yenilenir-on-demand-cache-regeneration","Next.js Önbelleği Nasıl Yenilenir? \"On-Demand Cache Regeneration\"",{"path":1243,"title":1244},"\u002Ftr\u002Fes17-nedir-ecmascript-2026-nedir","ES17 nedir? ECMAScript 2026 nedir?",{"path":1246,"title":1247},"\u002Ftr\u002Frestapi-ve-hateoas-kavrami","RestApi ve HATEOAS Kavramı",{"path":1249,"title":1250},"\u002Ftr\u002Ftailwind-css-nerede-kullanilir-tailwind-css-nerede-kullanilmaz","Tailwind CSS Nerede Kullanılır? Tailwind CSS Nerede Kullanılmaz?",{"path":1252,"title":1253},"\u002Ftr\u002Fgarbage-collection-ve-golang","Garbage Collection ve Go (Golang)",{"path":1255,"title":1256},"\u002Ftr\u002Fphp-ve-makine-ogrenimi-php-ml-kutuphanesi","PHP ve Makine Öğrenimi: PHP-ML Kütüphanesi ile Pratik Çözümler",{"path":1258,"title":1259},"\u002Ftr\u002Fstrategy-tasarim-deseni-nedir","Strategy Tasarım Deseni Nedir?",{"path":1261,"title":1262},"\u002Ftr\u002Fes10-nedir-ecmascript-2019-nedir","ES10 Nedir? ECMAScript 2019 Nedir?",{"path":1264,"title":1265},"\u002Ftr\u002Fcodeserver-nedir-codeserver-nasil-kurulur","Code-Server Nedir? Bulutta VS Code Geliştirme Ortamı Kurulumu",{"path":1267,"title":1268},"\u002Ftr\u002Fes9-nedir-ecmascript-2018-nedir","ES9 Nedir? ECMAScript 2018 Nedir?",{"path":1270,"title":1271},"\u002Ftr\u002Fes15-nedir-ecmascript-2024-nedir","ES15 nedir? ECMAScript 2024 nedir?",{"path":1273,"title":1274},"\u002Ftr\u002Fdocker-ile-litespeed-enterprise-kurulumu","Docker ile LiteSpeed Enterprise Kurulumu",{"path":1276,"title":1277},"\u002Ftr\u002Fnostalji-ibibik-online","Nostalji: İbibik Online (1998'den Bir Web Macerası)",{"path":1279,"title":1280},"\u002Ftr\u002Fdecorator-tasarim-deseni-nedir","Decorator Tasarım Deseni Nedir?",{"path":1282,"title":1283},"\u002Ftr\u002Ffacade-tasarim-deseni-nedir","Facade Tasarım Deseni Nedir?",{"path":1285,"title":1286},"\u002Ftr\u002Fubuntu-guncellemesi-sonrasi-cyberpanele-ulasilamama-sorunlarini-giderme","Ubuntu Güncellemesi Sonrası CyberPanel'e Ulaşılamama Sorunlarını Giderme",{"path":1288,"title":1289},"\u002Ftr\u002Fmediator-tasarim-deseni-nedir","Mediator Tasarım Deseni Nedir?",{"path":1291,"title":1292},"\u002Ftr\u002Ftasarim-kaliplari-design-patterns-abstract-factory-nedir","Abstract Factory Tasarım Deseni Nedir?",{"path":1294,"title":1295},"\u002Ftr\u002Flinuxda-golang-kurulumu","Linux'ta Golang Kurulumu",{"path":1297,"title":1298},"\u002Ftr\u002Fubuntu-20-04-uzerinde-cyberpanel-kurulumu","Ubuntu 20.04 üzerinde CyberPanel kurulumu",{"path":1300,"title":1301},"\u002Ftr\u002Frest-api-kimlik-dogrulama-nasil-yapilir","REST API Kimlik Doğrulama Nasıl Yapılır?",{"path":1303,"title":1304},"\u002Ftr\u002Fvite-nedir","Vite Nedir? Modern Web Geliştirme ve Paketleme Aracı",{"path":1306,"title":1307},"\u002Ftr\u002Fflyweight-tasarim-deseni-nedir","Flyweight Tasarım Deseni Nedir?",{"path":1309,"title":1310},"\u002Ftr\u002Fwordpress-yonetici-sifresini-wp-cli-kullanarak-sifirlama","WordPress Yönetici Şifresini WP-CLI Kullanarak Sıfırlama",{"path":1312,"title":1313},"\u002Ftr\u002Fself-hosted-api-gateway-nasil-kurulur-kapsamli-rehber","Self-Hosted API Gateway Nasıl Kurulur? Kapsamlı Rehber",{"path":1315,"title":1316},"\u002Ftr\u002Fgoda-iota-nedir-iota-ne-zaman-ve-nerede-kullanilir","Go'da iota Nedir? iota Ne Zaman ve Nerede Kullanılır?",{"path":1318,"title":1319},"\u002Ftr\u002Fcomposite-tasarim-deseni-nedir","Composite Tasarım Deseni Nedir?",{"path":1321,"title":1322},"\u002Ftr\u002Frestful-api-bilesenleri","RESTful API Bileşenleri",{"path":1324,"title":1325},"\u002Ftr\u002Fchain-of-responsibility-deseni-nedir","Chain of Responsibility Deseni Nedir?",{"path":1327,"title":1328},"\u002Ftr\u002Fdocker-ile-rabbitmq-kurulumu","Docker ile RabbitMQ Kurulumu",{"path":1330,"title":1331},"\u002Ftr\u002Ftemiz-moduler-ve-yeniden-kullanilabilir-php-kodu-yazma-rehberi","PHP'de Temiz, Modüler ve Yeniden Kullanılabilir Kod Yazma Rehberi",{"path":1333,"title":1334},"\u002Ftr\u002Fgo-programlama-dilinin-ozellikleri","Go Programlama Dilinin Özellikleri",{"path":1336,"title":1337},"\u002Ftr\u002Ffull-stack-proje-gelistiriyoruz","Full Stack Proje Geliştiriyoruz",{"path":1339,"title":1340},"\u002Ftr\u002Fvue-3-hakkinda-bilmeniz-gerekenler-yenilikler","Vue 3 Hakkında Bilmeniz Gerekenler ve Yenilikler",{"path":1342,"title":1343},"\u002Ftr\u002Fmerhaba-tailwind-css","Merhaba Tailwind CSS",{"path":1345,"title":1346},"\u002Ftr\u002Flitespeed-web-server-performans-artisi","Konfor Alanından Çıkıp, Konforlu Bir VPS'e Geçmek: LiteSpeed Web Server",{"path":1348,"title":1349},"\u002Ftr\u002Fproxy-tasarim-deseni-nedir","Proxy Tasarım Deseni Nedir?",{"path":1351,"title":1352},"\u002Ftr\u002Frest-api-uri-yapisi-nasil-olmali","REST API URI Yapısı Nasıl Olmalı?",{"path":1354,"title":1355},"\u002Ftr\u002Fmutable-ve-immutable-kavrami","Mutable ve Immutable Kavramları Nedir?",{"path":1357,"title":1358},"\u002Ftr\u002Fes16-nedir-ecmascript-2025-nedir","ES16 nedir? ECMAScript 2025 nedir?",[1360,1364,1367,1368],{"path":1361,"title":1362,"date":1363},"\u002Ftr\u002Fes13-nedir-ecmascript-2022-nedir","ES13 nedir? ECMAScript 2022 nedir?","2026-06-20",{"path":1365,"title":1366,"date":1363},"\u002Ftr\u002Fes14-nedir-ecmascript-2023-nedir","ES14 nedir? ECMAScript 2023 nedir?",{"path":1270,"title":1271,"date":1363},{"path":1357,"title":1358,"date":1363},[1370,1374,1378],{"path":1371,"title":1372,"date":1373},"\u002Ftr\u002Froot-yetkisi-olmayan-kullanici-ssh-baglantisini-ssh-baglantisini-ssh-anahtari-ile-nasil-kurabilir","Root yetkisi olmayan kullanıcı, SSH bağlantısını, SSH anahtarı ile nasıl kurabilir?","2021-02-20",{"path":1375,"title":1376,"date":1377},"\u002Ftr\u002Fmerhaba-phalcon-framework","Merhaba Phalcon Framework","2020-12-07",{"path":1379,"title":1380,"date":1381},"\u002Ftr\u002Fjwt-guvenli-mi-guvenlik-acigi-olusturmayin","JWT Güvenli Derken Güvenlik Açığı Oluşturmayın","2021-01-08",1782142001294]