Web Programlama. JavaScript (1)



Benzer belgeler
BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

1 JAVASCRIPT NEDİR? 1

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

HSancak Nesne Tabanlı Programlama I Ders Notları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

JAVASCRIPT JAVASCRIPT DİLİ

BETİK DİLİ / JAVASCRIPT. Web Tasarımı ve Programlama

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

Nesne Tabanlı Programlama

Internet Programming II

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Internet Programming II

İnternet Programcılığı Dersi 2.Dönem Ders Notu

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

Oracle Database 11g: Introduction to SQL

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

YZM 2105 Nesneye Yönelik Programlama

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2

Java String İşlemleri

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

ALGORİTMA VE PROGRAMLAMA I

Access e Nasıl Ulaşılır. Araç çubuklarını yeniden düzenlemek için Görünüm komutunun Araç çubukları seçeneği kullanılır.

TEMEL STRING İŞLEMLERİ

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

Nesne Tabanlı Programlama

Nesne Yönelimli Programlama

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

Laboratuvar 2 Tek Kayıt Fonksiyonları

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Programlama Dilleri 3

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

Internet Programming II

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

C Programlama Dilininin Basit Yapıları

Üst Düzey Programlama

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

String Sınıfını Yönetmek

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

PASCAL PROGRAMLAMA DİLİ YAPISI

Diziler İndisli Değişkenler

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

NESNEYE YÖNELİK PROGRAMLAMA

Temel Excel Kullanım Bilgisi

Java Programlama. Diziler, Döngüler ve Karakter Katarları (String Sınıfı)

C Konsol Giriş Çıkış Fonksiyonları

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

C++ Dersi: Nesne Tabanlı Programlama

BİL-142 Bilgisayar Programlama II

HSancak Nesne Tabanlı Programlama I Ders Notları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

HSancak Nesne Tabanlı Programlama I Ders Notları

Bilgisayar Programcılığı. Ögr. Gör. Cansu AYVAZ GÜVEN

BİLGİSAYAR PROGRAMLAMA DERSİ

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

HSancak Nesne Tabanlı Programlama I Ders Notları

Veritabanı. SQL (Structured Query Language)

Java da Program Denetimi ve Operatörler

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

Android Ders Notları

Nesne Tabanlı Programlama

Veritabanı Tasarımı. Büyük/Küçük Harf ve Karakter İşleme

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

MATLAB/Değişkene Değer Atamak

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Programlama Dillerinde Kullanılan Veri Tipleri

Nesne Tabanlı Programlama

FORMÜLLER VE FONKSİYONLAR

ALGORİTMA VE PROGRAMLAMA I

VERİ TABANI I. Yrd.Doç.Dr. İlker ÜNAL. Teknik Bilimler Meslek Yüksekokulu

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Fonksiyonlar (Altprogram)

Dr. Fatih AY Tel: fatihay@fatihay.net

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

C#(Sharp) Programlama Dili

Javascript Ders Örnekleri -2. Tarayıcı Görüntüsü

ALGORİTMA VE PROGRAMLAMA I

Algoritma ve Programlamaya Giriş

Özyineleme (Recursion)

JAVADA DİZİ İŞLEMLERİ

RAPOR VE FORMLARDA KULLANILAN FONKSİYONLAR

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

Adım Adım SPSS. 1- Data Girişi ve Düzenlemesi 2- Hızlı Menü. Y. Doç. Dr. İbrahim Turan Nisan 2011

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

Transkript:

Web Programlama JavaScript (1)

JavaScript Programlama Dili Web in nesneye yönelik programlama dili Pek çok modern web sitesi JavaScript kullanır Tüm modern web tarayıcıları (masaüstü, tablet, cep telefonu vs.) JavaScript komutlarını çalıştıran bir işleyiciye (interpreter) sahiptir JavaScript, web geliştiricilerin öğrenmesi gereken üç temel teknolojiden biridir: HTML: web sayfalarının içeriğini ve genel yapısını belirler CSS: web sayfalarının görünümünü belirler JavaScript: web sayfalarının davranışını belirler

JavaScript ve Java İlişkisi Java ve JavaScript yakın zamanlarda ortaya çıkmış, birbirleriyle direk ilişkisi olmayan iki programlama dilidir Nestscape, Java yı tamamlayan ve profesyonel olmayan geliştiricilere yönelik bir dil ortaya çıkarmak istemiştir JavaScript bazı özellikleri açısından Java dan etkilenmiştir Web tarayıcısı içerisinde korumalı olarak çalıştırılır (sandboxed) Java nın yazım kuralları ve standart kütüphanesi göz önüne alınarak tasarlanmıştır Java anahtar kelimeleri JavaScript için ayrılmış kelimelerdir JavaScript standart kütüphanesi, Java kütüphanesinin isimlendirme kurallarını kullanır JavaScript in Math ve Date sınıfları, Java 1.0 daki sınıflardan türetilmiştir

JavaScript Tarihçesi (1/2) JavaScript, Brendan Eich tarafından, 1995 yılında, Netscape de çalışırken 10 günde geliştirilmiştir Netscape o dönemde Microsoft ile web teknolojileri konusunda yarışmakta Firefox web tarayıcısını geliştiren Mozilla Netscape tarafından oluşturulan ve desteklenen bir organizasyon Mocha > LiveScript > JavaScript (Sun dan tescil lisansı alınmasıyla) 1996 yılında JavaScript in standartlaştırılması için ECMA ya başvuruldu ECMA, C# programlama dilini de standartlaştırmıştır

JavaScript Tarihçesi (2/2) ECMAScript 4 çalışmalarına Waldemar Horwat önderliğinde 2000 yılında başlanmıştır Microsoft da bazı önerileri kendi JScript.net dilinde gerçekleştirerek katkı sağlayacak gibi gözükmüştür Zamanla Microsoft un uzlaşmaya ve JavaScript standardını düzgün bir şekilde gerçekleştirmeyeceği ortaya çıkmıştır 2003 yılında ECMAScript 4 çalışmaları rafa kaldırılmıştır Versiyon Yıl ECMAScript 1 1997 ECMAScript 2 1998 ECMAScript 3 1999 ECMAScript 4 - ECMAScript 5 2009 ECMAScript 5.1 2011

Unicode ve Kod Yorumları Otomatik çöp toplama (garbage collection) Büyük-küçük harf ayrımı önemli Unicode kaçış karakterleri Bazı donanım veya yazılımlar unicode karakterlerin tamamını gösteremez Bu ortamlarda, istenen unicode karakter kaçış karakteri aracılığıyla kullanılabilir

Veri Tipleri ve Değerleri İlkel (primitive) tipler veya değerler Sayılar Karakter katarı (string) İkili değer (boolean) null undefined Bazı ilkel değerler nesne gibi davranabilirler ve metotları çağırılabilir Nesne tipleri sıralı olmayan isimlendirilmiş değerler kümesi array: Özel bir nesne türü. Sıralı sayısal değerler kümesi function: Başka bir özel nesne türü. İlişkili çalıştırılabilir koda sahip nesneler

Önemli Bazı Sınıflar Array Function Date RegExp Error

Sayılar JavaScript tam sayılar ve ondalıklı sayılar arasında ayırım yapmaz Tüm sayılar 64-bit ondalıklı sayı olarak ifade edilir IEEE 754 standardı Tüm modern dillerde (Java, C++ vs.)double tipi için kullanılan format Dizi indeksi olarak 32-bit tamsayılar kullanılır 0x ile başlayan sayıların 16 lık tabanda (hexadecimal) verildiği varsayılır: 0xCAFE912 gibi Ondalıklı sayılar için kullanılan notasyonlar: 3.4, 6.02e23, 1.47e-32 veya 1.47E-32

Aritmetik İşlemler (1/3)

Aritmetik İşlemler (2/3)

Aritmetik İşlemler (3/3)

Gün ve Zaman (1/3) Gün ve zamanla ilişkili işlemler yapmak için Date nesneleri kullanılır Date nesneleri Date() yapıcısı kullanılarak oluşturulabilir Aşağıda Date nesnesinin bazı kullanımları gösterilmiştir

Gün ve Zaman (2/3)

Gün ve Zaman (3/3)

String UTF-16 karakterden oluşan sıralı karakter kümeleridir Oluşturulduktan sonra içeriği değiştirilemez Tanımlamada string e ait karakterler tek veya çift tırnak karakterleri arasına yazılır Çift tırnak karakterleri içerisinde tanımlanırsa, string içerisinde tek tırnak işareti direk olarak kullanılabilir Tek tırnak karakterleri içerisinde tanımlanırsa, string içerisinde çift tırnak işareti direk olarak kullanılabilir

String Tanımlama Örnekleri

Birden Fazla Satıra Dağılan String İfadeleri ECMAScript 3 te string ifadeleri tek satırda tanımlanmalıdır ECMAScript 5 ile birlikte, yeni satıra geçmeden önce \ karakteri kullanılması şartıyla, string ifade birden fazla satırda tanımlanabilir

JavaScript ve HTML de String İfadeleri İstemci tarafı programlarda, JavaScript kodu içerisinde HTML kodu veya HTML kodu içerisinde JavaScript kodu olabilir JavaScript de olduğu gibi, HTML de string ifadeleri tanımlamak için hem tek hem de çift tırnak kullanmaya izin verir Bu nedenle, JavaScript ve HTML kodları birarada kullanıldığında bunlardan birinde, string ifade tanımlamak için tek tırnağı kullanırken, diğerinde çift tırnak kullanmak mantıklı olacaktır Aşağıda HTML için çift tırnak kullanılırken, JavaScript için tek tırnak kullanılmıştır:

Kaçış Karakteri JavaScript te kaçış karakteri olarak olarak \ karakteri kullanılır

String İfadelerin Birleştirilmesi + operatörü string ifadelerin birleştirilmesinde kullanılır alert("thanks, " + username + "! ") ; + operatörü, string ve sayısal değerlerin birleştirilmesi durumunda otomatik olarak sayısal değeri string ifadeye dönüştürür ve iki string ifadeyi birleştirir alert("2 plus 2 equals " + 2 + 2); // 2 plus 2 equals 22

Uyarı Pencereleri Uyarı pencerleri, kullanıcıya bir mesaj vermek için ortaya çıkan kutulardır Uyarı pencerleri, window nesnesinin alert metodu kullanılarak oluşturulur Window nesnesi web tarayıcıları için global nesnedir ve fonksiyonlarına erişmek için fonksiyon çağırımlarında yazılması gerekmez

Uyarı Penceresi Örneği Aşağıdaki JavaScript satırlarının her ikiside ekrana "Thanks for your input" yazan bir kutu gösterecektir window.alert("thanks for your input"); alert("thanks for your input");

Formlar ve Uyarı Penceresi Aşağıda, bir form ve bu forma ait submit butonuna tıklanıldığında bir uyarı penceresi gösteren HTML kodu verilmiştir <form name=myform> <input type=button value="try it now" onclick="alert('hello from JavaScript!')"> </form>

Değişken Tanımlama (1/4) Değişkenler (variable) "var" anahtar kelimesi kullanılarak tanımlanırlar Aynı "var" anahtar kelimesi, değişkenler arasında virgül lullanılarak birden fazla değişkenin tanımlanmasında kullanılabilir Değişken tanımlamayı, değişkenlere ilk değer atamayla aynı anda gerçekleştirilebilir var name; var name = "Mark"; var weight = 150; var name, weight;

Değişken Tanımlama (2/4) Değişken isimleri boşluk karakteri içeremez Büyük/küçük harfler, sayılar, alt çizgi karakteri veya dolar işareti içerebilir Büyük/küçük harf ayrımı vardır. Örnek: count, Count ve count İsimler bir rakamla başlayamazlar

Değişken Tanımlama (3/4) Bir değişken için ilk değer belirtilmemişse, ilk değeri "undefined" olarak atanır Değişken tanımlama "for" veya "for/in" döngüleri için de aşağıdaki gibi kullanılabilir: for(var i = 0; i < 10; i++) console.log(i); for(var i = 0, j=10; i < 10; i++,j--) console.log(i*j); for(var p in o) console.log(p);

Değişken Tanımlama (4/4) Değişken tanımlarken var kelimesinin yazılması zorunlu değildir. Ancak bu doğru değildir. Aynı değişken için, kod içerisinde, tekrar "var" kullanılarak yeniden aynı değişken tanımlanabilir JavaScript, C veya Java gibi statik tipli bir dil olmadığından değişkenler tip bilgisine sahip değildir ve değişkenin tuttuğu değer tipi kod içerisinde sonradan değiştirilebilir: var i = 10; i = "ten";

Prompt (1/2) Prompt kullanıcıdan bilgi almak için kullanılan bir penceredir Kullanıcıya bir soru sorulur ve kullanıcının soruya olan cevabını bir metin kutusuna girerek "Tamam" butonuna tıklaması beklenir Window nesnesinin prompt metodu çağırılarak gerşekleştirilir Prompt metodundan dönen değer bir değişkene alınmalı ve program içerisinde kullanılmalıdır var numberofcats = prompt("how many cats?") ;

Prompt (2/2) Kullanıcıya varsayılan bir cevap gösterilmek istenirse, bu cevap prompt metodunun ikinci parametresi olarak gönderilmelidir var spec = prompt("your species?", "human"); Prompt metodundan dönen değer her zaman string ifadedir var numberofcats = prompt("how many cats?") ; var toomanycats = numberofcats + 1; // toomanycats="31"

If Cümleleri Eşitlik ve eşitsizlik karşılaştırmalarında sırasıyla === ve!== operatörleri kullanılır Karşılaştırma amaçlı >, <, >= ve <= operatörleri kullanılabilir If cümlelerinde { ve } karakterleri kullanımı zorunlu değildir var x = prompt("where does the Pope live?") ; if (x === "Vatican") { } alert("correct! ") ;

If-else ve else-if Cümleleri var correctanswer = "Vatican"; if (x === correctanswer) { alert("correct! ") ; } else if (x === "Rome") { alert("incorrect but close") ; } else { alert("incorrect") ; }

Birden Fazla Şartın Test Edilmesi Birden fazla şartın aynı anda test edilmesi için && (VE) ve (VEYA) operatörleri kullanılabilir if ((age > 65 age < 21) && res === "U. S. ") {

Diziler Birden fazla veriyi tutmak için ve bu verilere kolayca erişmek için diziler kullanılabilir var cities = ["Atlanta", "Baltimore", "Chicago", "Denver]; Dizi elemanları için indeks sıfırdan başlar: cities[0]... cities[3] Dizi elemanları farklı tipte olabilir var mixedarray = [1, "Bob", "Now is", true] ;

Dizilere Sonradan Eleman Eklemek Başlangıçta boş olarak tanımlanan diziye sonradan eleman eklemek mümkündür Dahası eleman ekleme arada bazı elemanları belirtmeksizin de yapılabilir var pets = [] ;... pets[0] = "dog"; pets[1] = "cat"; pets[4] = "bird"; // pets[2] = undefined; pets[3] = undefined;

Diziler Üzerinde Pop ve Push İşlemleri Pop işlemi dizinin son elemanını silerken, push işlemi diziye bir veya daha fazla eleman eklemeyi sağlar pets.pop() ; pets.push("elephant"); pets.push("fish", "ferret");

Diziler Üzerinde Shift ve Unshift İşlemleri Shift işlemi dizinin başından bir eleman silmek için kullanılır Unshift işlemi ise dizinin başına bir veya daha fazla eleman eklemek için kullanılır pets.shift() ; pets.unshift("elephant"); pets.unshift("fish", "ferret");

Diziler Üzerinde Splice İşlemi Dizinin herhangi bir yerine bir veya daha fazla eleman eklemek için kullanılır Opsiyonel olarak ekleme yapılan pozisyondan itibaren bazı elemanların silinmesi sağlanabilir Metodun ilk parametresi eklemeye başlanılacak pozisyonu belirtir Metodun ikinci parametresi ise, birinci paramtredeki poisyondan başlayarak kaç tane elemanın silineceğini belirtir Daha sonra gelen parametreler ise, diziye eklenecek eleman(lar)dır

Diziler Üzerinde Splice İşlemi Örneği "pets" dizisi "dog", "cat", "fly", "bug" ve "ox" elemanlarını içersin Aşağıdaki splice işlemi, "cat" elemanından sonra gelen "fly" ve "bug" elemanlarını siler ve "pig", "duck" ve "emu" elemanlarını ekler pets. splice(2, 2, "pig", "duck", "emu"); Dizi elemanlarını silmeden sadece ekleme yapmak yada yeni eleman eklemeden dizi elemanlarını silmek mümkündür pets. splice(2, 0, "pig", "duck", "emu") ; pets. splice(2, 2) ;

Diziler Üzerinde Slice İşlemi Slice işlemi, bir dizide, belirli bir pozisyondan başlayan ve birbirini takip eden bir veya daha fazla elemanı başka bir diziye kopyalamakta kullanılır "pets" dizisi "dog", "cat", "fly", "bug" ve "ox" elemanlarını içersin Aşağıdaki slice işlemi, "fly" ve "bug" elemanlarını "nopets" adlı yeni diziye kopyalar ve "pets" dizisini olduğu gibi bırakır var nopets = pets.slice(2, 4);

For Döngüsü var cleanestcities = ["Santa Fe", "Tucson", "Honolulu"]; var citytocheck = prompt("city?"); for (var i = 0; i <= 2; i++) { if (citytocheck === cleanestcities[i] ) { alert("it' s one of the cleanest cities") ; } }

Dizi Uzunluğu ve Döngüyü Bölme (1/2) var numelements = cleanestcities. length; var matchfound = false; for (var i = 0; i < numelements; i++) ; if (citytocheck === cleanestcities[i] ) { matchfound = true; alert("it' s one of the cleanest cities") ; break; } }

Dizi Uzunluğu ve Döngüyü Bölme (2/2) if (matchfound === false) { } alert("it' s not on the list") ;

Büyük/Küçük Harf Dönüşümü String nesnesinin tolowercase() ve touppercase() metotları, string değişkenlerinde tutulan karakterleri sırasıyla küçük ve büyük harfe çevirmekte kullanılabilir Bu metotların çağırılabilmesi için string temel veri tipi arka planda otomatik olarak String wrapper nesnesine çevirilecektir Orijinal string ifade değiştirilmez, metotların dönüş değeri kullanılmalıdır citytocheck = citytocheck.tolowercase(); citytocheck = citytocheck.touppercase();

Büyük/Küçük Harf Dönüşümü Örneği var citytocheck = prompt("enter your city") ; citytocheck = citytocheck. tolowercase() ; var cleanestcities = ["santa fe", "tucson", "great falls"] ; for (var i = 0; i <= 4; i++) { if (citytocheck === cleanestcities[i] ) { alert("it' s one of the cleanest cities") ; } }

String İfadeyi Parçalara Bölmek (1/3) String ifadeler diziler indekslidirler String ifade indeksleri (dizilerdeki gibi) sıfırdan başlar Bir String ifadenin belli bir kısmını kopyalamak için slice metodu kullanılır Öncelikle string ifadenin hangi karakteri aralıktaki karakterlerinin kopyalanacağı belirlenmelidir Daha sonra bu karakterlere ait indeksler slice metoduna parametre olarak verilirler

String İfadeyi Parçalara Bölmek (2/3) var firstchar = citytocheck. slice(0, 1); Eğer citytocheck "Boston" ise metod "B" değerini döndürür İlk parametre kopyalanacak kısmın ilk karakterinin indeksidir İkinci parametre ise, kopyalanacak son karakterden sonra gelen karakterin indeksidir

String İfadeyi Parçalara Bölmek (3/3) var somechars = citytocheck. slice(2, 5); somechars "sto" değerini içerecektir Metod, ikinci parametrenin belirtilmemesi durumunda, belirtilen başlangıç indeksinden string ifadenin sonuna kadar kopyalama yapar var somechars = citytocheck. slice(2); // "ston"

String İfadelerin Uzunlukları (1/2) String ifadelerin uzunluklarını elde etmek için, dizilerde olduğu gibi "length" özelliği kullanılır Kullanıcıdan bir ay değeri almak isteyelim Eğer ay değeri üç karakterden fazla karakter içeriyorsa (örn: November) ilk üç karakterini elde etmek istersek var month = prompt("enter a month") ; var charsinmonth = month. length; if (charsinmonth > 3) { monthabbrev = month. slice(0, 3) ; }

String İfadelerin Uzunlukları (2/2) Kullanıcıdan alınan bir String ifade içerisinde çift boşluk olup olmadığını tespit etmek istediğimizi varsayalım var str = prompt("enter some text") ; var numchars = str. length; for (var i = 0; i < numchars; i++) { if (str. slice(i, i + 2) === " ") { alert("no double spaces! ") ; break; } }

String İfadelerde Arama (1/4) Bir derginin "World War II" ifadesine izin vermediğini, bu terim yerine "the Second World War" ifadesinin kullanılmasını istediğini varsayalım Dergiye gelen makalelerde "World War II" ifadesi geçiyorsa bunu otomatik olarak "the Second World War" ifadesine çevirecek programı şu ana kadarki bilgimizi kullanarak aşağıdaki gibi yazabilir for (var i = 0; i < text. length; i++) { if (text. slice(i, i + 12) === "World War II") { text = text. slice(0, i) + "the Second World War" + } } text. slice(i + 12);

String İfadelerde Arama (2/4) Ancak bu çözüm döngü kullandığından verimli bir çözüm değildir Döngü kullanmak yerine aramayı aşağıdaki gibi indexof metodu kullanarak gerçekleştirebiliriz var firstchar = text. indexof("world War II") ; indexof metodu aranacak String ifadeyi parametre olarak alır Eğer aranan ifade bulunamazsa, metod -1 döndürür, bulunursa bulunduğu pozisyonun indeksi geriye döner

String İfadelerde Arama (4/4) Döngülü çözümün, indexof metodunu kullanacak şekilde değiştirilmiş şekli aşağıdadır var firstchar = text. indexof("world War II"); if (firstchar! == -1) { } text = text. slice(0, firstchar) + "the Second World War" + text. slice(firstchar + 12);

String İfadelerde Arama (4/4) Aranan String ifade, aramanın yapıldığı ifade içerisinde birden fazla geçiyor ise arama döngü içerisinde yapılabilir Bununla ilgili örnek kod yazınız indexof metodu arama yaparken String ifadenin başından başlayıp sonuna doğru gitmektedir Sondan başa doğru arama yapmak için lastindexof metodu kullanılabilir var text = "To be or not to be. "; var segindex = text. lastindexof("be"); // 16

charat Metodu (1/2) Bir String ifadede belli bir karakteri elde etmek için aşağıda gösterildiği gibi "slice" metodu kullanılabilir var firstchar = firstname. slice(0, 1); Daha basit alternatif bir yöntem ise charat metodunu kullanmaktır var firstchar = firstname. charat(0); Parametre olarak istenilen karakerin indeksi verilmektedir

charat Metodu (2/2) charat metodu özellikle belli bir karakterin aranması için kolayca kullanılabilir Aşaşıdaki kod parçası kullanıcının girdiği String ifade içerisinde "!" karakterini aramakta ve bulduğunda kullanıcıyı uyarmaktadır for (var i = 0; i < text. length; i++) { if (text. charat(i) === "!") { } } alert("exclamation point found!"); break;

replace Metodu (1/2) replace metodu bir String ifade kaynağında belirli bir String ifadeyi aratıp onu değiştirmeyi sağlar Metodun ilk parametresi aranacak String ifade iken, ikinci parametre aranan String ifade eğer bulunursa, bu ifadenin yerini alacak yeni ifadedir Metodun dönüş değeri, değiştirilmiş String ifadedir Orijinal string ifadenin değiştirilmesi isteniyorsa, metodun sonucunun orijinal string ifadeye atanması gerektiği unutulmamalıdır text = text. replace("world War II", "the Second World War") ;

replace Metodu (2/2) Bir önceki çağırım metinde sadece bir değişim gerçekleştirir Metinde aranan ifade birden fazla kez geçiyorsa, bu ifadelerin tümünü değiştirmek için global değişim yapılmalıdır Global değişim yapmak için aranacak ifade "çift tırnak" yerine "/" karakterleri arasına yazılmalı ve ardından "g" karakteri yazılmalıdır var text = text. replace(/world War II/g, "the Second World War");

Sayıların Yuvarlanması (1/2) Ondalıklı sayıları tamsayılara yuvarlamak için Math sınıfındaki metotlar kullanılır round metodu kendisine parametre olarak verilen ondalıklı sayıyı en yakın tamsayıya yuvarlayarak döndürür.5 ve üstü değerler daha büyük tam sayıya yuvarlanırken, daha düşük değerler daha küçük tam sayıya yuvarlanır scoreavg = Math. round(1.1); // 1 scoreavg = Math. round(1.5); // 2 scoreavg = Math. round(-1.5); // -1

Sayıların Yuvarlanması (2/2) ceil metodu kendisine parametre olarak verilen ondalıklı sayıyı kendisinden büyük en yakın tamsayıya yuvarlayarak döndürür var scoreavg = Math. ceil(.000001); // 1 floor metodu ise kendisine parametre olarak verilen ondalıklı sayıyı kendisinden küçük en yakın tamsayıya yuvarlayarak döndürür var scoreavg = Math. floor(. 999999); // 0

Rastgele Sayılar Üretmek (1/2) Math sınıfının random metodu 0 ile 1 (dahil değil) arasında rastgele bir sayı üretir Sayının ondalıklı kısmı 16 basamaktır 0.0000000000000000-0.9999999999999999 var randomnumber = Math. random() ; 1 ile 6 arasında rastgle bir tamsayı üretmek için aşağıdaki kod parçası kullanılabilir

Rastgele Sayılar Üretmek (2/2) 1 ile 6 arasında rastgle bir tamsayı üretmek için aşağıdaki kod parçası kullanılabilir var bigdecimal = Math. random() ; var improvednum = (bigdecimal * 6) + 1; var numberofstars = Math. floor(improvednum) ;

String İfadelerin Sayıya Dönüştürülmesi (1/8) Aşağıdaki satırla kullanıcıdan alınan yaş, değişkene String olarak aktarılır (örn: "20") var age = prompt("enter your age. "); Buna rağmen bu değişkeni aritmetik işlemlerde tam sayı olarak aşağıdaki gibi kullanabilirsiniz var yearseligibletovote = age - 18; Bu durumda JavaScript aritmetik bir işlem yapmak isteiğinizi algılar ve age değişkenini otomatik olarak sayıya çevirir

String İfadelerin Sayıya Dönüştürülmesi (2/8) JavaScript aşağıdaki işlem için de her iki değeri otomatik olarak sayıya çevirir ve çıkarma sonucunu doğru şekilde elde eder var profit = "200" - "150"; // 50 Bu otomatik çevrimin başarılı bir şekilde gerçekleşmesi için String ifadenin bir sayı olması gerekir Böyle olmadığı durumlarda aritmetik işlemin sonucu NaN (Not a Number) olur. Örnek: var profit = "200" - "duck";

String İfadelerin Sayıya Dönüştürülmesi (3/8) Ancak bu tür işlemlerde + operatörü kullanılırken dikkar edilmelidir Daha önce + operatörü ile String ifadelerle sayısal ifadeleri birleştirerek, String ifadeler elde etmiştik. Örnek: var result = "abc" + 150; // abc150 Bu sonuc aşağıdaki ifade için de geçerlidir var result = "200" + "150"; // 200150

String İfadelerin Sayıya Dönüştürülmesi (4/8) Başka bir problemli durum aşağıda verilmiştir var currentage = prompt("enter your age. "); var qualifyingage = currentage + 1; Bu durumda da, kullanıcı 52 değerini girerse, işlem sonucunda qualifyingage "521" değerine sahip olur

String İfadelerin Sayıya Dönüştürülmesi (5/8) Bu gibi durumlara engel olmak için, String ifade parseint metodu ile tamsayıya çevrilmelidir Aşağıdaki kod beklendiği gibi çalışacaktır var currentage = prompt("enter your age. "); var qualifyingage = parseint(currentage) + 1; parseint kendisine parametre olarak gelen ondalıklı sayıları da tamsayıya çevirebilmektedir var myinteger = parseint("1. 9999"); // 1

String İfadelerin Sayıya Dönüştürülmesi (6/8) Ondalık sayının değerini korumak için parsefloat metodu kullanılabilir var myfractional = parsefloat("1. 9999") ; // 1. 9999 String ifadelerin sayıya dönüştürülmesi gerektiğinde, hataya neden olmamak için bu iki metod kullanılarak elle dönüştürmek tercih edilmelidir

String İfadelerin Sayıya Dönüştürülmesi (7/8) parseint ve parsefloat metotları dışında, Number sınıfı da String ifadelerin sayıya dönüştürülmesinde kullanılabilir Farklı olarak Number sınıfı kullanıldığında, String ifadede ondalıklı kısım varsa, String ifade ondalıklı sayıya, ondalıklı kısım yoksa da tam sayıya dönüştürülür var integerstring = "24" var num = Number(integerString); // 24 var floatingnumstring = "24. 9876"; var num = Number(floatingNumString); // 24. 9876

String İfadelerin Sayıya Dönüştürülmesi (8/8) Bazı durumlarda ise, sayıları String ifadeye dönüştürmek gerekebilir Örneğin, aritmetik işlemler sonunda elde edilen büyük bir sayının, kullanıcıya gösterilmeden önce daha rahat okunması için, virgül kullanarak yeniden şekillendirilmesi Bir sayıyı String ifadeye dönüştürmek için tostring() metodu kullanılır var numberasnumber = 1234; var numberasstring = numberasnumber. tostring(); // "1234"

Ondalıklı Sayıların Uzunluğu (1/3) Bir ürünün fiyatı $9.95 olsun (price) Ürün fiyatı üzerinden %6.5 vergi alınsın (taxrate) Toplam fiyatı bulmak için aşağıdaki işlemi yapmamız gerekir: var total = price + (price * taxrate); Bu durumda total değişkeni 10.59675 değerine sahip olacaktır

Ondalıklı Sayıların Uzunluğu (2/3) Müşteriden bu miktarı ($10.59675) istemek pratik olmayacaktır Noktadan sonra iki basamağa kadar yuvarlayarak $10.60 istemek gerekir tofixed metodu bu amaçla aşağıdaki gibi kullanılabilir var prettytotal = total. tofixed(2); // 10.60 tofixed metodunun parametresi ondalıklı sayının noktadan sonra kaç basamağa yuvarlanacağını belirler