Javascript Başlangıç Düzeyinde Bir Soru
-
Hannibal_King bunu yazdı
@acemi-webci hocam kitapta yazar şu şekilde yazmış aynen aktarıyorum. javascript Programlama Kodlab yayınları 2. Baskı İbrahim Çelikbilek sayfa 37.
-----------------------------------------------------
Aşağıdaki örnek ile devam edelim.
var a = null;
var b = "abc";
var c = a + b;
a değişkeninin veri türü örtülü (üstü kapalı) olarak string'e dönüştürüldü.
Çünkü + operatörü ifade içerisinde toplama değil string birleştirme işlemi yapmaktadır.
a + b ifadesinde a değişkeninin değeri " " (empty) olarak işlem görecektir.Sonuç olarak;
c değişkeninin değeri "abc" olarak bulunur.
--------------------------------------------------------------------
Kitapta yazan bu ben mi yanlış yorumluyorum yoksa yazar mı yanlış yazmış?
bold kısma kadar doğru, devamında a değişkeninin değeri (string)obje tipi olur benim bildiğim ama adam kitap yazmış o kadar benden iyi biliyordur diye bilgimden şüphe ettim şimdi :)
-
http://kodlab.com/AuthorDetail.aspx?ID=52
buradan sorabilirsin yazara merak ettim -
Ben olayı farklı anlamışım ve jsfiddleda da sorun göremediğimi sanıyordum :D
Jsde alaylı olarak uzmanım ama teknik detayı bilmiyorum.
Mysqldeki nullde işlem empty olarak gözükür fakat tarayıcı tabanlı olan jsde durum farklı. Alert ve console log kayıtlarında null yazar. Ama biçok kütüphanede string olarak değer döndürürsen empty(bomboş değer) olarak karşına çıkar.
Muhtemelen yazar yanlış bildiğinden değil denemeden console log yazdırdığından yanlışlık var. Hatta kitabın tarihi 2010lardan önceyse normal bile olabilir (tarihi biraz attım javascript engine yayınlanmasıyla bi devrim olmuştu da buna bu durum da dahil mi bilmiyorum. Çok eski tarihli bi tarayıcıyla test etmek gerek)
-
null hiçbir değeri olmayan boş bir nesnedir ayırca "değeri tanımlanmış fakat değer atanmamış değişkenlerin tanımlanmasında bir tür yer tutucu işlevini yapacak şekilde kullanılır." Yazarın burada belirtmek istediği sanırım
var c = null + "abc"; işleminde
var c = "" + "abc";
var c = " abc"; şeklindedir. Yani null "empty" değeri alarak boş bir string gibi görünüyor. Fakat null 'ın boş bir nesne olması değerinin empty olması anlamına gelmez. Buradaki yanılsaması kanımca budur.
saybirs hocam kısaca
null === undefined // false döner
null == undefined // true döner
Ayrıca bkz:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined
http://programlama.eu.com/JavaScript/b2/b2s2.htm -
Kitabın baskısı eylül 2014 4 ay önce basılmış, eski bir kitap falanda değil yani 50.sayfaya geldim bu dediğim yer kafamı karıştırdı ilk 50 sayfa için yorum yaparsam hatalı olan kısım hariç fena değil js kodlarını html içinde nereye koyabilceğimizi falan anlatmış zaten bende o kısımları merak ediyordum.Ancak kitap yazan birisinin en azından kitabında yazdığı kodu çalıştırıp denemesini beklerim sonuçta bu kitabı acemi olanlar da okuyacak.Bir hata durumunda kafa karışıklığına neden oluyor.
Galiba en mantıklısı @TxT hocamın attığı mozilla linklerinden çalışmak ingilizce olduğu için yavaş ilerlesem de hatasız bir anlatım olur heralde.
-
Hannibal_King bunu yazdı
Kitabın baskısı eylül 2014 4 ay önce basılmış, eski bir kitap falanda değil yani 50.sayfaya geldim bu dediğim yer kafamı karıştırdı ilk 50 sayfa için yorum yaparsam hatalı olan kısım hariç fena değil js kodlarını html içinde nereye koyabilceğimizi falan anlatmış zaten bende o kısımları merak ediyordum.Ancak kitap yazan birisinin en azından kitabında yazdığı kodu çalıştırıp denemesini beklerim sonuçta bu kitabı acemi olanlar da okuyacak.Bir hata durumunda kafa karışıklığına neden oluyor.
Galiba en mantıklısı @TxT hocamın attığı mozilla linklerinden çalışmak ingilizce olduğu için yavaş ilerlesem de hatasız bir anlatım olur heralde.
Doğru diyon hocam ama önyargı etme yine de kodlabta yazım yılı 2010 olarak görünüyor dediğim tarih işte :)
Ama benim şahi fikrim net üzerinden @TxT müridin verdiği mozilla kaybaklarından ve w3schoolstam öğren türkçe la,ım olunca kitaba baş vur
