28 Ocak 2018 Pazar

Javascript Undefined ve NULL


undefined, bir değişken bildirildi ancak henüz bir değer atanmamış olduğu anlamına gelir.


 null, bir atama değeridir. Hiçbir değeri temsil etmemek üzere bir değişkene atanabilir.




Ayrıca, undefined ve null iki farklı türdedir:


null bir nesne ise undefined bir türün kendisidir (tanımsızdır).


Atanmamış değişkenler, JavaScript tarafından varsayılan değer olan undefined ile başlatılır.


JavaScript hiçbir zaman null değerini ayarlamaz.


if cümlecikleri
javascriptte dinamil tip çevirme olduğu için  eşitlik karşılaştırması == (iki eşit) yerine === (3 eşit, denk,hem içerik hem tipi aynı olsun anlamındadır) ile yapılır.

eşit değil karşılaştırması != yerine !== ile yapılır.


if (b===undefined) console.log("b undefined dir")

if (a===null) console.log("a nuldur")











Nesne Oluşturmak (Constructing Objects)





1. Kurucu Fonksiyon ile nesne oluşturmak (Constructing an Object with a Constructor Function)

nesne oluşturmanın ilk yöntemidir.


function Book(title, author, published, hasMovie) { this.title = title; this.author = author; this.published = published; this.hasMovie = hasMovie; this.display = function() { console.log(this); }; } var book1 = new Book("The Hound of the Baskervilles", "Sir Arthur Conan Doyl e", 1901, true); book1.display();


Kurucu fonksiyon diğer fonksiyonlara benze fakat kurucu fonksiyonları diğer fonksiyonlardan farklı bir yöntemle çağırırız (invoke ederiz.) new anahtar kelimesini kullanarak çağırırız.

new anahtar kelimesi fonksiyonu kod çalıştırmak yerine kurucu nesne oluşturmak için kullanacağımızı belirtir. (aynı zamanda içerikte bulunan kod çalıştırılır)

Kurucu fonksiyon içinde nesneye atıfta bulunmak için this anahtar kelimesi kullanılır.

this anahtar kelimesi ile belirtilen öğeler publicdir. fonksiyon içinde var ile tanımlananlar ise private dir. Kurucu fonksiyonlarda bilgi gizleme (encapsulation) yapılabilir.

Kurucu fonksiyonlarda return kullanımına gerek yoktur. Javascript programcı yerine otomatik olarak bu işlevi yapar.


Bir fonksyion kurucu fonksiyon olmadan da geriye nesne döndürebilir.

function makeObj() { return { x: 1 }; }
undefined
var myObj = makeObj();
undefined
myObj
Yukarıdaki örnekte makeObj bir kurucu fonksiyon değildir. Çünkü new anahtar kelimesi ile çağırmadık. Normal fonksiyon olarak çağırdık return ifadesi ile literal olarak oluşturulan nesne döndürüldü.

Alışkanlık olarak kurucu fonksiyonlar büyük harfle başlar, normal fonksiyonlar ile küçük harfle başlar.

bir instance in kurucu fonksiyonuna ulaşmak için instancename.constructor yazılır

kapsüllemeye örnek

// constructor function function Website() { // private members var privateUrl = 'http://www.internalpointers.com'; var privatePrint = function() { console.log(privateUrl); }; // public members this.printUrl = function() { privatePrint(); }; };
undefined
var InternalPointers = new Website();
undefined
InternalPointers.printUrl(); // 'http://www.internalpointers.com'
VM25649:7 http://www.internalpointers.com
undefined
InternalPointers.privatePrint(); // TypeError: InternalPointers.privatePrint is not a function
VM26303:1 Uncaught TypeError: InternalPointers.privatePrint is not a function at <anonymous>:1:18
console.log(InternalPointers.privateUrl); // undefined
VM26611:1 undefined
undefined


2. Literal kullanarak nesne oluşturma (Constructing an Object Using a Literal)

singleton class gibidir. Bir kez oluşturulur. new keywordü ile instance almaya gerek kalmadan static class gibi property ve methodlarına dışarıdan erişilebilir.

Tüm öğeleri public dir.

var book2 = { title: "The Adventures of Sherlock Holmes", author: "Sir Arthur Conan Doyle", published: 1892, movie: true,
display: function() { console.log(this); } };



kurucu fonksiyonla oluşturduğunuz nesnenin bir çok örneğini alabilirsiniz (instance). Literal notasyonda ise sadece bir örnek alabilirsiniz. bir nesneyi birden çok oluşturmak gerekiyorsa kurucu fonksiyonla nesneyi oluşturmak gerekir. Sadece bir kez oluşturmak yeterli ise literal notasyon bu işlevi yerine getirir.


3. Genel Bir Nesne Oluşturucu Kullanarak Bir Nesnenin Oluşturulması (Constructing an Object Using a Generic Object Constructor)


Literal nesne oluşturmanın diğer yolu, boş bir nesne ile başlamak lazım oldukça eklemektir.

İki yöntemle boş bir nesne oluşturabilirsin.

var obj1 = { }; var obj2 = new Object();



oluşturdukdan sonra öğe tanımlama
var book3 = new Object(); // same as var book3 = { }; book3.title = "A Study in Scarlet"; book3.author = "Sir Arthur Conan Doyle"; book3.published = 1887; book3.movie = false; book3.display = function() {console.log(this);};

book3.display();
VM27322:7
undefined



4. Dizi Nesneleri Oluşturmak (Constructing Array Objects)

Diziler nesnedir.
dizi nesnesi oluşturmanın iki yolu vardır

a. Array kurucu fonksiyonu
var a1 = new Array();
undefined
a1[0] = 1;
1
a1[1] = 2;
2
a1[2] = 3;
3
[1, 2, 3]

b. Literal notasyon


var a2 = [1, 2, 3];
undefined
a2




Diğer nesneler gibi, dizi için kurucu fonksiyonu incelemek için constructor komutunu kullanabilirsin. a2.constructor




















.

Kayseri Invisalign Tedavisi

Herkes harika bir gülümseme ister ama çoğumuzun buna ulaşmak için yardıma ihtiyacı vardır. Giderek daha fazla insan, hizalayıcı adı verilen ...