Javascript Yazılım Kuralları (JS)

22 Aralık 2007

İşlemler

En çok bilinen işlemler matematik işlemlerdir: +, -, /, * (toplama, çıkartma, bölme, çarpma). İşlemler iki gruba ayrılır: Karşılaştırma işlemleri ve atama ya da 'aksiyon' işlemleri. Karşılaştırma işlemleri iki değişkenin aralarındaki ilişkiyi belirtir. Diğerleri bir değişken üzerinde yapılan işlemi tanımlar. Örneğin değerini bir arttırmak gibi.

Aşağıdaki tablo en çok kullanılanları verir. Javascript 1.3 işlemlerinden özdeşlik işlemi (=== işareti) ve benzerleri de vardır. Buradakiler tüm var olan tarayıcılar tarafından desteklenmektedir. Bu tür işlemleri desteklemeyen tarayıcılar zaten hata mesajı vererek duracaklardır.

JavaScript İşlemleri
İşlemKullanımı
+iki sayıyı toplar ya da iki yazı dizisini birbirine ekler, bir sayıya yazı, bir yazının sonuna sayı eklenebilir ve sonuç her zaman yazıdır
-ikinci sayıyı birinciden çıkartma
/ilk sayıyı ikincisine böler
*iki sayıyı çarpar
%birinci sayıyı ikinciye böler ve kalanı döndürür
=sağdaki değeri soldaki nesneye atar
+=soldaki nesne = soldaki nesne + sağdaki değer (bu yazıların sonuna yeni yazı eklerken de geçerlidir)
-=soldaki nesne = soldaki nesne - sağdaki değer
>sağdaki sayı soldakinden büyük olmalıdır (bu hem yazılarda hem de sayısal değerlerde geçerlidir)
<sağdaki sayı soldakinden daha küçük olmalıdır (bu hem yazılarda hem de sayısal değerlerde geçerlidir)
>=sağdaki büyük ya da eşittir soldaki (bu hem yazı hem de sayısal değerlerde geçerlidir)
<=sağdaki sayı soldakinden küçük ya da eşit olmalıdır (bu hem yazı hem de sayısal değerlerde geçerlidir)
++sayıyı arttır
--sayıyı eksilt
==sayılar ya da nesneler ya da değerler eşit olmalıdır
!=sayılar ya da nesneler ya da değerler eşit olmamalıdır
<<bit türü sola kaydırma
>>bit türü sağa kaydırma
&bit türü AND
|bit türü OR
^bit türü XOR
~bit türü NOT
!mantıksal NOT (deyim doğru olmamalı)
&&mantıksal AND (her iki deyim de doğru olmalı)
||mantıksal OR (her iki deyim de doğru olmalı)
insağdaki nesne ya da dizi soldaki hücre ya da özellikte olmalıdır

Not, Eğer language="javascript1.2" niteliği <script> biçiminde atanmazsa

    0 == false == '' ve undefined == null

olur. Eğer "language" niteliğinde 'javascript1.2' yoksa Mozilla/Firefox ve diğer Gecko tarayıcılar (ama diğer çok kullanılanlardan hiçbiri) bunu değiştirmiştir ve hiçbiri birbirine eşit değildir. Zaten dil niteliği kullanılmadığı (artık kullanılmasının bir anlamı kalmadığı) için ve Javascript sürümlerinde hiçbir zaman bir standart olmadığı için, bu özelliğe pek de güvenmemek gerekir.

Benzer işlevlerde kullanılan birkaç işlem daha vardır:

void
void deyimi ya da void(statement)
typof
typeof değişken ya da typeof(variable) bir değişkenin tipini ya da sınıfını döndürür.
eval
eval(string) bir yazı dizisini javascript gibi yorumlar.

Daha "var", "new" ve "delete" işlemleri vardır. Değişkenlerin kullanımında bu konuya ilişkin bir çok bilgi bulunabilir. Aynı zamanda aşağıdaki matematik işlemlerine de bakılmalıdır.

Javascript içinde mantıksal XOR işlemi yoktur. Eğer bu işlevselliğe gerek olursa konuya ilişkin birçok belge ve sayfalar vardır (google'lamak yeterlidir).

İşlem öncelikleri

Birden çok işlemden oluşan bir deyimin işlenmesi istendiğinde Javascript, işlemleri belli bir sırada çözer. Örneğin 3 + 6 * 7 hesaplanırken (6 * 7) + 3 biçimde olacak önce çarpma ve sonra toplama yapılacaktır. Bunların işlenmesinde kullanılan yöntem sıralaması söyledir: * / % + - + (burada ikinci + yazı dizilerini eklemekte kullanılır). Sıralama önceliklerini değiştirmek için parantezler kullanılır. Örneğin 3 + 6 * 7 = 45 ama (3 + 6) *7 = 63 olur.

Math nesne yöntemi

Aslında, Math nesnesindeki bu yöntemler işlemlerin yerine kullanılır.

Math object methods
İşlemAçıklaması
Math.abs(n)n sayısının mutlak değerini döndürür
Math.acos(n)n değerinin radyan olarak cos-1 değerini döndürür
Math.asin(n)n değerinin radyan olarak sin-1 değerini döndürür
Math.atan(n)n değerinin radyan olarak tan-1 değerini döndürür
Math.atan2(n,k)Kartezyan koordinatlarından 0,0 dan n,k ya kadar açı (rads) değerini döndürür
Math.ceil(n)n değerinin en yakın yukarı tam sayıya yuvarlanmasını döndürür
Math.cos(n)cos n değerini döndürür (n radian türündendir)
Math.exp(n)e üzeri n değerini döndürür
Math.floor(n)n değerinin en yakın aşağı tam sayıya yuvarlanmasını döndürür
Math.log(n)ln(n) değerini döndürür
Not, log10(n) değeri için, Math.log(n) / Math.log(10) kullanır
Math.max(a,b,c,...)En büyük sayıyı döndürür
Math.min(a,b,c,...)En küçük sayıyı kullanır
Math.pow(n,k)n üzeri k değerini döndürür
Math.random()0 ile 1 arasında rastgele sayı üretir
Math.round(n)Yukarı ya da aşağıya en yakın tam sayıya yuvarlanmış değeri döndürür
Math.sin(n)sin n değerini döndürür (n radiandır)
Math.sqrt(n)Kare kök n döndürür
Math.tan(n)tan n değerini döndürür(n değeri radiandır)