Bu videoda javascript'de scope adlı bir kavramı tartışacağız.
Kapsam, bazı kodların çalıştırıldığı bağlamı belirtir.
Öyleyse nereye gidersek gidelim, bazı merhaba diyene, Merhaba deyin adlı bir işlevin içinde olduğunu varsayalım.
Bu kod belirli bir bağlamda çalışıyor.
Ve bu nedenle bazı değişkenlere sahip olabilir ve bazı özelliklere sahip olabilir ve kapsam
bu işlevde görünür olan değişkenlere ve özelliklere atıfta bulunur.
Ve bu başka bir işlevin içinden farklı olabilir veya birbirimizin içine iç içe geçmiş işlevlerimiz
olsaydı.
Bu yapabileceğiniz bir şey.
Farklı kapsamlara sahip olabiliriz ve farklı değişkenler görünür durumda.
Dolayısıyla bu birkaç örnekle mantıklı olacaktır.
Bu kesinlikle kötü bir şekilde zor ve karmaşık bir konudur ancak bunu sizin için basitleştirmek için elimden gelenin
en iyisini yapmaya çalışacağım.
Burada basit bir şeyle başlayalım.
İşlevin matematiksel işlem olduğunu bildiririz ve yapacağımız matematik işlemi 40 değişkenini x olarak nitelendirir ve
ardından bu günlüğünü X iptal eder. matematik yapalım ve 40 basıyorlar.
Öyleyse
Yani bu kapsamda bu fonksiyonun içinde x olarak adlandırdığımız 40'tır.
Ancak işlevin dışında, X'e erişmeyi denersem, neler olmasını beklersin.
Bana x'in tanımlı olmadığını söyleyen bir hata alıyorum.
Bu bize gösteriyor ki, bu işlevin içinde bir bağlam olan iki farklı kapsama sahip olduğumuz.
X burada ama dışındakiyle tanımlanır ve genel kapsam
olarak herhangi bir işlevin içinde değiliz diye adlandıracağız.
X yazdığımda bir hata alıyorum çünkü X'in ne olduğunu bilmiyor.
Bu kapsamda görünmez.
Yani x'i x'e eşit tanımlarsak, let 'in sadece bu değeri düşük olduğunu söylüyoruz.
Şimdi, X'e eriştiğimde, işte bu işlevin dışında olduğumda, elde ettiğim küresel kapsamda.
Merhaba.
Bu bağlamda X, merhaba dır.
Ama koşarsam yine matematik yapar bu sefer neler bekliyorsun?
Hâlâ bu bağlamın 40'ında.
Bu gerçekten önemli.
Bir işlevi yarattığımızda kendi kapsamı kendi değişken kümesine sahiptir.
Bu bir işlev yerine, işlevin
dışında tanımlanan değişkenlere erişemediğimiz anlamına gelmez.
Bu yüzden size bir örnek göstereceğim.
Burada her
şeyi temizleyeceğim ve bu sefer bir Y değişkeni kullanalım y, doksan dokuza eşittir.
Bu yüzden küresel kapsamda ben erişebilirim.
istersem bunu daha matematik olsun diyelim.
Şimdi eğer bir işlevi ilan edersem, o günlüğü iptal etmek
Neden bir hatanız olacağını düşünüyorsunuz?
Yoksa bu işe yarayacak mıdır?
Parantezle daha çok matematik yapmayı deneyelim.
Ve bu bana 99 veriyor.
Bu bize burada şunu
gösteriyor ki, bir fonksiyonun dışında bir şey tanımladığımızda, o fonksiyonun içinde hala ona erişebiliyoruz.
Bunu bir çocuk alanı olarak düşünün.
Bu, daha derin bir seviyeye
kadar incelen ve alt kapsamların üst kapsamda bulması gereken şeylere erişimi olan daha spesifiktir.
Bu benzetme devam ederseniz onunla devam etmenize yardımcı olur.
Fakat temelde fonksiyon dışındaki bir değişkeni tanımlarsak onu özetleyebiliriz, onu fonksiyonun içinde kullanabiliriz.
Fakat tam tersi doğru değildir.
İşte başka bir örnek.
İçinde daha çok matematik yaparsam, aslında y'nin değerini değiştiririm.
Bu yüzden neden 100'e eşit olduğunu söylüyorum.
Sonra y yazdım.
Bu durumda ne olacağını düşünüyorsun?
Bu bir deneme.
Şimdi y'nin şu an ne olduğuna bir göz atalım.
Doksan dokuz
Ve eğer daha
fazla matematik yaparsam 100 basabilir.
Dolayısıyla, işlevin içinde y yüzdeyse 100 çıktı.
Ama işin dışında nasıl olur da.
Y yazarsam ne olur Y.
Ayrıca 100.
O yüzden, burada olan şey, ilk olarak global kapsamdaki işlevi dışında '99 olarak ilan ettim.
Ve sonra fonksiyonun içinde y'imi değiştirdim.
Dolayısıyla, burada ilan edilen
eskisini bulduğu kapsamda yeni bir değişken belirtmedi ve değişti.
İşte burada.
Neden yüz ve dışarıda neden 100'ü var?
İşte bir tane daha örnek, hepsini temizleyelim.
Değişken bir cümleyi oradaki yüksekliğe eşit hale getirelim ve sonra bir işlevi bir şeyler yapalım.
Bu isimlerin korkunç yaratıcı olmadığını biliyorum ve değiştirmeye çalışacağım bir şey yapmak yerine.
Veda çağrısına veda etmek için veda edeceğim.
Ve sonra bir sonraki satırda onu basacağım.
Peki burada ne beklemek istiyorsun?
bastıran bir şeyler yaparız.
Koşarsak elveda
Bu bize söyleyen şey, A'nın için güle güle eşit olduğu bir şey yapmak yerine.
Fakat bunun dışındaki ifade, eşit hâlâ orada olduğu anlamına gelir.
Yani burada ekleyerek var cümle eşit veda eder.
Bu, burada tanımlananı kullanmak yerine bizi yeni bir değişken yapar.
Sadece bu kapsamda var olan yeni cümle değişkeni yapar, sadece bir şeyin içinde veda edilmiş veda denir.
İçinde dışarıda elveda, merhaba orada oluruz