CINXE.COM

<!DOCTYPE html><html lang="tr" data-theme-enabled="1"><head><script>window.currentUser = null;</script><script>window.shopCurrency = "EUR";</script><script>window.localCurrency = "TRY";</script><script>window.countryCode = "tr";</script><script>window.rateShopTo = {"TRY":43.23806778184531,"EUR":1,"USD":1.137241121274256,"AMD":443.83469404233495};</script><title itemprop="name">Karakter Dizisi - Strings</title><link href="/pack/styles.100020a0bc7cf13be729.css" rel="stylesheet"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes, minimum-scale=1.0"><meta name="apple-mobile-web-app-capable" content="yes"><!-- chrome autotranslate is enabled only for "en" main version--><meta name="google" content="notranslate"><script>if (window.devicePixelRatio > 1) document.cookie = 'pixelRatio=' + window.devicePixelRatio + ';path=/;expires=Tue, 19 Jan 2038 03:14:07 GMT';</script><link href="//fonts.googleapis.com/css?family=Open+Sans:bold,italic,bolditalic" rel="stylesheet"><link rel="apple-touch-icon-precomposed" href="/img/favicon/apple-touch-icon-precomposed.png"><link rel="canonical" href="https://tr.javascript.info/string"><meta name="msapplication-TileColor" content="#222A2C"><meta name="msapplication-TileImage" content="/img/favicon/tileicon.png"><link rel="icon" href="/img/favicon/favicon.png"><meta itemprop="image" content="https://tr.javascript.info/img/site_preview_en_512x512.png"><meta property="og:title" content="Karakter Dizisi - Strings"><meta property="og:image" content="https://tr.javascript.info/img/site_preview_en_1200x630.png"><meta property="og:image:type" content="image/png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="fb:admins" content="100001562528165"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Karakter Dizisi - Strings"><meta name="twitter:site" content="@iliakan"><meta name="twitter:creator" content="@iliakan"><meta name="twitter:image" content="https://tr.javascript.info/img/site_preview_en_512x512.png"><meta name="google-adsense-account" content="ca-pub-6204518652652613"><link rel="prev" href="/number"><link rel="next" href="/array"><script data-collect-dnt="true" async src="https://scripts.simpleanalyticscdn.com/latest.js"></script><script>window.GA_ID = "UA-2056213-15";</script><script>window.YANDEX_METRIKA_ID = 32184394;</script><script>{function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-2LWB61WGYJ")}</script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-2LWB61WGYJ"></script><script>window.metrika={reachGoal:function(){}},window.yandex_metrika_callbacks=[function(){try{window.metrika=new Ya.Metrika({id:YANDEX_METRIKA_ID,webvisor:!0,clickmap:!0,params:{user:window.currentUser&&window.currentUser.id}}),metrika.trackLinks({delay:150}),window.addEventListener("error",function(r){window.metrika.reachGoal("JSERROR",{src:(r.filename||r.errorUrl)+": "+(r.lineno||r.errorLine),stack:r.stack||r.error&&r.error.stack,message:r.message})})}catch(r){}}];</script><script src="//mc.yandex.ru/metrika/watch.js" async></script><script>window.RECAPTCHA_ID = "6LfmLAEVAAAAAJMykMnf7aY8nkyTRmYi2ynx51R1";</script><script src="/pack/init.6423bccabee4f56b6ff8.js"></script><script src="/pack/head.fb50118fab5c8ea51243.js" defer></script><meta property="og:title" content="Karakter Dizisi - Strings"><meta property="og:type" content="article"><script src="/pack/tutorial.ba5237b93f596f9d03dc.js" defer></script><script src="/pack/footer.59b83436a1264feec8f6.js" defer></script></head><body class="no-icons"><script>window.fontTest();</script><div class="page-wrapper page-wrapper_sidebar_on"><!--[if IE]><div style="color:red;text-align:center">Üzgünüz, Internet Explorer desteklenmemektedi lütfen daha yeni bir tarayıcı kullanın.</div><![endif]--><div class="sitetoolbar sitetoolbar_tutorial"><script>window.langs = [{"code":"ar","name":"Arabic"},{"code":"az","name":"Azerbaijani"},{"code":"bg","name":"Bulgarian"},{"code":"bn","name":"Bengali"},{"code":"bs","name":"Bosnian"},{"code":"ca","name":"Catalan"},{"code":"cs","name":"Czech"},{"code":"da","name":"Danish"},{"code":"de","name":"German"},{"code":"el","name":"Greek"},{"code":"en","name":"English"},{"code":"es","name":"Spanish"},{"code":"fa","name":"Persian (Farsi)"},{"code":"fi","name":"Finnish"},{"code":"fr","name":"French"},{"code":"he","name":"Hebrew"},{"code":"hi","name":"Hindi"},{"code":"hr","name":"Croatian"},{"code":"hu","name":"Hungarian"},{"code":"hy","name":"Armenian"},{"code":"id","name":"Indonesian"},{"code":"it","name":"Italian"},{"code":"ja","name":"Japanese"},{"code":"ka","name":"Georgian"},{"code":"kk","name":"Kazakh"},{"code":"km","name":"Central Khmer"},{"code":"ko","name":"Korean"},{"code":"ku","name":"Kurdish"},{"code":"ky","name":"Kyrgyz"},{"code":"lt","name":"Lithuanian"},{"code":"me","name":"Montenegrin"},{"code":"ml","name":"Malayalam"},{"code":"ms","name":"Malay"},{"code":"my","name":"Burmese"},{"code":"nl","name":"Dutch"},{"code":"no","name":"Norvegian"},{"code":"pa","name":"Punjabi"},{"code":"pl","name":"Polish"},{"code":"pt","name":"Portuguese"},{"code":"ro","name":"Romanian"},{"code":"ru","name":"Russian"},{"code":"si","name":"Sinhala"},{"code":"sk","name":"Slovak"},{"code":"sl","name":"Slovenian"},{"code":"sq","name":"Albanian"},{"code":"sr","name":"Serbian"},{"code":"ta","name":"Tamil"},{"code":"te","name":"Telugu"},{"code":"test","name":"Test"},{"code":"th","name":"Thai"},{"code":"tk","name":"Turkmen"},{"code":"tr","name":"Turkish"},{"code":"ug","name":"Uyghur"},{"code":"uk","name":"Ukrainian"},{"code":"ur","name":"Urdu"},{"code":"uz","name":"Uzbek"},{"code":"v2","name":"v2"},{"code":"vi","name":"Vietnamese"},{"code":"zh-hant","name":"Chinese Traditional"},{"code":"zh","name":"Chinese"}];</script><script>window.lang = "tr";</script><div class="sitetoolbar__content"><div class="sitetoolbar__lang-switcher"><button class="sitetoolbar__dropdown-button" data-dropdown-toggler>TR</button><div class="sitetoolbar__dropdown-wrap"><div class="sitetoolbar__dropdown-body"><div class="sitetoolbar__lang-switcher-body"><div class="supported-langs supported-langs_toolbar"><div class="supported-langs__container"><ul class="supported-langs__list" style="height:200px"><li class="supported-langs__item"><a class="supported-langs__link" href="https://ar.javascript.info/string"><span class="supported-langs__brief">AR</span><span class="supported-langs__title">عربي</span></a></li><li class="supported-langs__item"><a class="supported-langs__link" href="https://javascript.info/string"><span class="supported-langs__brief">EN</span><span class="supported-langs__title">English</span></a></li><li class="supported-langs__item"><a class="supported-langs__link" href="https://es.javascript.info/string"><span class="supported-langs__brief">ES</span><span class="supported-langs__title">Español</span></a></li><li class="supported-langs__item"><a class="supported-langs__link" href="https://fa.javascript.info/string"><span class="supported-langs__brief">FA</span><span class="supported-langs__title">فارسی</span></a></li><li class="supported-langs__item"><a class="supported-langs__link" href="https://fr.javascript.info/string"><span class="supported-langs__brief">FR</span><span class="supported-langs__title">Français</span></a></li><li class="supported-langs__item"><a class="supported-langs__link" href="https://id.javascript.info/string"><span class="supported-langs__brief">ID</span><span class="supported-langs__title">Indonesia</span></a></li></ul><ul class="supported-langs__list" style="height:200px"><li class="supported-langs__item"><a class="supported-langs__link" href="https://it.javascript.info/string"><span class="supported-langs__brief">IT</span><span class="supported-langs__title">Italiano</span></a></li><li class="supported-langs__item"><a class="supported-langs__link" href="https://ja.javascript.info/string"><span class="supported-langs__brief">JA</span><span class="supported-langs__title">日本語</span></a></li><li class="supported-langs__item"><a class="supported-langs__link" href="https://ko.javascript.info/string"><span class="supported-langs__brief">KO</span><span class="supported-langs__title">한국어</span></a></li><li class="supported-langs__item"><a class="supported-langs__link" href="https://learn.javascript.ru/string"><span class="supported-langs__brief">RU</span><span class="supported-langs__title">Русский</span></a></li><li class="supported-langs__item supported-langs__item_current"><a class="supported-langs__link" href="https://tr.javascript.info/string"><span class="supported-langs__brief">TR</span><span class="supported-langs__title">Türkçe</span></a></li><li class="supported-langs__item"><a class="supported-langs__link" href="https://uk.javascript.info/string"><span class="supported-langs__brief">UK</span><span class="supported-langs__title">Українська</span></a></li></ul><ul class="supported-langs__list" style="height:20px"><li class="supported-langs__item"><a class="supported-langs__link" href="https://zh.javascript.info/string"><span class="supported-langs__brief">ZH</span><span class="supported-langs__title">简体中文</span></a></li></ul></div><div class="supported-langs__text"><p>Bu açık-kaynaklı projenin tüm dünyada kullanılabilir olmasını istiyoruz.</p> <p>Kendi dilinizde çeviriye <a href="https://javascript.info/translate">yardım edebilirsiniz</a>!</p> </div></div></div></div></div></div><div class="sitetoolbar__logo-wrap"><a class="sitetoolbar__link sitetoolbar__link_logo" href="/"><img class="sitetoolbar__logo sitetoolbar__logo_normal" src="/img/sitetoolbar__logo_en.svg" width="200" alt="" role="presentation"/><img class="sitetoolbar__logo sitetoolbar__logo_normal sitetoolbar__logo_dark" src="/img/sitetoolbar__logo_en-white.svg" width="200" alt="" role="presentation"/><img class="sitetoolbar__logo sitetoolbar__logo_small" src="/img/sitetoolbar__logo_small_en.svg" width="70" alt="" role="presentation"/><img class="sitetoolbar__logo sitetoolbar__logo_small sitetoolbar__logo_dark" src="/img/sitetoolbar__logo_small_en-white.svg" width="70" alt="" role="presentation"/><script>Array.prototype.forEach.call(document.querySelectorAll("img.sitetoolbar__logo"),function(e){let t=document.createElement("object");t.type="image/svg+xml",t.className=e.className,t.style.cssText="left:0;top:0;position:absolute",t.onload=function(){t.onload=null,e.style.visibility="hidden"},t.data=e.src,e.parentNode.insertBefore(t,e)});</script></a></div><div class="sitetoolbar__nav-toggle-wrap"><button class="sitetoolbar__nav-toggle" type="button"></button></div><nav class="sitetoolbar__sections"><ul class="sitetoolbar__sections-list"></ul></nav><div class="sitetoolbar__right-button-wrap"><a class="sitetoolbar-right-button sitetoolbar-right-button_courses" href="/ebook"><span class="sitetoolbar-right-button__extra-text">Satın al</span>EPUB/PDF</a></div><div class="sitetoolbar__theme-switcher"><div class="theme-changer"><label class="theme-changer__label" for="theme-changer-input" data-tooltip="Change theme"><input class="theme-changer__input" type="checkbox" id="theme-changer-input" data-theme-changer="data-theme-changer"/><span class="theme-changer__icon theme-changer__icon_light-theme"></span><span class="theme-changer__icon theme-changer__icon_dark-theme"></span></label></div></div><div class="sitetoolbar__search-wrap"><div class="sitetoolbar__search-content"><button class="sitetoolbar__search-toggle" type="button"></button><form class="sitetoolbar__search" method="GET" action="/search"><div class="sitetoolbar__search-input"><div class="text-input"><input class="text-input__control" name="query" placeholder="Javascript.info'da ara" required="required" type="text"/></div><button class="sitetoolbar__find" type="submit">Ara</button></div></form></div></div></div><div class="tablet-menu"><div class="tablet-menu__line"><div class="tablet-menu__content"><form class="tablet-menu-search" action="/search/"><input class="tablet-menu-search__input" type="search" name="query" placeholder="Eğitimde ara" required="required"/><button class="tablet-menu-search__button" type="submit" name="type" value="articles">Ara</button></form></div></div><div class="tablet-menu__line"><div class="tablet-menu__content"><a class="map" href="/tutorial/map" data-action="tutorial-map"><span class="map__text">Eğitim haritası</span></a></div></div><div class="tablet-menu__line"><div class="tablet-menu__content"><div class="theme-changer theme-changer_tablet-menu theme-changer_has-label"><label class="theme-changer__label" for="theme-changer-input-tablet" data-tooltip="Change theme"><input class="theme-changer__input" type="checkbox" id="theme-changer-input-tablet" data-theme-changer="data-theme-changer"/><span class="theme-changer__icon theme-changer__icon_light-theme"></span><span class="theme-changer__icon theme-changer__icon_dark-theme"></span><span class="theme-changer__label-text theme-changer__label-text_light-theme">Light theme</span><span class="theme-changer__label-text theme-changer__label-text_dark-theme">Dark theme</span></label></div></div></div><div class="tablet-menu__line"><div class="tablet-menu__content"><div class="share-icons"><span class="share-icons__title">Paylaş</span><a class="share share_tw" href="https://twitter.com/share?url=https%3A%2F%2Ftr.javascript.info%2Fstring" rel="nofollow"></a><a class="share share_fb" href="https://www.facebook.com/sharer/sharer.php?s=100&amp;p%5Burl%5D=https%3A%2F%2Ftr.javascript.info%2Fstring" rel="nofollow"></a></div></div></div><div class="tablet-menu__line"><div class="tablet-menu__content"><select class="tablet-menu__nav input-select input-select input-select_small" onchange="if(this.value) window.location.href=this.value"><option value="https://ar.javascript.info/string">عربي</option><option value="https://javascript.info/string">English</option><option value="https://es.javascript.info/string">Español</option><option value="https://fa.javascript.info/string">فارسی</option><option value="https://fr.javascript.info/string">Français</option><option value="https://id.javascript.info/string">Indonesia</option><option value="https://it.javascript.info/string">Italiano</option><option value="https://ja.javascript.info/string">日本語</option><option value="https://ko.javascript.info/string">한국어</option><option value="https://learn.javascript.ru/string">Русский</option><option value="https://tr.javascript.info/string" selected>Türkçe</option><option value="https://uk.javascript.info/string">Українська</option><option value="https://zh.javascript.info/string">简体中文</option></select></div></div></div><progress class="tutorial-progress" data-sticky value="36" max="86" data-tooltip="86'in 36'i dersi"></progress></div><div class="page page_sidebar_on page_inner_padding"><script>if(localStorage.noSidebar){document.querySelector(".page").classList.remove("page_sidebar_on");let e=document.querySelector(".page-wrapper");e&&e.classList.remove("page-wrapper_sidebar_on")}setTimeout(function(){document.querySelector(".page").classList.add("page_sidebar-animation-on")});</script><div class="page__inner"><main class="main main_width-limit"><header class="main__header"><div class="main__header-inner"><div class="main__header-group"><ol class="breadcrumbs"><li class="breadcrumbs__item breadcrumbs__item_home"><a class="breadcrumbs__link" href="/"><span class="breadcrumbs__hidden-text">Eğitim</span></a></li><li class="breadcrumbs__item" id="breadcrumb-1"><a class="breadcrumbs__link" href="/js"><span>JavaScript Dili</span></a></li><li class="breadcrumbs__item" id="breadcrumb-2"><a class="breadcrumbs__link" href="/data-types"><span>Veri Tipleri</span></a></li><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Eğitim","item":"https://tr.javascript.info/"},{"@type":"ListItem","position":2,"name":"JavaScript Dili","item":"https://tr.javascript.info/js"},{"@type":"ListItem","position":3,"name":"Veri Tipleri","item":"https://tr.javascript.info/data-types"}]}</script></ol><div class="updated-at" data-tooltip="Son güncelleme 1 Ekim 2022"><div class="updated-at__content">1 Ekim 2022</div></div></div><h1 class="main__header-title">Karakter Dizisi - Strings</h1></div></header><div class="content"><article class="formatted" itemscope itemtype="http://schema.org/TechArticle"><meta itemprop="name" content="Karakter Dizisi - Strings"><div itemprop="author" itemscope itemtype="http://schema.org/Person"><meta itemprop="email" content="iliakan@gmail.com"><meta itemprop="name" content="Ilya Kantor"></div><div itemprop="articleBody"><p>JavaScript metinsel değerleri karakter dizisi olarak tutar. Bir karakter ile (char) karakter dizisi (string) arasında bir fark yoktur.</p> <p>Karakter dizisi formatı her zmaan <a href="https://en.wikipedia.org/wiki/UTF-16">UTF-16</a>’dır ve sayfanın karakter setine bağlı değildir.</p> <cut> <h2><a class="main__anchor" name="trnak-iaretleri" href="#trnak-iaretleri">Tırnak İşaretleri</a></h2><p>Tekrar hatırlayacak olursanız, Karakter dizisi tek tırnak ve çift tırnak ile açılıp kapatılabilir. :</p> <div id="19mku99p8i" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let tek = 'tek-tırnak'; let cift = &quot;çift-tırnak&quot;; let us_isareti = `üs işareti`; // Backticks</code></pre> </div> </div> </div><p>Tek ve çift tırnak zaten aynıydı. Üs işareti ise JavaScript ifadelerini karakter dizisine yerleştirmenizi sağlar. Bu fonksiyon çağrısı dahil her şey olabilir:</p> <div id="isgtkby9nm" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>function toplam(a, b) { return a + b; } alert(`1 + 2 = ${toplam(1, 2)}.`); // 1 + 2 = 3.</code></pre> </div> </div> </div><p>Üs işaretinin diğer avantajı ise birkaç satırdan oluşan bir karakter dizisini yazabilmeniz:</p> <div id="01wri2ux2e" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let davetliListesi = `Davetliler: * İhsan * Cemal * Muzaffer `; alert(davetliListesi); // birçok satırdan oluşan davetiye listesi</code></pre> </div> </div> </div><p>Eğer yukarıdaki şekilde tek veya çift tırnak kullanmaya kalkarsanız hata alırsınız:</p> <div id="nzc2zz3tf5" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let davetliListesi = &quot;Davetliler: // Error: Unexpected token ILLEGAL * İhsan&quot;;</code></pre> </div> </div> </div><p>Tek tırnak ve çift tırnak dil ilk yazılmaya başlandığı, çoklu satırların hesaba katılmadığı zamanlardan kalmadır. Garip tırnak ise ( alt + , ) çok sonraları oluşturulduğundan çok yönlüdür.</p> <p>İlk üs işareti öncesinde “şablon fonksiyonu” tanımlanması da mümkündür. Yazımı : <code>func`string`</code> şeklindedir. <code>func</code> fonksiyonu otomatik olarak çağrılır, karakter dizisi ile ve içine gömülü ifadeyi alır ve çalıştırır. Bunun ile ilgili daha fazla bilgiyi <a href="https://developer.mozilla.org/tr/docs/Web/Reference/Template_literals#Tagged_template_literals">dökümanda</a> bulabilirsiniz. Buna “etiketmiş şablon” (tagged templates) denir. Bu şekilde karakter dizilerini özel temalar içerisinde veya diğer fonksiyonlarda kullanmak daha kolay olur, fakat yine de nadiren kullanılırlar.</p> <h2><a class="main__anchor" name="zel-karakterler" href="#zel-karakterler">Özel Karakterler</a></h2><p>“yeni satır” <code>\n</code> karakterini kullanarak çift tırnaklı karakter dizisi içerisinde birçok satırdan oluşan bir metin yazılabilir:</p> <div id="givqbv6b7j" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let davetliListesi = &quot;Davetliler:\n * İhsan\n * Cemal\n * Muzaffer&quot;; alert(davetliListesi); // birçok satırdan oluşan davetiye listesi</code></pre> </div> </div> </div><p>Örneğin, aşağıdaki iki satırın çıktısı aynı olacaktır:</p> <div id="fz6rwlakw1" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( &quot;Merhaba\nDünya&quot; ); // &quot;yeni satır&quot; sambolü ile iki satır. // üs işareti ile iki satır ( altgr + , ) alert( `Merhaba Dünya` );</code></pre> </div> </div> </div><p>“Yeni satır” karakterine göre daha az kullanılan “özel” karakterler bulunmaktadır:</p> <table> <thead> <tr> <th>Karakter</th> <th>Açıklama</th> </tr> </thead> <tbody> <tr> <td><code>\b</code></td> <td>Backspace</td> </tr> <tr> <td><code>\f</code></td> <td>Form feed</td> </tr> <tr> <td><code>\n</code></td> <td>Yeni Satır</td> </tr> <tr> <td><code>\r</code></td> <td>Carriage return</td> </tr> <tr> <td><code>\t</code></td> <td>Tab</td> </tr> <tr> <td><code>\uNNNN</code></td> <td>hex kodu ile bir Unicode <code>NNNN</code>, örneğin <code>\u00A9</code> – <code>©</code> kopyalama hakkı için kullanılan işaret. Kesinlikle 4 basamaklı hex değeri olmalıdır.</td> </tr> <tr> <td><code>\u{NNNNNNNN}</code></td> <td>Bazı karakterler nadirde olsa iki Unicode sembolü ile ifade edilirler. 4 bytten oluşan uzun bir yazımı vardır. Karakterlerin süslü parantez içine alınması gerekmektedir.</td> </tr> </tbody> </table> <p>Unicode örnekleri:</p> <div id="rtiboohzyb" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( &quot;\u00A9&quot; ); // © alert( &quot;\u{20331}&quot; ); // 佫, Uzun bir çince hiyerograf (uzun Unicode) alert( &quot;\u{1F60D}&quot;); // 😍, gülen yüz sembolü (uzun Unicode)</code></pre> </div> </div> </div><p>Tüm özel karakterler her zaman <code>\</code> karakteri ile başlarlar. Karakterler normal akışında giderken başka bir iş yapması için var olan işlemi kesmesinden dolayı “kesme karakteri” denebilir…</p> <p>Karakter dizisi içinde kesme işareti kullanmak istersek bu işaret yardımıyla yaparız.</p> <p>Örneğin:</p> <div id="zl5fr2t6vu" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( 'N\'aber canım - Tavşan !' ); // N'aber canım - Tavşan !</code></pre> </div> </div> </div><p>Gördüğünüz gibi <code>\'</code> kullanarak karakter dizisinin bitmesi engellendi.</p> <p>Tabi bu sadece başlangıç karakteri <code>'</code> ise geçerli. Daha düzgün bir çözüm çift tırnak kullanmak olacaktır:</p> <div id="hnxntgrh7s" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( &quot;N'aber canım - Tavşan!&quot; ); // N'aber canım - Tavşan!</code></pre> </div> </div> </div><p>Dikkat edeceğiniz üzere <code>\</code> JavaScript’in doğru okuması amacıyladır. Ekranda görünmez.</p> <p>Peki gerçekten <code>\</code> gösterilmek istenirse ne yapılmalı ?</p> <p>Bu da mümkün, bunun için <code>\\</code> kullanılmalı:</p> <div id="4j5mtdl1wc" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( `\\` ); // \</code></pre> </div> </div> </div><h2><a class="main__anchor" name="karakter-dizisi-uzunluu" href="#karakter-dizisi-uzunluu">Karakter dizisi uzunluğu</a></h2><p><code>length</code> özelliği karakter dizisinin uzunluğunu verir.</p> <div id="0jkqhl80c8" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( `Naber\n`.length ); // 6</code></pre> </div> </div> </div><p>Dikkat ederseniz <code>\n</code> “özel karakter” olduğundan dolayı bir karakter olarak tanımlandı.</p> <div class="important important_warn"> <div class="important__header"><span class="important__type"><code>length</code> bir özelliktir</span></div> <div class="important__content"><p>Genelde başka diller ile çalışmış programcılar yanlışlıkla <code>str.length</code> yerine <code>str.length()</code> metodunu çağırmaktadırlar. Böyle bir metod yoktur.</p> <p><code>str.length</code> sayısal bir değerdir, fonksiyon değildir! Sonunda parantez açıp kapanmaz.</p> </div></div> <h2><a class="main__anchor" name="karakterlere-eriim" href="#karakterlere-eriim">Karakterlere erişim</a></h2><p>İstediğiniz pozisyondaki karakteri alabilmek için köşeli parantez içerisinde pozisyonu neresiyse onu yazın <code>[poz]</code> veya bunun yerine <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/charAt">str.charAt(pos)</a> metodunu da kullanabilirsiniz. İlk karakter 0. pozisyondur:</p> <div id="1t7td6w6q9" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = `Selam`; // ilk karakter alert( str[0] ); // S alert( str.charAt(0) ); // S // son karakter alert( str[str.length - 1] ); // m</code></pre> </div> </div> </div><p>Köşeli parantez karakter almanın modern yoludur, <code>charAt</code> ilk metodlardandır.</p> <p>Aralarındaki tek fark <code>[]</code> eğer karakteri bulamaz ise <code>undefined</code> döner. Fakat <code>charAt</code> boş karakter döner:</p> <div id="y8va47khnb" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = `Selam`; alert( str[1000] ); // undefined alert( str.charAt(1000) ); // '' (boş karakter)</code></pre> </div> </div> </div><p>Karakterleri döngüye sokmak da mümkündür.</p> <div id="x7udew8dqj" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>for(let karakter of &quot;Selam&quot;) { alert(karakter); // S,e,l,a,m (karakter önce &quot;S&quot;, sonra &quot;e&quot;, sonra &quot;a&quot; vs) }</code></pre> </div> </div> </div><h2><a class="main__anchor" name="karakterler-tanmlandktan-sonra-deitirilemezler-immutable" href="#karakterler-tanmlandktan-sonra-deitirilemezler-immutable">Karakterler tanımlandıktan sonra değiştirilemezler ( immutable )</a></h2><p>JavaScript dilinde karakter dizisi değiştirilemez. Mümkün değildir.</p> <p>Örnek ile açıklamak gerekirse:</p> <div id="6zgae3122e" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = 'Selam'; str[0] = 's'; // hata alert( str[0] ); // çalışmaz, değişiklik olmaz</code></pre> </div> </div> </div><p>Bunun çüzümü ise yeni bir karakter dizisi atayıp <code>str</code>’yi buna atamaktır.</p> <p>Örneğin:</p> <div id="enrpsqn7iq" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = 'Selam'; str = str[0] + 'ELAM' ; // karakter dizisini tamamen değiştir. alert( str ); // SELAM</code></pre> </div> </div> </div><p>Bir dahaki bölümde bunun ile ilgili daha fazla örneğe denk geleceksiniz.</p> <h2><a class="main__anchor" name="harf-ilemleri" href="#harf-ilemleri">Harf işlemleri</a></h2><p>Küçük harfe çevirmek için <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase">toLowerCase()</a> ve büyük harfe çevirmek için <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase">toUpperCase()</a> metodları kullanılabilir.</p> <div id="492esqtbg4" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( 'Arayüz'.toUpperCase() ); // ARAYÜZ alert( 'Arayüz'.toLowerCase() ); // arayüz</code></pre> </div> </div> </div><p>veya, sadece baş harfini alıp küçük harf olmasını istiyorsanız istiyorsanız:</p> <div id="isswhq5ujm" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( 'Arayüz'[0].toLowerCase() ); // 'a'</code></pre> </div> </div> </div><h2><a class="main__anchor" name="karakter-dizisi-iinde-baka-bir-karakter-arama" href="#karakter-dizisi-iinde-baka-bir-karakter-arama">Karakter dizisi içinde başka bir karakter arama</a></h2><p>Bunun için birçok yol bulunmaktadır.</p> <h3><a class="main__anchor" name="str-indexof" href="#str-indexof">str.indexOf</a></h3><p>İlk metod <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf">str.indexOf(aranacak_karakterler, pozisyon)</a></p> <p>Aranmak istenen karakter dizisinde <code>str</code> <code>aranacak_karakterler</code>’i arar. <code>Pozisyon</code> ile istenen pozisyondan aramaya başlar, eğer bu karakter dizisini bulursa bulduğu pozisyonu, bulamaz ise <code>-1</code> döndürür.</p> <p>Örneğin:</p> <div id="yyinaed1dr" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = &quot;N`aber Canım - Tavşan&quot;; alert( str.indexOf(&quot;N'aber&quot;) ); // 0, çünkü N`aber başlangıçta alert( str.indexOf(&quot;n'aber&quot;) ); // -1, bulunamadı, arama büyük/küçük harf duyarlıdır. alert( str.indexOf(&quot;Tavşan&quot;) ); // 15, &quot;Tavşan&quot; 15. pozisyonda bulunmaktadır.</code></pre> </div> </div> </div><p>İsteğe bağlı olan ikinci parametre aramaya nereden başlanacağının belirtilmesine yarar.</p> <p>Örneğin <code>&quot;an&quot;</code>'ın ilk bulunduğu pozisyon <code>8</code>’dir. Bir sonraki denk gelişi ise <code>19.</code> pozisyonda olur.</p> <div id="p1zff146dx" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = &quot;N`aber Canım - Tavşan&quot;; alert( str.indexOf('an', 9) ) // 19</code></pre> </div> </div> </div><p>Eğer sizin istediğiniz tüm tekrarlar ise, <code>indexOf</code>’u döngü içerisinde kullanabilirsiniz. Her yeni çağrı bir önceki pozisyonu tutar:</p> <div id="ricrqisuk5" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = 'Bir berber bir berbere gel birader beraber bir berber dükkanı açalım demiş'; let hedef = 'bir'; let poz = 0; while (true) { let bulunanPoz = str.indexOf(hedef, poz); if (bulunanPoz == -1) break; alert( `Bulunan poz: ${bulunanPoz}` ); poz = bulunanPoz + 1; // bir sonraki pozisyondan aramaya devam et. }</code></pre> </div> </div> </div><p>Aynı algoritma aşağıdaki şekilde daha kısa bir biçimde yazılabilir:</p> <div id="r7lhlspe3m" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = 'Bir berber bir berbere gel birader beraber bir berber dükkanı açalım demiş'; let hedef = &quot;bir&quot;; let poz = -1; while ((poz = str.indexOf(hedef, poz + 1)) != -1) { alert( poz ); }</code></pre> </div> </div> </div><div class="important important_smart"> <div class="important__header"><span class="important__type"><code>str.lastIndexOf(poz)</code></span></div> <div class="important__content"><p>Buna benzer başka bir metod daha bulunmaktadır. <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf">str.lastIndexOf(pos)</a> bu metod karakter dizisinin sonundan başına doğru arama yapar</p> <p>Bulduklarını da yine tersten yazar.</p> </div></div> <p><code>indexOf</code>’tan daha kullanışsızdır. <code>if</code> koşulu olarak aşağıdaki gibi kullanılamaz.</p> <div id="eqlop9rxnc" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = &quot;Bin berber bir berbere gel birader beraber bir berber dükkanı açalım demiş&quot;; if (str.lastIndexOf(&quot;Bin&quot;)) { alert(&quot;Buldum!&quot;); // çalışmaz! }</code></pre> </div> </div> </div><p>Yukarıdaki <code>alert</code>’ün çalışmamasının nedeni <code>str.lastIndexOf(&quot;Bin&quot;)</code>'in <code>0</code> döndürmesidir. ( Bu başlangıçta değeri bulmasına rağmen) pozisyon 0 döndüğünden <code>if</code> bunu <code>false</code> olarak algılar.</p> <p>Bundan dolayı <code>-1</code>’i aşağıdaki gibi kontrol etmek gerekmektedir.</p> <div id="7h6w7gcrts" data-trusted="1" class="code-example" data-highlight="[{&quot;start&quot;:2,&quot;end&quot;:2}]"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = &quot;Bin berber bir berbere gel birader beraber bir berber dükkanı açalım demiş&quot;; if (str.indexOf(&quot;Bin&quot;) != -1) { alert(&quot;Buldum&quot;); // Şimdi oldu! }</code></pre> </div> </div> </div><div class="important important_smart"> <div class="important__header"><span class="important__type">Bitwise NOT cambazlığı</span></div> <div class="important__content"><p>Burada kullanılan [bitwise NOT] cambazlığıdır. (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Bitwise_NOT) <code>~</code> operatörü. Sayıyı 32-bit tamsayıya çevirir.(Eğer ondalık bölümü varsa bunu siler. Tüm bitlerin binary(ikili) gösterimlerini tersine çevirir.</p> <p>32-bit tam sayılar için <code>~n</code> tam olarak <code>-(n+1)</code>(IEEE-754 formatına göre) demektir.</p> <p>Örneğin:</p> <div id="swdcup2c14" data-trusted="1" class="code-example" data-highlight="[{&quot;start&quot;:3,&quot;end&quot;:3}]"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( ~2 ); // -3, -(2+1) demektir. alert( ~1 ); // -2, -(1+1) demektir. alert( ~0 ); // -1, -(0+1) demektir. alert( ~-1 ); // 0, -(-1+1) demektir.</code></pre> </div> </div> </div><p>Gördüğünüz üzere, <code>~n</code>, sadece <code>n == -1</code> olduğu durumda <code>0</code> demektir.</p> <p>Bundan dolayı <code>if( ~str.indexOf(&quot;...&quot;) )</code> anca <code>indexOf</code> <code>-1</code> değilse <code>true</code> olur. Diğer bir deyişle arandan değer bulunmuş demektir.</p> <p>Daha kısa bir <code>indexOf</code> kullanımı da mevcuttur:</p> <div id="ddsbde2gmb" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = &quot;Bin berber bir berbere gel birader beraber bir berber dükkanı açalım demiş&quot;; if (~str.indexOf(&quot;Bin&quot;)) { alert( 'Buldum!' ); // Çalıştı }</code></pre> </div> </div> </div><p>Genelde çok açık olmayan dil özellikleri üzerinde cambazlık yapılması önerilmez. Fakat özellikle bu kod parçacığı eski kodların içinde çokça geçmektedir. Bundan dolayı en azından anlamalısınız.</p> <p>Hatırlatma: <code>if (~str.indexOf(...))</code> “eğer bulunursa” diye okunur…</p> </div></div> <h3><a class="main__anchor" name="includes-startswith-endswith" href="#includes-startswith-endswith">includes, startsWith, endsWith</a></h3><p>Modern özelliklerin içerisinde <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/includes">str.includes(substr, pos)</a> <code>true/false</code> döndüren bir metod bulunmaktadır.</p> <p>Eğer sadece aradığınız karakterlerin var olup olmadığını kontrol etmek istiyorsanız ve pozisyonu sizin için önemli değilse bu metod kullanılabilir:</p> <div id="4ngkpzub3n" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( &quot;Bin berber bir berbere gel birader beraber bir berber dükkanı açalım demiş&quot;.includes(&quot;Bin&quot;) ); // true alert( &quot;Merhaba&quot;.includes(&quot;Güle Güle&quot;) ); // false</code></pre> </div> </div> </div><p><code>str.includes</code> un isteğe bağlı ikinci argümanı başlanacak pozisyonu belirtmenizi sağlar:</p> <div id="97q95bnxxj" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( &quot;birader&quot;.includes(&quot;ir&quot;) ); // true alert( &quot;birader&quot;.includes(&quot;ir&quot;, 3) ); // false, 3. pozisyondan sonra `ir` bulunmamaktadır.</code></pre> </div> </div> </div><p>Aynı şekilde <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith">str.startsWith</a> ve <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith">str.endsWith</a> metodları söyledikleri gibi, aranan karakter dizilerinin başlangıç ve bitişlerine bakarlar.</p> <div id="r0nzp6sx7t" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( &quot;birader&quot;.startsWith(&quot;bir&quot;) ); // true, &quot;birader&quot; &quot;bir&quot; ile başlar. alert( &quot;birader&quot;.endsWith(&quot;er&quot;) ); // true, &quot;birader&quot; &quot;er&quot; ile biter.</code></pre> </div> </div> </div><h2><a class="main__anchor" name="alt-karakter-dizisi-alma" href="#alt-karakter-dizisi-alma">Alt karakter dizisi alma</a></h2><p>Alt karakter dizisi alma JavaScript’te 3 metod ile yapılır: <code>substring</code>, <code>substr</code> ve <code>slice</code></p> <dl> <dt><code>str.slice(basla [, bitir])</code></dt> <dd> <p>Karakter dizisinin <code>başla</code> ile başlayan <code>bitir</code> (dahil değil) ile bitirilen aralıktaki karakterleri alır.</p> <p>Örneğin:</p> <div id="af4aa4m378" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = &quot;stringify&quot;; alert( str.slice(0,5) ); // 'strin', 0 ile 5 arasındaki alt karakter dizisi (5 dahil değil) alert( str.slice(0,1) ); // 's', 0 ile 1, fakat 1 dahil değil, yani sadece 0'ıncı karakter.</code></pre> </div> </div> </div><p>Eğer ikinci bir argüman yoksa, <code>slice</code> karakter dizisinin sonuna kadar alır:</p> <div id="z1svp9tvsk" data-trusted="1" class="code-example" data-highlight="[{&quot;start&quot;:0,&quot;cols&quot;:[{&quot;start&quot;:13,&quot;end&quot;:20}]}]"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = &quot;stringify&quot;; alert( str.slice(2) ); // ringify, ikinci pozisyondan sonuna kadar.</code></pre> </div> </div> </div><p><code>basla/bitir</code> için negatif değerler kullanmakta mümkündür. Bu pozisyonun karakter bitiminden itibaren çalıştığı anlamına gelir.</p> <div id="xqoiem6p5l" data-trusted="1" class="code-example" data-highlight="[{&quot;start&quot;:0,&quot;cols&quot;:[{&quot;start&quot;:16,&quot;end&quot;:19}]}]"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = &quot;stringify&quot;; // sağdan 4. pozisyondan başla ve yine sağdan 1. pozisyona kadar al. alert( str.slice(-4, -1) ); // gif</code></pre> </div> </div> </div></dd> <dt><code>str.substring(basla [, bitir])</code></dt> <dd> <p><code>başla</code> ile <code>bitir</code> <em>arasındaki</em> karakterleri çevirir.</p> <p>Örneğin:</p> <div id="f8u1xyk618" data-trusted="1" class="code-example" data-highlight="[{&quot;start&quot;:0,&quot;cols&quot;:[{&quot;start&quot;:13,&quot;end&quot;:17}]}]"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = &quot;stringify&quot;; // alt karakter dizisi için aynıdır. alert( str.substring(2, 6) ); // &quot;ring&quot; alert( str.substring(6, 2) ); // &quot;ring&quot; // ...fakat slice için farklıdır: alert( str.slice(2, 6) ); // &quot;ring&quot; (aynı) alert( str.slice(6, 2) ); // &quot;&quot; (boş karakter)</code></pre> </div> </div> </div><p><code>slice</code>’a göre farklı olarak negatif sayılar <code>0</code> olarak hesaba katılır.</p> </dd> <dt><code>str.substr(başlangıç [, length])</code></dt> <dd> <p>Verilen uzunluğa bağlı olarak <code>başlangıç</code>’tan uzunluk kadar karakter alır.</p> <p>Diğer metoda göre bu <code>uzunluğu</code> belirtmemizi sağlar. Diğerleri pozisyonu belirtmemizi sağlıyordu.</p> <div id="uh18u5vv5j" data-trusted="1" class="code-example" data-highlight="[{&quot;start&quot;:0,&quot;cols&quot;:[{&quot;start&quot;:13,&quot;end&quot;:17}]}]"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = &quot;stringify&quot;; alert( str.substr(2, 4) ); // ring, 2. pozisyondan 4 karakter al.</code></pre> </div> </div> </div><p>İlk karakter negatif olabilir. Sondan sayarak:</p> <div id="01eg6tnbyw" data-trusted="1" class="code-example" data-highlight="[{&quot;start&quot;:0,&quot;cols&quot;:[{&quot;start&quot;:16,&quot;end&quot;:18}]}]"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = &quot;stringify&quot;; alert( str.substr(-4, 2) ); // gi, 4. pozisyondan 2 karakter al.</code></pre> </div> </div> </div></dd> </dl> <p>Karışıklığı önlemek adına metodların üzerinden geçersek:</p> <table> <thead> <tr> <th>method</th> <th>selects…</th> <th>negatives</th> </tr> </thead> <tbody> <tr> <td><code>slice(başlangıç, bitiş)</code></td> <td><code>başlangıç</code>’dan <code>bitiş</code>’e kadar</td> <td>negatif sayılar kullanılabilir.</td> </tr> <tr> <td><code>substring(başlangıç, bitiş)</code></td> <td><code>başlangıç</code>’dan <code>bitiş</code>’e kadar</td> <td>negatif sayılar <code>0</code> demektir</td> </tr> <tr> <td><code>substr(başlangıç, uzunluk)</code></td> <td><code>başlangıç</code>’dan <code>uzunluk</code> kadar karakter</td> <td>negatif <code>başlangıç</code> kullanılabilir</td> </tr> </tbody> </table> <div class="important important_smart"> <div class="important__header"><span class="important__type">Hangisi Seçilmeli?</span></div> <div class="important__content"><p>Aslında tamamı iş görür. Daha resmi düzeyde bakılırsa: <code>substr</code> JavaScript özellik tanımlarında bulunmamaktadır. Fakat Annex B’ye göre sadece tarayıcı tabanlı özellikler içerisinde bulunmaktadır. Bu da tarihi nedenlerden dolayıdır. Bundan dolayı tarayıcı üzerine yazmıyorsanız. Yazdığınız yere bağlı olarak bu kod hata verebilir. Fakat pratikte her yerde çalıştığı görülebilir.</p> <p>Yazar genelde <code>slice</code> kullanmaktadır.</p> </div></div> <h2><a class="main__anchor" name="karakterlerin-karlatrlmas" href="#karakterlerin-karlatrlmas">Karakterlerin karşılaştırılması</a></h2><p><a href="/comparison">Karşılaştırmalar</a> bölümünden hatırlanacağı üzere, karakterler birbirileri ile karakter karakter karşılaştırılırlar. Bu karşılaştırma alfabetik sıraya göre yapılmaktadır.</p> <p>Buna rağmen bazı gariplikler de mevcuttur.</p> <ol> <li> <p>Küçük harf karakterler her zaman büyük harflerden büyüktürler.</p> <div id="d7u6g7lixl" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( 'a' &gt; 'Z' ); // true</code></pre> </div> </div> </div></li> <li> <p>Bölgesel karakterler bu sıralamaya girmezler. Yani karşılaştırılamazlar.</p> <div id="owbvrxrcce" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( 'Österreich' &gt; 'Zealand' ); // true</code></pre> </div> </div> </div><p>Eğer ülke isimlerini karşılaştırmak istiyorsanız bu garip sonuçlara neden olabilir. Örneğin <code>Zealand</code> normalde <code>Österreich</code>’ten sonra gelmesi beklenirken önce gelir.</p> </li> </ol> <p>Ne olduğunu anlamak için JavaScript karakter dizilerini nasıl tanımlıyor buna bakmak lazım.</p> <p>Tük karakter dizileri <a href="https://en.wikipedia.org/wiki/UTF-16">UTF-16</a> ile kodlanmıştır. Buna göre: Tüm karakterler sayısal olarak kodlanır. Bu koda göre karakteri geri döndürecek özel metodlar mevcuttur.</p> <dl> <dt><code>str.codePointAt(pos)</code></dt> <dd> <p>Verilen pozisyondaki karakterin kodunu döndürür:</p> <div id="wm9sviz5a6" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>// Büyük küçük harflerde farklı kodlar döndürülür. alert( &quot;z&quot;.codePointAt(0) ); // 122 alert( &quot;Z&quot;.codePointAt(0) ); // 90</code></pre> </div> </div> </div></dd> <dt><code>String.fromCodePoint(code)</code></dt> <dd> <p>Sayısal değere göre karakter döndürür.</p> <div id="f8yxah34ta" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( String.fromCodePoint(90) ); // Z</code></pre> </div> </div> </div><p>Ayrıca <code>\u</code> ile birlikte kodun hexa decimal değerini kullanarak Unicode karakter eklemeniz de mümkündür:</p> <div id="dqvrd6w21s" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>// 90 hexa decimal sistemde 5a ya denk gelmektedir. alert( '\u005a' ); // Z</code></pre> </div> </div> </div></dd> </dl> <p><code>65..220</code> arasında sayısal değeri olan (Latin alfabesi ve bunun yanında sayılar vs.) karakterleri ekrana basalım:</p> <div id="n1d11ddcdo" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let str = ''; for (let i = 65; i &lt;= 220; i++) { str += String.fromCodePoint(i); } alert( str ); // ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„ // ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜ</code></pre> </div> </div> </div><p>Gördüğünüz gibi önce büyük harfler, sonrasında birkaç özel harf ve küçük harfler şeklinde yazılmaktadır.</p> <p><code>a &gt; Z</code> olduğu yukarıda açıkça görülmektedir.</p> <p>Karakterler sayısal kodları ile karşılaştırılmaktadır. Kod büyüdükçe karakter de büyür denebilir. <code>a</code> için yazılan kod (97) <code>Z</code>(90) kodundan büyüktür.</p> <ul> <li>Tük küçük harfler büyük harflerden sonra gelir. Bundan dolayı küçük harflerin en küçüğü bile büyük harflerin tamamından büyüktür.</li> <li><code>Ö</code> gibi karakterler alfabeden tamamen farklı düşünmelidir. Bu karakterlerin kodları küçük harflerden büyüktür.</li> </ul> <h3><a class="main__anchor" name="doru-karlatrma" href="#doru-karlatrma">Doğru Karşılaştırma</a></h3><p>Karakter karşılaştırmasını “doğru” olarak yapmak göründüğünden daha zordur. Çünkü alfabe dilden dile farklılık göstermektedir. Aynı görünüşlü harfler farklı alfabelerde farklı yerlerde yer alırlar.</p> <p>Tarayıcı hangi dil ile karşılaştıracağını bilmeli.</p> <p>Neyse ki tüm modern tarayıcılar(IE10- ek kütüphanelere gerek duymaktadır <a href="https://github.com/andyearnshaw/Intl.js/">Intl.JS</a> ) uluslararası dil standardına sahiptir <a href="http://www.ecma-international.org/ecma-402/1.0/ECMA-402.pdf">ECMA 402</a>.</p> <p>Bu özel bir metod ile farklı dillerde karakterlerin birbirleri ile karşılaştırılabilmesini sağlar. Kuralları şu şekildedir:</p> <p><a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare">str.localeCompare(str2)</a> in çağırılması:</p> <ul> <li>Eğer dil kurallarına göre <code>str</code> <code>str2</code> den büyükse <code>1</code> döndürür.</li> <li>Eğer <code>str</code> <code>str2</code> den küçükse <code>-1</code> döndürür.</li> <li>Eğer birbirleri ile eşit ise <code>0</code> döndürür.</li> </ul> <p>Örneğin:</p> <div id="gzih7n53dd" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( 'Österreich'.localeCompare('Zealand') ); // -1</code></pre> </div> </div> </div><p>Aslında bu metodun <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare">dökümantasyon</a>’da belirtilen iki tane argümanı vardır. Bu argümanlar ile hangi dili kullanmak istediğinizi veya <code>&quot;a&quot;</code> ile <code>&quot;á&quot;</code>'nın aynı şekilde davranılmasını isteyip istemediğinizi belirtebilirsiniz.</p> <h2><a class="main__anchor" name="unicode-ve-internaller" href="#unicode-ve-internaller">Unicode ve Internaller.</a></h2><div class="important important_warn"> <div class="important__header"><span class="important__type">İleri derecede bilgiler</span></div> <div class="important__content"><p>Bu bölümde karakter dizilerinin daha derin özelliklerine değinilecektir. Bu bilgiler emoji, hiyeroglif veya matematiksel ifadelerde yardımcı olur.</p> <p>Eğer bu konuda bir ihtiyacınız yoksa bu bölümü atlayabilirsiniz.</p> </div></div> <h3><a class="main__anchor" name="vekil-iftler" href="#vekil-iftler">Vekil Çiftler</a></h3><p>Çoğu sembol 2-byte kod ile tanımlanır. Çoğu Avrupa dili, sayılar ve çoğu hiyeroglifler iki byte ile tanımlanabilir.</p> <p>Fakat iki byte 65536 sembolü tanımlayabilir ve tüm semboller için bu yeterli değildir. Bundan dolayı nadir semboller bir çift 2-byte’lık karakter ile tanımlanır. Buna vekil çiftler veya “surrogate pair” adı verilir.</p> <p>Böyle sembollerin uzunluğu <code>2</code>’dir:</p> <div id="2e5xb219sd" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( '𝒳'.length ); // 2, Matematiksel komut büyük X alert( '😂'.length ); // 2, Sevinçten ağlama emojisi alert( '𩷶'.length ); // 2, nadir bir Çin hiyeroglifi</code></pre> </div> </div> </div><p>Bu vekil çiftler JavaScript yaratıldığında meydanda yoktu, bundan dolayı dil tarafından doğru olarak işlenemez.</p> <p>Tek bir karakter olmasına rağmen <code>length</code> (uzunluk) <code>2</code> göstermektedir.</p> <p><code>String.fromCodePoint</code> ve <code>str.codePointAt</code> az bilinen ve bu ikili karakterlerle uğraşan iki metoddur. Dile entegreleri yakın zamanda gerçekleşti. Bundan önce sadece <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode">String.fromCharCode</a> ve <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt">str.charCodeAt</a> bulunmaktadır. Bu metodlar aslında <code>fromCodePoint/codePointAt</code> ile aynıdır fakat ikili karakterler ile çalışmamaktadırlar.</p> <p>Örneğin sembolün alınması biraz karmaşıktır, çünkü bu çiftler iki karakterden oluşmaktadırlar.</p> <div id="t7jizzcm7w" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( '𝒳'[0] ); // garip semboller... alert( '𝒳'[1] ); // ...her biri ikilinin parçaları</code></pre> </div> </div> </div><p>Dikkat ederseniz çiftli karakterler tek başlarına bir şey ifade etmezler. Yani yukarıdaki örnekler aslında hiçbir işe yaramaz.</p> <p>Teknik olarak, bu çiftler kodlarına bakılarak ayırt edilebilir: Eğer bir karakter <code>0xd800..0xdbff</code> aralığında ise bu çiftin ilk karakteri demektir. İkinci karakter ise <code>0xd800..0xdbff</code> aralığında olmalıdır. Bu aralıklar özel olarak çiftler için ayrılmıştır.</p> <p>Yukarıdaki duruma göre:</p> <div id="cc811ggkbr" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>// charCodeAt çiftlere uygun değildir, bundan dolayı sadece kodlar verilir. alert( '𝒳'.charCodeAt(0).toString(16) ); // d835, 0xd800 ile 0xdbff arasında alert( '𝒳'.charCodeAt(1).toString(16) ); // dcb3, 0xdc00 ile 0xdfff arasında</code></pre> </div> </div> </div><p><a href="/iterable">Sıralı erişim ( Iterable )</a> bölümünde bu çiftler ile ilgili daha fazla bilgi bulabilirsiniz. Muhtemelen bunun ile ilgili kütüphaneler de vardır, fakat burada önerecek kadar meşhur olan yok henüz.</p> <h3><a class="main__anchor" name="aksan-iaretleri-ve-normalletirme" href="#aksan-iaretleri-ve-normalletirme">Aksan işaretleri ve normalleştirme</a></h3><p>Çoğu dilde temel karakterlerin altına veya üstünü sembol eklenerek oluşturulmuş yeni karakterler mevcuttur.</p> <p>Örneğin <code>a</code>, <code>àáâäãåā</code> şeklinde karakterlere sahiptir. Bu birleşik karakterler UTF-16 tablosunda kendine has kodlara sahiptir. Hepsi değil tabi fakat çoğu birleşik karakter bu tabloda yer alır.</p> <p>Elle bu karakterleri birleştirmek için, UTF-16 bazı Unicode karakter kullanmamıza olanak verir. Böylece temel karakterin üzerine bir veya daha fazla “işaret” eklenerek yeni bir karakter “üretilebilir”</p> <p>Örneğin, <code>S</code> harfinin üstüne “nokta” eklemek isterseniz <code>\u0307</code> kullanabilirsiniz. Bunu kullandığınızda Ṡ elde etmiş olursunuz.</p> <div id="fqgnlwailg" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( 'S\u0307' ); // Ṡ</code></pre> </div> </div> </div><p>Eğer bu karakterin üstüne veya altına farklı işaretler eklemek istiyorsanız gerekli karakterleri istediğiniz gibi ekleyebilirsiniz.</p> <p>Örneğin, eğer “aşağı nokta” kodunu ( <code>\u0323</code>) eklerseniz, “S’in altına ve üstüne nokta” demiş olursunuz ve şu şekilde bir karakter elde edersiniz: <code>Ṩ</code></p> <p>Örneğin:</p> <div id="m99kd1yhmu" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( 'S\u0307\u0323' ); // Ṩ</code></pre> </div> </div> </div><p>Böylece çok farklı karakterler elde etmek mümkündür, fakat bu bir probleme neden olmaktadır: iki karakter görünüşte birbiri ile aynı olabilir, fakat iki farklı Unicode’a sahip olabilir.</p> <p>Örneğin:</p> <div id="d5ykqhuz9h" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( 'S\u0307\u0323' ); // Ṩ, S + üst nokta + alt nokta alert( 'S\u0323\u0307' ); // Ṩ, S + alt nokta + üst nokta alert( 'S\u0307\u0323' == 'S\u0323\u0307' ); // false</code></pre> </div> </div> </div><p>Bunu çözebilmek için “Unicode normalleştirme” algoritmaları mevcuttur. Bu karakterleri tek bir “noram” forma çevirir.</p> <p><a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/normalize">str.normalize()</a> şeklinde uygulaması yapılmaktadır.</p> <div id="g0ydhnom72" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( &quot;S\u0307\u0323&quot;.normalize() == &quot;S\u0323\u0307&quot;.normalize() ); // true</code></pre> </div> </div> </div><p>Bizim durumumuzda <code>normalize()</code> fonksiyonu aslında 3 karakteri tek bir karakter haline getirir: <code>\u1e68</code> ( alt ve üst nokta ile S harfi)</p> <div id="8orizo2dnk" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( &quot;S\u0307\u0323&quot;.normalize().length ); // 1 alert( &quot;S\u0307\u0323&quot;.normalize() == &quot;\u1e68&quot; ); // true</code></pre> </div> </div> </div><p>Gerçekte bu durumla çok nadir karşılaşılır. Bu karakter bile <code>Ṩ</code> oldukça “yaygın” olduğundan, UTF-16 standart tablosu içerisinde yer almaktadır.</p> <p>Eğer normalizasyon kurallarını ve tiplerini daha derinlemesine öğrenmek istiyorsanız <a href="http://www.unicode.org/reports/tr15/">Unicode Normalization Forms</a> adresinden inceleyebilirsiniz. Pratikte yukarıda verilen bilgiler yeterli olacaktır.</p> <h2><a class="main__anchor" name="zet" href="#zet">Özet</a></h2><ul> <li>3 tip tırnak bulunmaktadır. “`” işareti ile birkaç satırdan oluşan karakter dizisi yazmak mümkündür.</li> <li>JavaScript’te karakterler UTF-16 ile kodlanmıştır.</li> <li><code>\n</code> gibi özel karakterler veya <code>\u..</code> ile Unicode kullanılabilir.</li> <li>Karakteri almak için: <code>[]</code> kullanılır.</li> <li>Alt karakter kümesi almak için <code>slice</code> veya <code>substring</code> kullanılır.</li> <li>Küçük/büyük harf değişimi için: <code>toLowerCase/toUpperCase</code>.</li> <li>Alt karakter dizisi aramak için : <code>indexOf</code> veya <code>includes/startsWith/endsWith</code> kullanılabilir.</li> <li>Karakterleri dile göre karşılaştırmak için <code>localceCompare</code> kullanılabilir. Diğer türlü karakterler kodlarına göre karşılaştırılırlar.</li> </ul> <p>Bunun yanında karakter dizileri için daha başka yardımcı metodlar bulunmaktadır:</p> <ul> <li><code>str.trim()</code> – başlangıç ve bitişteki boşlukları siler.</li> <li><code>str.repeat(n)</code> – <code>str</code>’yi istendiği kadar tekrar eder.</li> <li>… Daha fazlası için <a href="https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String">manual</a> adresine bakabilirsiniz.</li> </ul> <p>Karakter dizileri bunun yanında arama/değiştirme veya regular expression için metodlar barındırmaktadır. Fakat bu konular ayrı bölümleri hak etmektedir. Bu konulara ilerleyen bölümlerde dönülecektir.</p> </div></article><div class="tasks formatted"><h2 class="tasks__title" id="tasks"><a class="tasks__title-anchor main__anchor main__anchor main__anchor_noicon" href="#tasks">Görevler</a></h2><div class="task tasks__task"><div class="task__header"><div class="task__title-wrap"><h3 class="task__title"><a class="main__anchor" href="#ilk-karakteri-byk-harf-yapma" name="ilk-karakteri-byk-harf-yapma">İlk karakteri büyük harf yapma</a></h3><a class="task__open-link" href="/task/ucfirst" target="_blank"></a></div><div class="task__header-note"><span class="task__importance" title="Görevin önemi 1'den 5'e kadar hangisidir.">önem: 5</span></div><div class="task__content"><div class="task__formatted"><p><code>ucFirst(str)</code> adında bir fonksiyon yazın bu fonksiyon verilen <code>str</code> değişkeninin ilk karakterini büyük harf yapıp dönsün, örneğin:</p> <div id="4g4kizib58" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>ucFirst(&quot;ahmet&quot;) == &quot;Ahmet&quot;;</code></pre> </div> </div> </div><p><a href="https://plnkr.co/edit/PcZ60kRzNflBLB7P?p=preview" target="_blank" data-plunk-id="PcZ60kRzNflBLB7P">Testler ile korunaklı olan aç.</a></p></div><button class="task__solution" type="button">çözüm</button><div class="task__answer"><div class="task__answer-content"><div class="formatted"><p>İlk karakteri “değiştiremeyiz” çünkü JavaScript’te karakter dizileri değiştirilemez.</p> <p>Fakat var olan ile yeni bir karakter dizisi yapmak ve ilk karakteri büyük başlamak mümkündür:</p> <div id="jighc196ys" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>let yeniDizi = str[0].toUpperCase() + str.slice(1);</code></pre> </div> </div> </div><p>Burada küçük bir problem var. Eğer <code>str</code> boş ise, <code>str[0]</code> undefined olur ve hata döner.</p> <p>Bunun iki türlü çözümü bulunmaktadır.</p> <ol> <li><code>str.charAt(0)</code>, kullanarak ilk satırdaki karakteri kontrol etmek.</li> <li>Boş karakterler için kontrol yazmak</li> </ol> <p>İkinci türü ise:</p> <div id="6qsb8erdkx" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>function ucFirst(str) { if (!str) return str; return str[0].toUpperCase() + str.slice(1); } alert( ucFirst(&quot;ahmet&quot;) ); // Ahmet</code></pre> </div> </div> </div><div id="1789q4plon" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>function ucFirst(str) { if (!str) return str; return str[0].toUpperCase() + str.slice(1); }</code></pre> </div> </div> </div><p><a href="https://plnkr.co/edit/3t7ReGgPJRFaaszh?p=preview" target="_blank" data-plunk-id="3t7ReGgPJRFaaszh">Çözümü testler korunaklı alanda olacak şekilde aç.</a></p></div></div><button class="close-button task__answer-close" type="button" title="kapat"></button></div></div></div></div><div class="task tasks__task"><div class="task__header"><div class="task__title-wrap"><h3 class="task__title"><a class="main__anchor" href="#spam-kontrol" name="spam-kontrol">Spam kontrolü</a></h3><a class="task__open-link" href="/task/check-spam" target="_blank"></a></div><div class="task__header-note"><span class="task__importance" title="Görevin önemi 1'den 5'e kadar hangisidir.">önem: 5</span></div><div class="task__content"><div class="task__formatted"><p><code>checkSpam(str)</code> adında bir fonksiyon yazın ve bu eğer <code>str</code> ‘viagra’ veya ‘XXX’ gibi değerler alırsa <code>true</code> diğer hallerda false döndermesi lazım.</p> <p>Fonksiyon büyük küçük harf duyarsız olması gerekmektedir:</p> <div id="yz3zgao9t3" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>checkSpam('buy ViAgRA now') == true checkSpam('free xxxxx') == true checkSpam(&quot;innocent rabbit&quot;) == false</code></pre> </div> </div> </div><p><a href="https://plnkr.co/edit/QLa1cqMLgSQoiuhq?p=preview" target="_blank" data-plunk-id="QLa1cqMLgSQoiuhq">Testler ile korunaklı olan aç.</a></p></div><button class="task__solution" type="button">çözüm</button><div class="task__answer"><div class="task__answer-content"><div class="formatted"><p>Büyük küçük harf duyarsız yapabilmek için önce tüm harfleri küçük harfe çevirebilir ve sonra arayabilirsiniz:</p> <div id="qtqv4c1uqw" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>function checkSpam(str) { let lowerStr = str.toLowerCase(); return lowerStr.includes('viagra') || lowerStr.includes('xxx'); } alert( checkSpam('buy ViAgRA now') ); alert( checkSpam('free xxxxx') ); alert( checkSpam(&quot;innocent rabbit&quot;) );</code></pre> </div> </div> </div><div id="mul7kvu3im" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>function checkSpam(str) { let lowerStr = str.toLowerCase(); return lowerStr.includes('viagra') || lowerStr.includes('xxx'); }</code></pre> </div> </div> </div><p><a href="https://plnkr.co/edit/98HmmVSfkJAF2BGe?p=preview" target="_blank" data-plunk-id="98HmmVSfkJAF2BGe">Çözümü testler korunaklı alanda olacak şekilde aç.</a></p></div></div><button class="close-button task__answer-close" type="button" title="kapat"></button></div></div></div></div><div class="task tasks__task"><div class="task__header"><div class="task__title-wrap"><h3 class="task__title"><a class="main__anchor" href="#metin-kesme" name="metin-kesme">Metin kesme</a></h3><a class="task__open-link" href="/task/truncate" target="_blank"></a></div><div class="task__header-note"><span class="task__importance" title="Görevin önemi 1'den 5'e kadar hangisidir.">önem: 5</span></div><div class="task__content"><div class="task__formatted"><p><code>truncate(str, maxlength)</code> fonksiyonu <code>str</code>’nin uzunluğunu kontrol eder. Eğer <code>maxlength</code>’den uzunsa <code>str</code> nin sonunu <code>&quot;...&quot;</code> ile bitirir ve uzunluğunu <code>maxlength</code>’e kadar getirir.</p> <p>Fonksiyonun sonucunda eğer gerekliyse metin kesilmelidir.</p> <p>Örneğin:</p> <div id="q2osmyaq3n" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>truncate(&quot;Size bu konuda söylemek istediğim şey:&quot;, 20) = &quot;Size bu konuda sö...&quot; truncate(&quot;Merhaba!&quot;, 20) = &quot;Merhaba!&quot;</code></pre> </div> </div> </div><p><a href="https://plnkr.co/edit/V3EUPS2V9wiuILdQ?p=preview" target="_blank" data-plunk-id="V3EUPS2V9wiuILdQ">Testler ile korunaklı olan aç.</a></p></div><button class="task__solution" type="button">çözüm</button><div class="task__answer"><div class="task__answer-content"><div class="formatted"><p>Maksimum uzunluk <code>maxlength</code> olacağından dolayı <code>...</code> için de yer ayırmakta fayda var.</p> <p>Note that there is actually a single unicode character for an ellipsis. That’s not three dots.</p> <div id="urb5qk4nja" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="toolbar codebox__toolbar"> <div class="toolbar__tool"> <a href="#" title="Çalıştır" data-action="run" class="toolbar__button toolbar__button_run"></a> </div> <div class="toolbar__tool"> <a href="#" title="Korumalı alanda aç" target="_blank" data-action="edit" class="toolbar__button toolbar__button_edit"></a> </div> </div> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>function truncate(str, maxlength) { return (str.length &gt; maxlength) ? str.slice(0, maxlength - 3) + '...' : str; }</code></pre> </div> </div> </div><div id="4xm7vms5fp" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>function truncate(str, maxlength) { return (str.length &gt; maxlength) ? str.slice(0, maxlength - 1) + '…' : str; }</code></pre> </div> </div> </div><p><a href="https://plnkr.co/edit/btaBRw5jL9ksxEZx?p=preview" target="_blank" data-plunk-id="btaBRw5jL9ksxEZx">Çözümü testler korunaklı alanda olacak şekilde aç.</a></p></div></div><button class="close-button task__answer-close" type="button" title="kapat"></button></div></div></div></div><div class="task tasks__task"><div class="task__header"><div class="task__title-wrap"><h3 class="task__title"><a class="main__anchor" href="#para-iaretlerini-metinden-karn" name="para-iaretlerini-metinden-karn">Para işaretlerini metinden çıkarın</a></h3><a class="task__open-link" href="/task/extract-currency" target="_blank"></a></div><div class="task__header-note"><span class="task__importance" title="Görevin önemi 1'den 5'e kadar hangisidir.">önem: 4</span></div><div class="task__content"><div class="task__formatted"><p>Formda <code>&quot;$120&quot;</code> ücret bulunmaktadır. Önce dolar işareti ardından sayı gelmektedir.</p> <p>Öyle bir fonksiyon yazın ki <code>extractCurrencyValue(str)</code> bu fonksiyon sadece sayısal değeri döndersin.</p> <p>Örnek:</p> <div id="m621f4m6t5" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>alert( extractCurrencyValue('$120') === 120 ); // true</code></pre> </div> </div> </div><p><a href="https://plnkr.co/edit/DyF4GtQBeAB5yi1H?p=preview" target="_blank" data-plunk-id="DyF4GtQBeAB5yi1H">Testler ile korunaklı olan aç.</a></p></div><button class="task__solution" type="button">çözüm</button><div class="task__answer"><div class="task__answer-content"><div class="formatted"><div id="emm0bwcyn1" data-trusted="1" class="code-example"> <div class="codebox code-example__codebox"> <div class="codebox__code" data-code="1"> <pre class="line-numbers language-javascript"><code>function extractCurrencyValue(str) { return +str.slice(1); }</code></pre> </div> </div> </div><p><a href="https://plnkr.co/edit/Qnr5b2H9HbJaeAKM?p=preview" target="_blank" data-plunk-id="Qnr5b2H9HbJaeAKM">Çözümü testler korunaklı alanda olacak şekilde aç.</a></p></div></div><button class="close-button task__answer-close" type="button" title="kapat"></button></div></div></div></div></div></div><div class="page__nav-wrap"><a class="page__nav page__nav_prev" href="/number" data-tooltip="Sayılar"><span class="page__nav-text"><span class="page__nav-text-shortcut"></span></span><span class="page__nav-text-alternate">Önceki ders</span></a><a class="page__nav page__nav_next" href="/array" data-tooltip="Diziler"><span class="page__nav-text"><span class="page__nav-text-shortcut"></span></span><span class="page__nav-text-alternate">Bir sonraki ders</span></a></div><div class="article-tablet-foot tablet-only"><div class="article-tablet-foot__layout"><div class="share-icons"><span class="share-icons__title">Paylaş</span><a class="share share_tw" href="https://twitter.com/share?url=https%3A%2F%2Ftr.javascript.info%2Fstring" rel="nofollow"></a><a class="share share_fb" href="https://www.facebook.com/sharer/sharer.php?s=100&amp;p%5Burl%5D=https%3A%2F%2Ftr.javascript.info%2Fstring" rel="nofollow"></a></div><div class="article-tablet-foot__map"><a class="map" href="/tutorial/map" data-action="tutorial-map"><span class="map__text">Eğitim haritası</span></a></div></div></div><div class="comments formatted" id="comments"><div class="comments__header"><h2 class="comments__header-title"><a href="#comments" name="comments">Yorumlar</a></h2><div class="comments__read-before"><span class="comments__read-before-link">yorum yapmadan önce lütfen okuyun...</span><div class="comments__read-before-popup"><div class="comments__read-before-popup-i"><ul><li>Eğer geliştirme ile alakalı bir öneriniz var ise yorum yerine <a href="https://github.com/javascript-tutorial/en.javascript.info/issues/new">github konusu gönderiniz</a>.</li><li>Eğer makalede bir yeri anlamadıysanız lütfen belirtiniz.</li><li>Koda birkaç satır eklemek için <code>&lt;code&gt;</code> kullanınız, birkaç satır eklemek için ise <code>&lt;pre&gt;</code> kullanın. Eğer 10 satırdan fazla kod ekleyecekseniz <a href='https://plnkr.co/edit/?p=preview'>plnkr</a> kullanabilirsiniz)</li></ul></div></div></div></div><div id="disqus_thread"></div><script>var disqus_config = function() { if (!this.page) this.page = {}; Object.assign(this.page, {"url":"https:\/\/tr.javascript.info\/string","identifier":"\/string"}); };</script><script>var disqus_shortname = "tr-javascript-info";</script><script>var disqus_enabled = true;</script></div></script></main></div><div class="sidebar page__sidebar sidebar sidebar_sticky-footer"><button class="sidebar__toggle" data-sidebar-toggle></button><a class="map" href="/tutorial/map" data-action="tutorial-map" data-tooltip="Eğitim haritası"></a><div class="sidebar__inner"><div class="sidebar__content"><div class="sidebar__section"><h4 class="sidebar__section-title">Bölüm</h4><nav class="sidebar__navigation"><ul class="sidebar__navigation-links"><li class="sidebar__navigation-link"><a class="sidebar__link" href="/data-types">Veri Tipleri</a></li></ul></nav></div><div class="sidebar__section"><h4 class="sidebar__section-title">Ders menüsü</h4><nav class="sidebar__navigation"><ul class="sidebar__navigation-links"><li class="sidebar__navigation-link"><a class="sidebar__link" href="#trnak-iaretleri">Tırnak İşaretleri</a></li><li class="sidebar__navigation-link"><a class="sidebar__link" href="#zel-karakterler">Özel Karakterler</a></li><li class="sidebar__navigation-link"><a class="sidebar__link" href="#karakter-dizisi-uzunluu">Karakter dizisi uzunluğu</a></li><li class="sidebar__navigation-link"><a class="sidebar__link" href="#karakterlere-eriim">Karakterlere erişim</a></li><li class="sidebar__navigation-link"><a class="sidebar__link" href="#karakterler-tanmlandktan-sonra-deitirilemezler-immutable">Karakterler tanımlandıktan sonra değiştirilemezler ( immutable )</a></li><li class="sidebar__navigation-link"><a class="sidebar__link" href="#harf-ilemleri">Harf işlemleri</a></li><li class="sidebar__navigation-link"><a class="sidebar__link" href="#karakter-dizisi-iinde-baka-bir-karakter-arama">Karakter dizisi içinde başka bir karakter arama</a></li><li class="sidebar__navigation-link"><a class="sidebar__link" href="#alt-karakter-dizisi-alma">Alt karakter dizisi alma</a></li><li class="sidebar__navigation-link"><a class="sidebar__link" href="#karakterlerin-karlatrlmas">Karakterlerin karşılaştırılması</a></li><li class="sidebar__navigation-link"><a class="sidebar__link" href="#unicode-ve-internaller">Unicode ve Internaller.</a></li><li class="sidebar__navigation-link"><a class="sidebar__link" href="#zet">Özet</a></li></ul></nav></div><div class="sidebar__section"><nav class="sidebar__navigation"><ul class="sidebar__navigation-links"><li class="sidebar__navigation-link"><a class="sidebar__link" href="#tasks">Görevler (4)</a></li><li class="sidebar__navigation-link"><a class="sidebar__link" href="#comments">Yorumlar</a></li></ul></nav></div><div class="sidebar__section"><div class="sidebar__section-title">Paylaş</div><a class="share share_tw sidebar__share" href="https://twitter.com/share?url=https%3A%2F%2Ftr.javascript.info%2Fstring" rel="nofollow"></a><a class="share share_fb sidebar__share" href="https://www.facebook.com/sharer/sharer.php?s=100&amp;p[url]=https%3A%2F%2Ftr.javascript.info%2Fstring" rel="nofollow"></a></div><div class="sidebar__section"><a class="sidebar__link" href="https://github.com/javascript-tutorial/tr.javascript.info/blob/master/1-js/05-data-types/03-string" rel="nofollow">GitHub'da düzenle</a></div></div></div></div></div></div><div class="page-footer"><ul class="page-footer__list"><li class="page-footer__item page-footer__item_copy">©&nbsp;2007—2025&nbsp; Ilya Kantor</li><li class="page-footer__item page-footer__item_about"><a class="page-footer__link" href="/about">proje hakkında</a></li><li class="page-footer__item page-footer__item_contact"><a class="page-footer__link" href="/about#contact-us">iletişime geçin</a></li></ul></div></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10