Komut Dosyalarını Güvende Tutma – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
Fonksiyonlar
İşlevler yeniden kullanılabilir kod bloklarıdır ve JavaScript ile yazılanlar da dahil olmak üzere günümüzde çoğu programın ayrılmaz bir parçasıdır. Bir hesaplama yapmanız gerektiğini veya belirli bir koşullu kontrole tekrar tekrar ihtiyacınız olduğunu hayal edin.
Gerektiğinde aynı kod satırlarını kopyalayıp yapıştırabilirsiniz; ancak, bir işlevi kullanmak çok daha verimlidir. Fonksiyonlar parametre olarak (bazen argüman olarak adlandırılır) değerler alabilir ve kendilerine verilenleri test etmeyi ve değiştirmeyi bitirdikten sonra değerleri döndürebilir.
Bir fonksiyonun kaç parametreye sahip olabileceği konusunda bir sınır yoktur, ancak kafa karıştırıcı olabileceğinden çok fazla kullanmamak iyi bir fikirdir. Bazı DHTML kodlarını kontrol ederseniz, 20 veya daha fazla parametreli fonksiyonlar bulabilirsiniz ve diğer fonksiyonlardakileri çağırırken sıralarını hatırlamak, neredeyse her şeyi sıfırdan yazmak istemenize neden olacaktır.
Bunu yaptığınızda, çok fazla parametrenin çok daha fazla bakım işi anlamına geldiğini ve hata ayıklamayı olması gerekenden çok daha zor hale getirdiğini hatırlamak iyi bir fikirdir.
PHP’den farklı olarak, JavaScript’in, mevcut olmamaları durumunda parametreleri önceden ayarlama seçeneği yoktur. Bu sorunu, parametrenin boş olup olmadığını kontrol eden bazı if koşullarıyla çözebilirsiniz (bu, yorumlayıcı konuşmasında “hiçbir şey, hatta 0 bile” anlamına gelir).
İşlevler, return anahtar sözcüğü aracılığıyla yaptıklarını rapor eder. Bir olay işleyicisi tarafından çağrılan bir işlev, Boolean değerini false döndürürse, normalde olay tarafından tetiklenen olay dizisi durdurulur. Bu, bağlantılara işlevler uygulamak ve tarayıcının bağlantının hrefine gitmesini durdurmak istediğinizde çok kullanışlıdır. Bunu “Nesne Algılama ve Tarayıcı Bağımlılığı” bölümünde de kullandık.
Döndürme ifadesinin ardından gelen diğer herhangi bir değer, çağıran koda geri gönderilir. Bir bağlantı oluşturmak için createLink işlevimizi değiştirelim ve işlev onu oluşturmayı bitirdiğinde onu geri döndürelim.
LinkInit() işlevi, DOM’nin kullanılabilir olup olmadığını kontrol eder (diğerlerini çağıran tek işlev olduğu için, onların içinde tekrar kontrol etmemize gerek yoktur) ve # hedefli bir bağlantı oluşturur ve bağlantı olarak açılır.
Ardından appendLink() işlevini çağırır ve yeni oluşturulan bağlantıyı bir parametre olarak gönderir. Bir hedef öğe göndermediğine dikkat edin, bu, elementId’nin boş olduğu ve appendLink()’in bağlantıyı belgenin ana gövdesine eklediği anlamına gelir.
initLinks(), createLink()’i ikinci kez çağırdığında, hedef close.html ve close’i bağlantı metni olarak gönderir ve bağlantıyı, appendLink() işlevi aracılığıyla main kimliğine sahip HTML öğesine uygular. Ana kimliğine sahip bir öğe varsa, appendLink() bağlantıyı buna ekler; değilse, belge gövdesini bir geri dönüş seçeneği olarak kullanır. Bu şimdi kafa karıştırıcıysa endişelenmeyin, daha sonra daha fazla örnek göreceksiniz.
Şimdilik, işlevlerin ne olduğunu ve ne yapmaları gerektiğini hatırlamak önemlidir:
• İşlevler, bir görevi tekrar tekrar yapmak için vardır, her görevi kendi işlevi içinde tutun; aynı anda birkaç şey yapan canavar işlevleri yaratmayın.
• İşlevler istediğiniz kadar parametreye sahip olabilir ve her parametre herhangi bir türde olabilir: dize, nesne, sayı, değişken veya dizi.
• Fonksiyon tanımının kendisinde parametreleri önceden tanımlayamazsınız, ancak tanımlanıp tanımlanmadıklarını kontrol edebilir ve bir if koşulu ile varsayılanları ayarlayabilirsiniz. Bunu, bu bölümün sonraki bölümünde öğreneceğiniz üçlü operatör aracılığıyla çok kısa ve öz bir şekilde yapabilirsiniz.
• İşlevler, yaptıklarını açıklayan mantıksal bir isme sahip olmalıdır; adı görev konusuna yakın tutmaya çalışın, örneğin genel bir init(), dahil edilen diğer JavaScript dosyalarından herhangi birinde olabilir ve işlevlerinin üzerine yazabilir. Bu bölümde daha sonra göreceğiniz gibi, nesne değişmezleri bu sorunu önlemenin bir yolunu sağlayabilir.
Üçlü Operatör Üzerinden Kısa Kod
Daha önce gösterilen appendLink() işlevine bakarak, birçok if koşulunun veya switch ifadesinin çok uzun ve karmaşık kodlarla sonuçlanabileceğine dair bir önsezi alabilirsiniz. Şişkinliğin bir kısmını önlemenin bir yolu, üçlü operatör adı verilen bir şeyi kullanmayı içerir. Üçlü operatör aşağıdaki sözdizimine sahiptir.
İşlevlerin Sıralanması ve Yeniden Kullanımı
Çok sayıda JavaScript işleviniz varsa, bunları ayrı .js dosyalarında tutmak ve yalnızca ihtiyaç duyulan yerlerde uygulamak iyi bir fikir olabilir. .js dosyalarını, içerdikleri işlevlerin yaptıklarına göre adlandırın.
Özel işlevsellik oluşturmaya yardımcı olan çok sayıda önceden paketlenmiş JavaScript kitaplığı (işlev ve yöntem koleksiyonları) olduğundan, bu sizin için belirli bir ölçüde yapılmıştır. Önümüzdeki birkaç bölümde bunlardan bazılarına bakacağız ve kendimizinkini oluşturacağız.
Outlook güvenli Mod açılmıyor
google.com safe search
Word Güvenli Mod kapatma
Outlook Güvenli Mod kapatma
Excel Güvenli Mod kapatma
Güvenli Arama ağ tarafından kilitlendi
Office Güvenli Mod hatası
Word Güvenli Mod hatası
Değişken ve İşlev Kapsamı
Bir fonksiyonun içinde yeni bir değişken ile tanımlanan değişkenler sadece bu fonksiyonun içinde geçerlidir, dışında geçerli değildir. Bu bir dezavantaj gibi görünebilir, ancak aslında bu, komut dosyalarınızın diğerlerini engellemeyeceği anlamına gelir; bu, JavaScript kitaplıklarını veya kendi koleksiyonlarınızı kullandığınızda ölümcül olabilir.
Fonksiyonların dışında tanımlanan değişkenlere global değişkenler denir ve tehlikelidir. Tüm değişkenlerimizi fonksiyonların içinde tutmaya çalışmalıyız. Bu, komut dosyamızın sayfaya uygulanabilecek diğer komut dosyalarıyla iyi bir şekilde oynamasını sağlar. Çoğu komut dosyası, navigasyon veya currentSection gibi genel değişken adlarını kullanır. Bunlar global değişkenler olarak tanımlanırsa, komut dosyaları birbirlerinin ayarlarını geçersiz kılar. Bir var anahtar sözcüğünü atlamanın nelere yol açabileceğini görmek için aşağıdaki işlevi çalıştırmayı deneyin.
Komut Dosyalarını Güvende Tutma
Daha önce değişkenleri var anahtar sözcüğü aracılığıyla yerel olarak tanımlayarak güvenli tutmaktan bahsetmiştik. Bunun nedeni, aynı ada sahip değişkenlere dayanan diğer fonksiyonların ve iki fonksiyonun birbirinin değerlerinin üzerine yazmasından kaçınmaktı. Aynısı fonksiyonlar için de geçerlidir.
Aynı HTML belgesine ayrı komut dosyası öğelerinde birkaç JavaScript ekleyebileceğiniz için, dahil edilen başka bir belgenin aynı ada sahip bir işlevi olduğundan işlevselliğiniz bozulabilir. İşlevleriniz için myscript_init() ve myscript_validate() gibi bir adlandırma kuralıyla bu sorunu önleyebilirsiniz. Ancak, bu biraz zahmetlidir ve JavaScript, nesneler biçiminde bununla başa çıkmak için daha iyi bir yol sunar.
init() ve validate() işlevlerini çağırmaya çalışırsanız, artık var olmadıkları için bir hata alırsınız. Bunun yerine, myscript.init() ve myscript.validate() kullanmanız gerekir.
Tüm işlevlerinizi yöntem olarak bir nesneye sarmak, C++ veya Java gibi bazı diğer diller tarafından kullanılan programlama sınıflarına benzer. Bu tür dillerde, aynı görev için geçerli olan işlevleri aynı sınıf içinde tutarsınız, böylece yüzlerce işlevle karıştırılmadan büyük kod parçaları oluşturmayı kolaylaştırırsınız.
Nesne adını tekrar tekrar tekrarlamanız gerektiğinden, kullandığımız sözdizimi hala biraz hantal. Bunu çok daha kolay hale getiren nesne değişmezi adı verilen bir kısayol gösterimi vardır.
Nesne değişmezi uzun süredir var ama oldukça az kullanıldı. Günümüzde giderek daha moda hale geliyor ve onu kullanarak web’de bulduğunuz bir komut dosyasının oldukça iyi, modern JavaScript olduğunu hemen hemen varsayabilirsiniz.
Nesne değişmezinin yaptığı, nesneyi oluşturmak ve işlevlerin her birini bağımsız işlevler yerine nesne yöntemleri olarak uygulamak için bir kısayol gösterimi kullanmaktır. Dinamik bağlantılar örneğinin üç fonksiyonunu, nesne değişmezini kullanan büyük bir nesne olarak görelim.