ECMAScript Tekli Operatörler
- Önceki sayfa ECMAScript Referans Türleri
- Sonraki sayfa Bit işlevleri
Tek parametreye sahip bir birim işlev, yani işlemek istediğiniz nesne veya değerdir. Bu, ECMAScript'teki en basit işlevlerdir.
delete
delete işleci, önceki tanımlanan nesne özellikleri veya yöntemlerine olan referansları siler. Örneğin:
var o = new Object; o.name = "David"; alert(o.name); //Çıktı "David" delete o.name; alert(o.name); // Çıktı "undefined"
Bu örnekte, name özelliğini sildiğinizde, bu onun için zorunlu olarak referansın kaldırılması anlamına gelir ve bunu undefined (yani oluşturulan atılmış değişkenin değeri) olarak ayarlar.
Delete operatörü, geliştirici tarafından tanımlanmamış özellikleri ve metodları silemez. Örneğin, aşağıdaki kod hata verir:
delete o.toString;
ToString geçerli bir metod adı olsa bile, bu satır kodu hata verir çünkü toString() metodu temel ECMAScript metodu, geliştirici tarafından tanımlanmamıştır.
void
Void operatörü her değere undefined döndürür. Bu operatör genellikle, HTML'nin <a> elementinden JavaScript fonksiyonunu çağırırken, değer çıkarmamak için kullanılır. Doğru bir şekilde yapmak için, fonksiyonun geçerli bir değer döndürmemesi gerekir, aksi takdirde tarayıcı sayfayı temizler ve sadece fonksiyonun sonucunu gösterir. Örneğin:
<a href="javascript:window.open('about:blank')">Bana tıkla</a>
Bu satır kodunu HTML sayfasına eklediğinizde, içindeki bağlantıya tıkladığınızda ekranda "[object]" yazısını görebilirsiniz.TIY
Bu, window.open() yönteminin yeni açılan pencerenin referansını döndürdüğünden ötürüdir. Daha sonra bu nesne, gösterilmek üzere dönüştürülecektir.
Bu tür bir etkiyi önlemek için void operatörü ile window.open() fonksiyonunu çağırabilirsiniz:
<a href="javascript:void(window.open('about:blank'))">Bana tıkla</a>
Bu, window.open() çağrısının undefined döndürmesine neden olur, bu geçerli bir değer değildir ve tarayıcı penceresinde gösterilmez.
İpucu:Unutmayın, geri döndürmeyen fonksiyonların gerçekten geri döndürdüğü değerler undefined'dir.
Ön artırma/önceden azaltma operatörleri
C (ve Java)'den doğrudan alınan iki operatör ön artırma operatörü ve ön azaltma operatörüdür.
Ön artırma operatörü, sayısal olarak 1 artırır ve iki tane artırma işareti ile belirtilir (++):
var iNum = 10; ++iNum;
İkinci satır kodu iNum'ü 11'e artırır, bu da aslında şuyla eşdeğerdir:
var iNum = 10; iNum = iNum + 1;
Aynı şekilde, ön azaltma operatörü, sayısal olarak 1 azaltır ve iki tane eksi işareti ile belirtilir (--):
var iNum = 10; --iNum;
Bu örnekte, ikinci satır kodu iNum değerini 9'a düşürür.
Önceden tanımlanmış operatörler kullanılırken, artırma ve azaltma operatörlerinin hesaplama ifadesi öncesinde gerçekleştiğine dikkat edin. Aşağıdaki örneği göz önünde bulundurun:
var iNum = 10; --iNum; alert(iNum); // çıktı "9" alert(--iNum); // çıktı "8" alert(iNum); // çıktı "8"
İkinci satırdaki kod iNum'a azaltma işlemi yapar, üçüncü satırdaki kodun gösterdiği sonuç ("9")dur. Dördüncü satırdaki kod tekrar iNum'a azaltma işlemi yapar, ancak bu sefer ön azaltma işlemi ve çıktı operasyonu aynı cümlede yer alır, gösterilen sonuç "8"dir. Tüm azaltma işlemlerinin gerçekleştirildiğini kanıtlamak için beşinci satırdaki kod tekrar "8" çıktı verir.
Aritmetik ifadelerde, ön artırma ve ön azaltma operatörlerinin öncelikleri aynıdır, bu yüzden soldan sağa doğru hesaplanmalıdır. Örneğin:
var iNum1 = 2; var iNum2 = 20; var iNum3 = --iNum1 + ++iNum2; // eşittir "22" var iNum4 = iNum1 + iNum2; // eşittir "22"
Önceki kodda, iNum3 22'dir, çünkü hesaplanması gereken ifade 1 + 21'dir. Değişken iNum4 de 22'dir ve 1 + 21'dir.
Arka artırma/arka azaltma operatörleri
C (ve Java)'dan doğrudan alınan iki operatör daha vardır, yani arka artırma ve arka azaltma operatörleri.
Arka artırma operatörü de sayıya 1 ekler ve iki tane artırma işareti ile gösterilir (++)
var iNum = 10; iNum++;
Beklendiği gibi, arka azaltma operatörü de 1 azaltır ve iki tane eksi işareti ile gösterilir (--)
var iNum = 10; iNum--;
İkinci satırdaki kod iNum'un değerini 9'a düşürür.
Önek operatörlerden farklı olarak, arka operatörler, ifadelerde yer aldıklarında, artırma veya azaltma işlemlerini ifadenin hesaplanmasından sonra gerçekleştirirler. Aşağıdaki örneği göz önünde bulundurun:
var iNum = 10; iNum--; alert(iNum); // çıktı "9" alert(iNum--); // çıktı "9" alert(iNum); // çıktı "8"
Önek operatörlerin örneği gibi, ikinci satırdaki kod iNum'a azaltma işlemi yapar, üçüncü satırdaki kod sonuçları gösterir ("9"). Dördüncü satırdaki kod iNum'un değerini devam ettirir, ancak bu sefer azaltma operatörü aynı cümlede uygulanır. Azaltma işlemi ifadenin hesaplanmasından sonra gerçekleştiği için bu cümlede gösterilen sayı "9" olacaktır. Beşinci satırdaki kodun çalıştırılmasından sonra, alert fonksiyonu "8" görüntüler, çünkü dördüncü satırdaki kodun çalıştırılmasından sonra ve beşinci satırdaki kodun çalıştırılmasından önce, azaltma işlemi yapılmıştır.
Aritmetik ifadelerde, artırma ve azaltma operatörlerinin öncelikleri aynıdır, bu yüzden soldan sağa doğru hesaplanmalıdır. Örneğin:
var iNum1 = 2; var iNum2 = 20; var iNum3 = iNum1-- + iNum2++; // eşittir "22" var iNum4 = iNum1 + iNum2; // eşittir "22"
Önceki kodda, iNum3 22'ye eşittir, çünkü ifade 2 + 20'yi hesaplar. Değişken iNum4 de 22'ye eşittir, ancak 1 + 21'i hesaplar çünkü artırma ve azaltma işlemleri iNum3'a değer atanmadan önce gerçekleşir.
Tekli eklememe ve tekli çıkarım
Çoğu kişi tekli eklememe ve tekli çıkarım işlevlerini tanır, ECMAScript'teki kullanımları lise matematik derslerinde öğrendiğinizle aynıdır.
Tekli eklememe işlevi aslında sayılara hiçbir etki yapmaz:
var iNum = 20; iNum = +iNum; alert(iNum); // Çıktı "20"
Bu kod 20 sayısına tekli eklememe işlevi uygular, hala 20 döner.
Tekli eklememe işlevi, sayılara bir etki yapmaz, ancak dizgelere ilginç bir etki yapar, dizgeleri sayıya dönüştürür.
var sNum = "20"; alert(typeof sNum); // Çıktı "string" var iNum = +sNum; alert(typeof iNum); // Çıktı "number"
Bu kod "20" dizgesini gerçek bir sayıya dönüştürür. Tekli eklememe işlevi dizgeyi işlemesi parseInt() ile benzer, ancak tek fark, sadece "0x" ile başlayan dizgeler (onaltılık sayıları temsil eder) için tekli işlevin ondalık değere dönüştürmesini sağlar. Bu yüzden "010"'ü tekli eklememe işlevi ile dönüştürdüğünüzde her zaman 10 alırsınız, "0xB" ise 11'e dönüştürülür.
Diğer yandan, tekli çıkarım, bir sayıyı negatif yapmak demektir (örneğin 20'yi -20'ye dönüştürmek):
var iNum = 20; iNum = -iNum; alert(iNum); // Çıktı "-20"
Tekli eklememe işlevi, tekli eklememe işlevi de dizgeyi yaklaşık bir sayıya dönüştürür, ayrıca bu değeri negatif olarak da işler. Örneğin:
var sNum = "20"; alert(typeof sNum); // Çıktı "string" var iNum = -sNum; alert(iNum); // Çıktı "-20" alert(typeof iNum); // Çıktı "number"
Yukarıdaki kodda, tekli çıkarım işlevi işlevi "-20" dizgesini -20'ye dönüştürür (-çıkarma işlevi ondalık ve ondalık sayıları işleme yöntemi tekli eklememe işlevi ile benzer, ancak bu değer negatif olarak da işler).
- Önceki sayfa ECMAScript Referans Türleri
- Sonraki sayfa Bit işlevleri