JavaScript Wrapper Nesneleri

JavaScript nesneleri kompozit değerlerdir: Özelliklerin koleksiyonu veya isimlendirilmiş değerler.Bi değerin özelliğine “.” notasyonu ile erişiriz.Eğer değerin özelliği bir fonksiyonsa method olarak adlandırılır.  Eğer “o” objesinin “m” methodunu çağırmak istiyorsak , o.m() yazarız. Ayrıca stringlerinde özellikleri ve metodları olduğunu görüyoruz.

stringprops

 

Stringler aslında obje değiller ancak niçin property’leri var?

 

Stringin propertysine ulaşmayı denediğinizde JavaScript bu değeri bi object olan String(s) türüne çevirir.Bu obje ise çeşitli string metodlarını miras alarak kullanmamıza olanak tanır. Nesnenin propertysi çözümlendikten sonra yeni oluşturulan nesne atılır. Bunlara geçici nesneler gözüyle bakabiliriz. Sayılar ve boolean değerlerinde aynı sebeplerden dolayı metodları bulunur. Number() veya Boolean() constructor’ından geçici nesne oluşturulur ve çözümlendiğinde atılır. Null ve undefined değerler için wrapper object yoktur. Bu değerlerin propertylerine erişmeye çalışırsak TypeError alırız.

Aşağıdaki kodu inceleyelim:

 

wrapper
Burada göründüğü gibi t değeri undefined’tır. s.len olduğu kısım koşulurken geçici String nesnesi oluşturulur ve property sine 4 atanır daha sonra obje atılır. 3 satırda ise eski setlediğimiz değere ulaşmaz.Yeni bir String nesnesi oluşur ve ona ulaşır.Yeni oluşturduğumuz String nesnesininde .len property’si setlenmemiş olacağından t değeri undefined olur.

Burada bilmemiz gereken şey string,number ve boolean değerler için tanımlı wrapper objeleri read-only’dir bunların üzerinde oynama yapamayız.Yapsak bile bir değişiklik olmaz.Çünkü nesne yeniden oluşturulup atılır.

wrapperobjects

527 total views, 0 views today

Facebooktwittergoogle_plusredditpinterestlinkedinmail

JavaScript’te – Null ve Undefined nedir?

JavaScript’te null,  değerin yokluğunu ifade eden dile özgü anahtar kelimedir. Type operatörünü kullanırsak null  “object” stringini döndürür.
JavaScript’in ayrıca kendine özgü olarak değerin yokluğunu ifade eden “undefined” tipi bulunur. Örneğin 5 elemanlı dizi açıp 6. elemanına bişey yazmaya çalışırsanız javascript hata vermez. Ayrıca okumaya çalışırsanız da hata vermez değer yoksa undefined şeklinde gösterir.

nullundefined

882 total views, 0 views today

Facebooktwittergoogle_plusredditpinterestlinkedinmail

JavaScriptte Tipler, Degerler ,Degiskenler (Types,Values and Variables) – 2

Text

JavaScriptte bütün stringler sabit sıralı dizi olarak 16-bit değerler halinde tutulur. JavaScript UTF-16 encoding kullanır. Eğer 16-bit lik değer yetersiz kalırsa 2 adet 16 bit kullanarak ifadeyi temsil eder.

  • var pi=”Π”;  // 16-bit codepoint 0x03c0
  • var e =”é”; // 17-bit codepoint 0x14d52 – 2 adet 16 bit.

codepoint:Karakter encoding terminolojisinde bir codepoint ve codeposition kod uzayı üzerinde tutulan herhangi bir adresi temsil eder. Örneğin ASCII’de 128 adet codepoint vardır. 0x00 – 0x7F aralığında tanımlıdır.

String üzerinde temel işlemler

  • var s = “hello, world” // text
  • s.charAt(0) // => “h”: ilk karakter
  • s.charAt(s.length-1) // => “d”: son karakter
  • s.substring(1,4) // => “ell”: the 2. , 3. ve 4. karakterler
  • s.slice(1,4) // => “ell”: aynı string
  • s.slice(-3) // => “rld”: son 3 karakter
  • s.indexOf(“l”) // => 2: ” l” nin bulunduğu ilk pozisyon.
  • s.lastIndexOf(“l”) // => 10: ” l” nin bulunduğu son pozisyon.
  • s.split(“, “) // => [“hello”, “world”] : alt stringler oluşturur.
  • replace(“h”, “H”) // => “Hello, world”: karakterlerin yerini değiştirir.
  • s.toUpperCase() // => “HELLO, WORLD”

Örüntü Eşleme(Pattern Matching)

JavaScriptte pattern matching için RegExp constructure’ı bulunur. Regular Expression şeklinde tanımlı örüntüler ile arama-yerdeğiştirme işlemleri yapılabilir. JavaScript regular expressionlar için Perl’in söz dizimini alır.Ayrıntılı olarak bu konuyu daha sonra işleyeceğiz.

666 total views, 0 views today

Facebooktwittergoogle_plusredditpinterestlinkedinmail

JavaScriptte Tipler, Degerler ,Degiskenler (Types,Values and Variables) – 1

SAYILAR

Diğer programlama dillerinin aksine JavaScript  tamsayı değerler ile kayan noktalı sayılar arasında ayrım yapmaz. JavaScriptte tanımlanan tüm sayılar kayan noktalı sayıymış gibi tutulur.

Tam Sayılar(Integers)

JavaScriptte onluk sayılar ardışıl digitler şeklinde direk yazılır.Buna ek olarak hexadecimal sayılarıda direk “0X” veya “0x” ile başlayarak tanımlayabiliriz. Bunlar direk hexadecimal sayı olarak yorumlanacaktır. Örneğin:

  • 0xff     // 255

Bazı javascript sürümlerinde octal sayılarda tanımlanmıştır.Ancak octal sayılarla integer sayılar karışabileceğinden daha sonra yasaklanmıştır. Örneğin:

  • 0377 // 8’li tabanda 255tir. Ancak kişi bunu integer değer olarakta kullanmış olabilir.

Kayan Noktalı Sayılar(Floating-Point Numbers)

Kısa ve öz olarak kayak noktalı sayıların sözdizimi aşağıdaki gibidir:

  • [ sayı ] [ .sayı ] [ ( E | e [ ( + | – ) ] sayı ]

Buradan da anlaşılacağı gibi bütün sayıları reel sayı şeklinde tutulur.Örneğin:

  • 3.14
  • 2345.789
  • .33333333
  • 6.02e23                   // 6.02 x 10ˆ23
  • 1.4738223E-32   // 1.4738223 x 10ˆ-32

IEEE-754 kayan noktalı sayılar standardına göre sayılar 2’lik tabanda 1/2 ,1/4, 1/1024 gibi sayılar yaklaşarak tutulur.2’nin tam katı olan sayılar için bu durum bir sorun oluşturmazken(0-1 aralığında) diğer sayılar tam olarak tutulamaz. Bunu basit olarak şu şekilde kanıtlayabiliriz:

  • Herhangi bir javascript yorumlayıcısını açıp ve ekrana aşağıdaki şekilde yazınca

jshata

JavaScriptte Tipler, Degerler ,Degiskenler (Types,Values and Variables) – 1 yazısına devam et

625 total views, 0 views today

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Kod yazmak anlamaktır.