﻿
{"id":8493,"date":"2018-07-09T14:27:21","date_gmt":"2018-07-09T14:27:21","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=8493"},"modified":"2018-07-09T14:27:21","modified_gmt":"2018-07-09T14:27:21","slug":"ecmascript-6-let-degisken-tipi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/ecmascript-6-let-degisken-tipi\/","title":{"rendered":"ECMAScript 6 &#8211; let De\u011fi\u015fken Tipi"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde JavaScript kurallar\u0131n\u0131 belirlemi\u015f olan ECMAScript 6 standard\u0131nda let de\u011fi\u015fkeni \u00fczerine konu\u015fuyor olaca\u011f\u0131z. Biliyoruz ki, JavaScript dilinde &#8220;var&#8221; de\u011fi\u015fken tipi ile tan\u0131mlanan t\u00fcm de\u011fi\u015fkenler genel scope i\u00e7erisinde varsay\u0131lmaktad\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nfor (let index = 0; index &lt; 10; index++) {\r\n    if (index &lt; 5) {\r\n        var x = index;\r\n    }\r\n}\r\n\r\nconsole.log(x);\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer for d\u00f6ng\u00fcs\u00fc i\u00e7erisindeki if scope&#8217;u i\u00e7erisinde tan\u0131mlanan &#8220;var&#8221; tipinden &#8220;x&#8221; de\u011fi\u015fkenine en d\u0131\u015ftan eri\u015febilmekteyiz.<\/p>\n<p>Bu durum biz yaz\u0131l\u0131mc\u0131lar\u0131 bir\u00e7ok olas\u0131 hatayla kar\u015f\u0131 kar\u015f\u0131ya getirmektedir ve daha da \u00f6nemlisi yaz\u0131l\u0131m a\u00e7\u0131s\u0131ndan performans kayb\u0131na sebep olmaktad\u0131r.<\/p>\n<p>Nihayetinde bir de\u011fi\u015fkene tan\u0131mland\u0131\u011f\u0131 scope&#8217;dan ve o scope&#8217;un kapsad\u0131\u011f\u0131 alt scopelardan eri\u015filebiliyor olmas\u0131 gerekmekte ve bu gereklilik algoritma a\u00e7\u0131s\u0131ndan da sa\u011fl\u0131kl\u0131 bir s\u00fcre\u00e7 ge\u00e7irilmesi i\u00e7in esas te\u015fkil etmektedir.<\/p>\n<p>Bunlar\u0131n yan\u0131nda, JavaScript&#8217;te &#8220;var&#8221; de\u011fi\u015fken tipi ile birden fazla ayn\u0131 isimde de\u011fi\u015fken tan\u0131mlayabilmekteyiz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar x = 3;\r\nvar x = 5;\r\n\r\nconsole.log(x);\r\n<\/pre>\n<p>Yani anlayaca\u011f\u0131n\u0131z programlaman\u0131n temel prensiplerine ayk\u0131r\u0131 olan iki kritik hamleyi JavaScript &#8220;var&#8221; de\u011fi\u015fken tipiyle teredd\u00fcts\u00fcz sa\u011flamaktad\u0131r.<\/p>\n<p>\u0130\u015fte &#8220;var&#8221; de\u011fi\u015fkeninin bu ayk\u0131r\u0131l\u0131klar\u0131na mahal vermemek ve olas\u0131 hatalar\u0131 ortadan kald\u0131rmak i\u00e7in &#8220;let&#8221; de\u011fi\u015fken tipi olu\u015fturulmu\u015ftur.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nfor (let index = 0; index &lt; 10; index++) {\r\n    if (index &lt; 5) {\r\n        let x = index;\r\n        {\r\n            {\r\n                {\r\n                    console.log(x);\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>&#8220;let&#8221; de\u011fi\u015fken tipi, bildi\u011finiz programlama prensiplerine uygun davran\u0131\u015f sergileyebilen bir de\u011fi\u015fken t\u00fcr\u00fcd\u00fcr. Yukar\u0131da g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi &#8220;let&#8221; ile tan\u0131mlanan de\u011fi\u015fken sade ve sadece ya tan\u0131mland\u0131\u011f\u0131 scope&#8217;da ya da o scope&#8217;un kapsad\u0131\u011f\u0131 alt scopelardan eri\u015filebilir.<\/p>\n<p>Ya da;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nlet x = 3;\r\nx = 5;\r\nconsole.log(x);\r\n<\/pre>\n<p>ayn\u0131 isimde birden fazla de\u011fi\u015fken tan\u0131mlanmas\u0131na izin vermeyece\u011finden dolay\u0131 yaz\u0131l\u0131msal s\u00fcre\u00e7, algoritmik olarak daha sa\u011fl\u0131kl\u0131 bir \u015fekilde seyr edecektir.<\/p>\n<blockquote><p><em><strong>Art\u0131k &#8220;var&#8221; ge\u00e7mi\u015fte kalm\u0131\u015ft\u0131r. Devir daha \u00e7a\u011fda\u015f olan &#8220;let&#8221; de\u011fi\u015fken tipinin devridir.<\/strong><\/em><\/p><\/blockquote>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde JavaScript kurallar\u0131n\u0131 belirlemi\u015f olan ECMAScript 6 standard\u0131nda let de\u011fi\u015fkeni \u00fczerine konu\u015fuyor olaca\u011f\u0131z. Biliyoruz ki, JavaScript dilinde &#8220;var&#8221; de\u011fi\u015fken tipi ile tan\u0131mlanan t\u00fcm de\u011fi\u015fkenler genel scope i\u00e7erisinde varsay\u0131lmaktad\u0131r. for (let index =&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":8497,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2443],"tags":[2441,2440,2442,2446,2445,2444],"class_list":["post-8493","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ecmascript-6","tag-ecmascript","tag-ecmascript-6","tag-ecmascript-6-nedir","tag-let","tag-let-degisken","tag-let-degisken-tipi"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=8493"}],"version-history":[{"count":4,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8493\/revisions"}],"predecessor-version":[{"id":8498,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8493\/revisions\/8498"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/8497"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=8493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=8493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=8493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}