İlk olarak, JavaScript'teki ifadeler hakkında kısaca.
JavaScript ifadeleri
JavaScript'te talimatlar ve ifadeler bulunur.
İfadeler değer döndürmez.
İfade Her zaman bazı değerler döndürür. Yorumlayıcı bir ifade gördüğünde, değerini değerlendirir ve ifadeyi değeriyle değiştirir.
İfadeler basit veya bileşik olabilir. Basit ifadeler diğer ifadeleri içermez.
Basit ifadeler şunları içerir:
- Tanımlayıcılar: someVar (değişken adı);
- Değişmezler: "string" veya 675 (sayı veya sayısal değişmez);
- Bunun gibi bazı anahtar kelimeler;
Ayrıştırıcı bir tanımlayıcı bulduğunda, önce değerini hesaplaması, yani örneğin bir değişkenin adını değeriyle değiştirmesi gerekir.
Değişmez değer, komut dosyası kodunda yazıldığı gibi olacaktır.
JavaScript operatörleri ve karmaşık ifadeler
Operatörler, birkaç basit ifadeyi tek bir karmaşık ifadede birleştirmek için kullanılır.
Operatörler:
- Tekli (bir işlenen).
- İkili (iki işlenen).
- Üçlü operatör? JavaScript'te (üç işlenen, yalnızca bir üçlü operatör vardır).
Operand, operatörün uyguladığı basit ifadedir.
Örneğin, aritmetik toplama operatörü "+" ikili bir operatördür. Sol ve sağ işleneni ekler ve toplamı döndürür.
Var basamak = 4 + 7;
Bu arada, atama "=" atama operatörü kullanılarak yapılır. Bu operatör, sağ taraftaki işlenenin değerini değerlendirir ve onu sol taraftaki işlenene atar.
JavaScript'in tekli artısı vardır, yalnızca bir işleneni vardır. Tekli artı bir aritmetik operatör değildir, işleneni bir sayıya dönüştürür.
Var myVar = "7"; belge.write (typeof (myVar) + "
"); // myVar = + myVar belge dizesine yazdırır; document.write (typeof (myVar) +"
"); // Belgeye sayı yazdıracak
İlk başta, myVar değişkeni, sayısal değil, değişmez bir dize olan "7" dizesini içeriyordu. Tekli artı operatörünü kullanarak bir dizgiyi sayısala dönüştürdük.
Aritmetik işlemler
Aritmetik işlemler, iyi bilinen matematiksel işlemlerdir.
Belki % (modulo) operatörünün açıklığa ihtiyacı vardır. 9, kalan 4 ile 5'e bölünebilir, bu operatörün döndürdüğü kalandır. Modulo da denir. Tamsayıları kullanırken, bu operatörün sonucu da bir tamsayı olacaktır. Kayan noktalı sayılar üzerinde çalışırken sonuç bir kayan noktalı sayıdır.
5.5 % 2.2 = 1.1
Aritmetik işlemler yaparken, yanlış yapılırsa aşağıdaki sonuçlara yol açabileceğini unutmayın:
- NaN (Sayı Değil) bir sayı değildir.
- Sonsuzluk, sonsuzluktur.
Bu, sıfıra bölmenin yol açacağı şeydir:
Var myVar = 0/0; document.write ("Değişken değeri:" + myVar + ", türü:" + typeof (myVar) + "
");
Karşılaştırma işlemleri
Karşılaştırma operatörleri, ifadeleri eşleştirmek için kullanılır. Koşullu bir işleci olan bir ifade, bir boole değeri döndürür - doğru veya yanlış (doğru/yanlış).
Karşılaştırma işlemleri stringlerle de yapılabilir, bu başka bir derste ele alınacaktır. Doğru bir sonuç için tek koşul, aynı türdeki verilerin eşleşmesidir. Aksi takdirde, JavaScript verileri bir türden diğerine çevirmeye çalışır ve bu her zaman başarılı olmaz. Hatalardan kaçınmak için yalnızca bir türdeki verileri karşılaştırın.
atama işlemleri
Atama işleminin en bariz örneği basit atamadır (=). Bu operatör (=), bir değişkene değer atamak için kullanılır.
Ancak kısaltma olan bir dizi atama işlemi de vardır.
mantıksal işlemler
Boolean işlemleri genellikle JS'de if else yapısıyla birlikte kullanılır. Bu tasarımın örnekleri üzerinde çalışmalarının gösterileceği yer almaktadır. Ama önce, mantıksal operatörlerin bir listesi.
Şimdi basit örnekler için:
If (true && true) document.write ("Çalışıyor!
"); if (true || false) document.write (" Çalışıyor!
"); if (! false) document.write (" Çalışıyor!
");
Şu örneklere bakalım:
Her iki işlenen de doğruysa mantıksal AND operatörü (&&) true değerini döndürür.
En az bir işlenen doğruysa, mantıksal VEYA operatörü (||) true değerini döndürür.
Mantıksal NOT (!) Operatörü bir işleneni alır ve doğru/yanlış değerini tersine çevirir.
Tekli Operatörler
Birli operatörler, bir işlenene sahip operatörlerdir. İşte bu operatörlerden bazıları:
- ++ - 1 (artış) artış. Önek ve sonek olabilir, daha fazlası aşağıdadır.
- - - 1 azalt (azalt). Önek ve sonek olabilir, daha fazlası aşağıdadır.
- + tekli bir artıdır.
- - - tekli eksi.
tekli eksi
Birli eksi, ifadenin işaretini tersine çevirir. Örneğin, bir programda -100 yazdığınızda, sayısal değişmez 100'e tekli eksi uygularsınız.
Birli eksi tam olarak nasıl çalıştığını anlamanız gerekir - işlenenin değerini ters işaretli olarak döndürür. İşte birli eksiyi doğru şekilde nasıl kullanacağınıza dair bir örnek:
Var myVar = -100; document.write (-myVar + "- tekli eksi çalıştı, ancak değişken ayrıca =" + myVar + ".
"); myVar = -myVar; document.write (" Now değişkeni = "+ myVar +".
");
İşte bir çift tekli eksi için anlamsız bir örnek. Eğitim amaçlı faydalı olacağını düşünüyorum:
Var myVar = -100; document.write (- myVar + "bir artıştır, çift tekli eksi değil.
"); document.write ("Şimdi değişken = "+ myVar +".
"); document.write (- (- myVar) +" ve bu birli eksinin çift kullanımıdır.
");
tekli artı
Tekli artı herhangi bir matematik yapmaz. Sayısal bir türe değişmez bir değer atar.
Var myVar = "78687"; belge.write (typeof (myVar) + ".
"); myVar = + myVar; document.write (typeof (myVar) +".
");
Artış ve azalma
Programlamada, genellikle bir değişkenin değerini birer birer artırmak veya azaltmak gerekir. Bunun için tekli operatörler vardır:
- ++ - 1 (artış) artış.
- - - 1 azalt (azalt).
Tekli artı ve eksiden farklı olarak, artırma ve eksiltme, çağrıldığında değişkenin değerini değiştirir.
Var myVar = 10; belge.write (++ myVar + ".
"); document.write (myVar +".
");
Azaltma (-) aynı şekilde çalışır.
Şimdi bu operatörlerin önek ve sonek kullanımlarına bakalım.
- ++ myVar, 1'lik bir önek artışıdır.
- myVar ++ - 1'lik postfix artışı.
Fark şudur:
- Bu operatörlerin ön eki, önce birli operatörün değerini değerlendirir ve ardından sonucu ifadede kullanır.
- Postfix kullanımı önce ifadeyi değerlendirir ve ardından tekli operatörü (++ veya -) yürütür.
Basit bir örnek anlamanıza yardımcı olacaktır:
Var myVar = 10; document.write ((++ myVar + 5) + ".
"); var myVar = 10; document.write ((myVar ++ + 5) +".
"); document.write (" Değişken = "+ myVar +".
");
Artırma ve eksiltme yalnızca değişkenlerle kullanılabilir; sayısal değişmezlere uygulanamazlar. Basitçe söylemek gerekirse, ++ 7 kodu komut dosyasında bir hatadır.
Diğer operatörler
JavaScript'te başka operatörler de vardır:
- Üçlü (üç işlenenli) operatör
var a = 10; var b = (a> 1)? 100: 200; uyarı (b);
eğer koşul bir> 1 doğrudur, o zaman değişken B değer atamak 100 , aksi takdirde b değişkenine değer atanır 200 .
Js görevi 3_4. Kod tamamlama: var anahtar sözcüğü kullanılarak 3 yerel değişken bildirilir. Aşağıdaki üçlü operatörün değerini max değişkenine atamak gerekir: a, b'den büyükse, o zaman a döndürürüz, aksi takdirde b döndürürüz.
Kod parçacığı:
eğer (a * b< 6) { result = "Мало"; } else { result = "Много"; }
Otokontrol için sorular:
- Üçlü operatörün sözdizimi nedir?
- Üçlü operatörün kaç argümanı var?
JavaScript'te operatörü değiştir - değiştir
Javascript switch ifadesi, bir değişkeni birden çok değer için test etmek için kullanılır:
Sözdizimi:
switch (değişken veya ifade) (durum seçeneği 1: //.. ifade bloğu .. kesme durumu seçenek 2: //.. ifade bloğu .. kesme varsayılanı: //.. ifade bloğu ..)
Bir değişkenin veya ifadenin değeri kontrol edilir: her birinde dava değerlerden biri kontrol edilir, uygun bir değer olması durumunda, buna karşılık gelen bir veya daha fazla ifade bloğu dava.
Hizmet sözcüğü varsayılanıyla başlayan blok atlanabilir. Tümünde listelenen değerlerden hiçbiri yoksa blok ifadeleri yürütülecektir. dava uygun değil.
Önemli: Break ifadesi, değişkenin dikkate alınan her değerinden sonra gereklidir (her dava); kullanmazsanız, aşağıda bulunan tüm operatörler görüntülenecektir.
Operatör ile karşılaştırın EĞER:
var a = 2; switch (a) (durum 0: // if (a === 0) durum 1: // if (a === 0) uyarı ("Sıfır veya bir"); // sonra çıktı ... break; case 2: // if (a === 2) alert ("İki"); // sonra göster ... break; default: // else alert ("Çok"); // aksi halde ... göster)
Birden çok seçeneği nasıl gruplayabilirim?
Aynı işleçleri yürütmek için birkaçını gruplamak mümkündür. dava... Yukarıdaki örnekte olduğu gibi:
Durum 0: durum 1: uyarı ("Sıfır veya bir"); kırmak; ...
a = 0 ve a = 1 için aynı ifade yürütülür: uyarı ("Sıfır veya bir");
Örnek 4: Kullanıcıdan bir renk girmesini isteyin. Girilen rengin İngilizce çevirisinin çıktısını alın. renk için "Mavi" ve "Mavi" aynı değeri döndürür.
✍ Çözüm:
- Html iskeleti ve etiketi ile bir web sayfası oluşturun senaryo.
- Bir değişkeni başlat renk
- Yapıyı kullanarak bir değişkenin değerini kontrol edin anahtar, her değer için çıktı - ilgili çeviri:
- çiçekler için "Mavi" ve "Mavi" gruplandırmayı yapın:
- Program tarafından sağlanmayan renkler için çıktıyı düzenleyin:
- Komut dosyasını bir tarayıcıda test edin.
var color = komut ("Hangi renk?"); |
var color = komut istemi ("Ne renk?");
geçiş (renk) (durum "kırmızı": uyarı ("kırmızı"); ara; durum "yeşil": uyarı ("yeşil"); ara; // ...
değişken ise renk"kırmızı" değerine sahiptir, ardından kalıcı pencerede çeviriyi görüntüleyin - "kırmızı" ve yapıdan çıkın (break;). değişken ise renk"green" değerine sahiptir, ardından kalıcı pencerede çeviriyi görüntüleyin - "green" ve inşaattan çıkın (break;).
// ... durum "mavi": durum "mavi": uyarı ("mavi"); kırmak; // ...
değişken ise renk mavi veya değişken renk"mavi" değerine sahiptir, ardından kalıcı pencerede çeviriyi görüntüleyin - "mavi" ve inşaattan çıkın (ara;).
// ... varsayılan: uyarı ( "Bu renk hakkında bilgimiz yok")) // sonlandırma anahtarı |
// ... default: alert ("bu renk hakkında bilgimiz yok") // bitiş anahtarı
Js görevi 3_6. Aşağıdaki kod parçacığındaki hataları bulun ve düzeltin:
14 15 16 17 | var numarası = komut istemi ( "1 veya 2 sayısını girin:"); geçiş (sayı) (durum "1" (document.write ("Bir"); ara; durum "2" (document.write ("İki")); ara; varsayılan (document.write ( "1 ve 2 dışında bir değer girdiniz") ; } ; } |
var sayı = komut ("1 veya 2 sayısını giriniz"); geçiş (sayı) (durum "1" (document.write ("Bir"); ara; durum "2" (document.write ("İki")); ara; varsayılan (document.write ("Girdiniz") 1 ve 2 "););) dışında bir değer
Js görevi 3_7. Aşağıdaki kod çalıştırıldığında ekranda ne görüntülenecektir?:
1 2 3 4 5 6 7 8 9 10 11 12 13 | var değeri = "2"; geçiş (değer) (durum "1": durum "2": durum "3": belge.write ("Merhaba"); kırılma; durum "4": durum "5": belge.write ("Dünya"); varsayılan: document.write ("Hata");) |
var değeri = "2"; geçiş (değer) (durum "1": durum "2": durum "3": belge.write ("Merhaba"); ara; durum "4": durum "5": belge.write ("Dünya"); varsayılan: document.write ("Hata");)
Js görevi 3_8. Kullanıcıdan bir sayı istenecektir - daldaki karga sayısı. Girilen numaraya bağlı olarak (en fazla 10), mesajı görüntüleyin: - Bir dalda oturmak 1 karga- Bir dalda oturur 4 karga- Bir dalda oturur 10 karga
- Girilen sayıya göre kelimenin sonu değişir "Karga".
- Kontrol etmek için Switch javascript deyimini kullanın.
- Bu sayfayı sonuçlar klasörüne kaydedin (daha fazla çalışma için faydalı olacaktır).
Otokontrol için sorular:
- Yapının koşullu bir operatör olarak kullanılması ne zaman tavsiye edilir? değiştirmek?
- Bir ifadedeki varsayılan blok ne için? değiştirmek?
- İnşaatta break ifadesinin kullanılması zorunlu mu? değiştirmek?
- Bir işleçte birden çok değer seçeneği için gruplandırma nasıl yapılır? değiştirmek?
JavaScript dilinin döngüsel operatörleri - İçin
Sözdizimi:
for (sayacın başlangıç değeri; koşul; sayacın artışı) (//..ifade bloğu ..)
Önemli: Javascript'te bir döngü, döngüsel eylemlerin kaç kez tekrarlanması gerektiği (döngüde kaç yineleme olduğu) önceden bilindiğinde kullanılır.
- Yineleme sayacının başlangıç değeri olarak bir atama ifadesi kullanılır: örneğin, i = 0 - döngü sayacı sıfırdan başlar:
- Sayacın artışı, sayacın artması gereken adımı belirtir: örneğin, döngünün her yinelemesine, artışının eşlik edeceğini belirtir. 1 :
- Döngü koşulu, sayacın son değeridir: örneğin, i10 döngüyü durdurur:
for (var i = 0; koşul; sayaç artışı) (//..ifade bloğu ..)
for (var i = 0; koşul; i ++) (//..ifade bloğu ..)
for (var i = 0; i<10; i++) { //..блок операторов.. }
Javascript'te bir for döngüsü kullanma örneğine bakalım:
Örnek 5: Bir dizi sayı yazdırın 0 1 2 3 ... 9 , her rakam yeni bir satırda. 0 1 2 ... 8 9
✍ Çözüm:
- Bir sayı dizisini görüntülemek için, değerini değiştirmesi gereken for döngüsünün sayacını kullanacağız. 0 önce 9 sırasına göre.
- Bu nedenle, döngü sayacının başlangıç değeri değeri ayarla 0 ; olarak çevrim koşulları nihai değeri ayarlayın - ii = 9; karşı adım eşit olmalıdır 1 (i ++) dizinin üyeleri arasındaki fark bir olduğundan:
- Komut dosyasını bir tarayıcıda test edin.
for (var i = 0; i<10; i++)
{
document.write(i+"
");
}
Örnekte, i ++ sayacının artışı sırasıyla ekranda görüneceğinden, döngü sayacının değerleri ekranda görüntülenir. 0 1 2 3 ... 9
, her rakam yeni bir satırda olacak şekilde (etiket
).
Js görevi 3_9. 1 önce 15 .
- Bir sayı dizisi olarak bir döngü sayacı kullanın için.
- Bir toplayıcı değişkeni için değişken tanımlayıcısını kullanın toplam.
Kod parçacığı:
(var i = ...; ...; ...) için (toplam = toplam + ...;) ...
Döngü çıkış ifadeleri kırmak ve devam etmek javaScript'te. Şebeke çıkış
break ifadesi, tüm döngü gövdesinin yürütülmesini kesintiye uğratır, yani. javaScript'te döngüden çıkar.
Devam ifadesi, döngünün geçerli yinelemesinin yürütülmesini kesintiye uğratır, ancak aynı zamanda, bir sonraki yinelemeden döngünün yürütülmesine devam eder.
Bir örnek kullanarak break ve Continue ifadelerinin işleyişini ele alalım:
Örnek: Kod parçacığının algoritmasını çözün. Ne görüntülenecek?
Kod parçacığı:
1 2 3 4 5 6 | for (var i = 0; i<
10
;
i++
)
{
if
(i==
4
)
continue
;
document.write
(i+
" "); if (i == 8) kırılır;) |
for (var i = 0; i<10;i++)
{
if (i==4) continue;
document.write(i+"
"); if (i == 8) kırılır;)
✍ Çözüm:
- Örneğin üçüncü satırı, rakamın neden olduğu bir koşul içerir. 4 görüntülenmeyecek: operatör devam etmek mevcut olanı tamamlamadan döngünün bir sonraki yinelemesine gidecektir.
- 5 numaralı satırda, döngüden çıkılır, ancak aynı zamanda sayı 8 çıktı ifadesi koşuldan önce geldiğinden (4. satırda) görüntülenecektir. tanışmış olmak kırmak, yorumlayıcı döngüyü sonlandıracaktır.
- O. ekran şunları gösterecektir: 0 1 2 3 5 6 7 8 - yeni bir satırdaki her rakam.
Js görevi 3_10. Tüm tam sayıların toplamını şuradan çıkar: 1 önce 15 , toplam sayı hariç 5 ve 7 .
Çıkış ifadesi
Javasctipt dili, program kodundan bir çıkış operatörü sağlar - çıkış operatörü.
Çoğu zaman operatör, kullanıcı giriş hatasını ortadan kaldırmak için kullanılır.
Bir örnek düşünelim:
Örnek 6: Kullanıcıdan bir sayı girmesini isteyin. Bir sayı girilmezse, mesajı görüntüleyin "Bir numaraya ihtiyacın var!" ve programı durdurun.
✍ Çözüm:
- Bir değişkeni başlat numara kullanıcı tarafından modda girilen değer:
- Bir dizeyi tam sayıya dönüştürmek için parseInt işlevini kullanarak, girilen değerin sayı olup olmadığını kontrol edin:
- Değişkenin değerini kontrol edin numara isNaN işlevini kullanarak:
- Tarafından "yalan" kuralı değişkenin değerini kontrol etmek için düzenleyin x... Değer sayısal değilse, karşılık gelen bir not yazdırın ve programı sonlandırın:
- Programa devam etmek için (girilen değer bir sayı ise), bir giriş istemi ile aşağıdaki pencereyi görüntüleyin:
- Komut dosyasını bir tarayıcıda test edin.
var sayı = komut ("Bir sayı girin");
sayı = ayrıştırma (sayı); // NaN döndürecek - sayı değil
Bir sayı girilmezse, işlev NaN değerini döndürür (İngilizce'den. sayı değil- sayı değil).
x = isNaN (sayı); // değer sayısal değilse true değerini döndürür
IsNaN işlevi değer döndürür NS değişkenin bir sayı olmaması durumunda
if (x) (uyarı ("Bir sayı gerekli!"); çık; // programdan çık)
alert ("İkinci sayıyı giriniz"); // sayı olmayan bir sayı girerseniz ifade yürütülmez
Otokontrol için sorular:
- Döngünün üç parametresini listeleyin için ve amaçlarını açıklayınız.
- Hangi operatörler döngüden çıkmak ve onu kesmek içindir? Kullanımlarına örnekler veriniz.
- Operatör ne içindir çıkış?
Bir FOR'da birden fazla sayıcı olması mümkün müdür?
for döngüsü ile ilginç bir çalışma şu şekilde yapılabilir: bir döngüde aynı anda iki sayaç.
Bir örnek düşünelim:
Örnek 7: Komut dosyasını kullanarak, aşağıdaki değişken-değer çiftlerini üç satıra yazdırın: i = 0 j = 2 i = 1 j = 3 i = 2 j = 4
✍ Çözüm:
- for döngüsünde, iki sayaç düzenleyin: sıranın çıktısını almak için sayaç i 0 1 2 , sıranın çıktısını almak için j sayacı 2 3 4 :
- Her satırdaki çıktı için etiketi kullanın
:
1 2 3 | için (i = 0, j = 2; ben< 10 , j< 5 ; i++, j++ ) { } |
için (i = 0, j = 2; ben<10, j<5; i++, j++) { }
For döngüsünün üç parametresinin her biri, şimdi listelenen iki değere sahiptir. virgülle ayrılmış(örneğin, iki değerli ilk parametre: i = 0, j = 2). Parametrelerin kendileri listelenir noktalı virgülle ayrılmış(;).
1 2 3 4 | için (i = 0, j = 2; ben<
10
,
j<
5
;
i++,
j++
)
{
document.write
(" ben = ", ben," j = ", j);) |
için (i = 0, j = 2; ben<10, j<5; i++, j++)
{
document.write("
ben = ", ben," j = ", j);)
Anında sayfa oluşturma: nasıl?
Bir sonraki görevi yapmadan önce bir örnek düşünün. dinamik olarak html sayfası oluşturma javascript kullanarak.
Örnek 8:
- Kullanıcı tarafından girilen verilere bağlı olarak web sayfasında madde imli ve numaralı listelerin dinamik olarak oluşturulması gerekir: kullanıcıdan giriş yapmasını isteyin liste görünümü(numaralı (1 numara) veya etiketli (2 numara) ve ardından liste öğesi sayısı.
- Yanıta bağlı olarak, gerekli sayıda öğeyle birlikte madde işaretli veya numaralı bir listenin etiketlerini görüntüleyin.
- Var olmayan bir liste türü girilirse, mesajı görüntüleyin. "Lütfen doğru türü girin!" ve programdan () çıkın.
Etiketleri hatırlayalım:
numaralı liste etiketleri:
<ol> <li> li > <li> li > <li> li > </ ol> |
madde işaretli liste etiketleri:
var listType = komut istemi ("madde işaretli liste için" 1 ", numaralandırılmış liste için " 2 ");
- , işaretli (2 numara) için - etiket
- ... Farklı bir değer girilirse, bir not yazdırın ve programı sonlandırın:
- Bir değişkeni başlat kolvo kullanıcı tarafından modda girilen değer:
- Bir dize değerini sayısal bir değere dönüştürmek için parseInt işlevini kullanın:
- Listeler ilgili etiketlerle kapatıldığından, listenin türüne bağlı olarak kapanış etiketlerini yazdırın:
- ") else (uyarı ("Doğru türü girin "); çıkış;)
var kolvo = komut ("Öğelerin sayısını girin");
for (var i = 1; i<=kolvo; i++) document.write("");
if (listType == "1") document.write ("") else if (listType ==" 2 ") document.write ("" ) ; |
if (listType == "1") document.write ("
Js görevi 3_11.
Etiketleri görüntüleyen bir komut dosyası yazın giriş girilen basamağa bağlı olarak farklı türlerde (kontroller):
1
- Metin alanı,
2
- buton,
3
- radyo(değiştirmek).
Görüntülenen etiketlerin sayısı da talep edilmelidir.
Etiketleri hatırlayalım:
1 - metin alanı için: 2 - düğme için: 3 - radyo için:
Çıktı örneği:
Js görevi 3_12. Döngüler için javascript kullanarak 9x9'luk bir dama tahtası çizin. Tahtayı "Çiz", tablo için html etiketleri olmalıdır:
Etiketleri hatırlayalım:
<tablo kenarlığı = "1" genişlik = "%30"> <tr> <td>-</ td> | -</ td> </ tr> </ tablo> |
- | - |
- 9 çizgi çizmek için, bir sayaç i ile harici bir for döngüsü düzenlemeniz gerekir.
- Her satıra 9 hücre çizmek için, j sayacıyla bir iç (iç içe) for döngüsü düzenlemeniz gerekir.
- Hücre ve satır etiketlerini oluşturmak için document.write yöntemini kullanın.
Sonuç:
Bunlara ek olarak:
- Döngü sayaçlarını (i ve j) kullanarak çarpım tablosunu tablo hücrelerine yazdırın.
- İlk satırı ve ilk sütunu kırmızı bir arka plana sahip olarak görüntüleyin (bgcolor tablo hücresi özniteliği):
<td bgcolor = "kırmızı">-</ td> -
Sonuç:
Otokontrol için sorular:
- Dinamik sayfa oluşturmanın ne anlama geldiğini açıklayın?
- Dinamik sayfa oluşturma için en sık kullanılan dil yapısı nedir?
JavaScript dilinin döngüsel ifadeleri - while
while ifadesinin sözdizimi şöyledir:
while (koşul) (//..ifade bloğu ..);
Örnek:İkiye kadar güç gösterme 1000 (2, 4, 8 ... 512). uyarı () yöntemini kullanın
✍ Çözüm:
- Komut dosyasının listesi:
- Sonucu bir tarayıcıda test edin.
1 2 3 4 5 | var a = 1; süre (bir< 1000 ) { a*= 2 ; alert(a) ; } |
var a = 1; süre (bir< 1000){ a*=2; alert(a); }
a * = 2 → bileşik atama işlemi kullanılır: atama ile birleştirilmiş ürün, yani. a = a * 2 ile aynı
Bir süre döngüsünde break ve Continue ifadeleri nasıl çalışır?
Örnek:
var a = 1; süre (bir< 1000 ) { a*= 2 ; if (a== 64 ) continue ; if (a== 256 ) break ; alert(a) ; } |
var a = 1; süre (bir< 1000){ a*=2; if (a==64) continue; if (a==256) break; alert(a); }
İkinin güçleri şu şekilde çıkacak 128 kapsayıcı ve değer 64 atlanacak. Onlar. iletişim kutularında göreceğiz: 2 4 8 16 32 128
Js görevi 3_13. Aşağıdaki kod parçacığı hangi değerleri gösterecek?
var sayaç = 5; while (sayaç< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }
Js görevi 3_14. ereksiyon kodu yaz NS dereceye kadar y bir süre döngüsü kullanarak. Değişken değerlerini sorgulayın ve uyarıyı () kullanarak sonucun çıktısını alın.
Kodu tamamlayın:
1 2 3 4 5 6 7 8 9 | var x = ...; var y = ...; sayaç = 1; chislo = x; while (...) (chislo = x * ...; sayaç = ...;) alert (chislo); |
var x = ...; var y = ...; sayaç = 1; chislo = x; while (...) (chislo = x * ...; sayaç = ...;) alert (chislo);
A Bir sayının faktöriyelini bulmak için tasarlanmış programdaki hatayı düzeltin:
1 2 3 4 5 6 7 8 9 10 11 12 13 | var counter = komut istemi ("Bir sayı girin"); var faktöriyel = 1; belge.yaz ( "Sayı faktörü:"+ sayaç + "! ="); do (if (sayaç == 0) (faktöriyel = 1; ara;) faktöriyel = faktöriyel / sayıcı; sayıcı = sayıcı + 1;) while (sayaç> 0); belge.write (faktöriyel); |
var counter = komut istemi ("Bir sayı girin"); var faktöriyel = 1; document.write ("Sayı faktörü:" + sayaç + "! ="); do (if (sayaç == 0) (faktöriyel = 1; ara;) faktöriyel = faktöriyel / sayıcı; sayıcı = sayıcı + 1;) while (sayaç> 0); belge.write (faktöriyel);
Js görevi 3_16. Kullanıcı girişi için programı değiştirin:
Kullanıcı gerçekten bir ad girene kadar bir kullanıcı adı isteyin (yani alan gerçekten doldurulur ve iptal tuşuna basılmaz). Ad girildiğinde, çıktı "Merhaba isim!"... belge.
Javascript'te hatalar nasıl bulunur?
Bazı durumlarda, sayfadaki kod nedense çalışmıyor. Hata nerede aranır? Bu gibi durumlarda try..catch ifadesini kullanabilirsiniz.
try..catch deyimi bir kod parçasını çalıştırmayı dener ve kodda bir hata varsa, ekranda bir hata görüntülenmesi mümkündür.
Hata, e.message nesnesinde saklanır.
Bir operatörün çalışmasını bir örnek kullanarak ele alalım:
Örnek: programda bir hata içeren bir ifade yazın. Şüphelenilen hatalı kodda bir hata olup olmadığını kontrol edin: kodda bir hata varsa, bir mesaj görüntüleyin "hata işleme: hata adı"... Hatalı operatörü kontrol ettikten sonra, kodda bir hata olup olmadığına bakılmaksızın mesajı verin. "bitirme eylemleri"
✍ Çözüm:
- Hatalı bir mesaj olarak, bir hatayla yazılmış olan komut () yöntemini kullanacağız - balo ()... Hata mesajını bir try bloğu içine alın:
- Hata mesajı bir yakalama bloğuna yerleştirilmelidir:
- Kodda bir hata olup olmadığına bakılmaksızın görüntülenmesi gereken son mesajı bir nihayet bloğuna yerleştirin:
uyarı ("önce"); try (promt ("bir sayı girin"); // hatalı operatör)
İngilizceden deneyin. - "deneyin", bu nedenle, hata içerebilecek bir kod parçasının önüne bir try ifadesi koyarız (bizim durumumuzda gerçekten bir hata vardır).
6 7 8 9 | yakalamak (e) (uyarı ( "Hata yönetimi:"+ e.mesaj); ) |
catch (e) (uyarı ("hata işleme:" + e.message);)
Gerçekten bir hata varsa, catch ifadesi bu hatayı e nesnesinde saklar. Daha sonra e.message iletişim kutusunda görüntülenebilir.
nihayet (uyarı ("bitirme eylemleri");) uyarı ("sonra");
Bir hata varsa, bunu örneğimizde görüntüledikten sonra tercüman catch bloğunu yürütmeye devam edecek ve ardından son olarak (İngilizce "tamamlama", "nihayet" ten) olup olmadığına bakılmaksızın her zaman yürütülecektir. bir hataydı ya da değildi. Catch bloğunda bir hata olsa bile.
Önemli: Son blok inşaatta isteğe bağlıdır.
Js ataması 3_17. Aşağıdaki değişikliklerle yukarıdaki örneği izleyin:
Özet:
Derste aşağıdaki javascript dil operatörleri ve yapıları ele alındı:
Javascript koşullu ifadeler:
Döngü operatörleri:
Son görev Js 3_18.
İki kişilik bir oyun oluşturun:
- Program, ilk oyuncudan bir sayı girmesini ister. 1 önce 100 (ikinci oyuncu girilen sayıyı görmez). Daha sonra ikinci oyuncudan girilen sayıyı tahmin etmesi istenir. Mesaj yanıt olarak görüntülenir "bir kaç" veya "birçok" Girilen cevaba bağlı olarak. Oyuncu doğru tahmin ederse, tebrikler görüntülenir. Yanlış tahmin ederse, oyun devam eder (sayı gerçekten tahmin edilene kadar).
- Deneme sayısını hesaplayın ve sayı tahmin edildiğinde sonucu döndürün.
Otokontrol için sorular:
- For In döngüsünün kullanılması ne zaman önerilir? Kullanımının bir örneği nedir.
- try..catch ifadesinin amacı nedir?
- Her try..catch ifade bloğunun amacını açıklayın.
JavaScript, etkileşimli Web sayfaları oluşturmak için kullanılabilecek bir dizi kompakt operatörü destekler. Bu bölüm, bu operatörlere genel bir bakış sağlar.
Bu bölüm, her operatöre genel bir bakış sağlayan aşağıdaki bölümleri içerir:
- Operatör Bloğu: { }
- Koşullu Operatörler: eğer ... başka ve değiştirmek
- Döngü Operatörleri: for, while, do ... while, etiketle, ara ve devam et (etiket kendisi bir döngü operatörü değildir, ancak genellikle belirtilen operatörlerle birlikte kullanılır)
- Nesne Manipülasyon Operatörleri: için ... içinde ve ile birlikte
- Yorumlar (1)
- İstisna İşleme Operatörleri: dene ... yakala ve fırlatmak
JavaScript'te ifadeleri ayırmak için noktalı virgül (;) kullanın.
JavaScript Çekirdeği kitabına bakın. Dizin. Bu bölümdeki operatörler hakkında ayrıntılar.
1. Operatör bloğu
İfade bloğu, ifadeleri birlikte gruplamak için kullanılır. Blok, küme parantezleri ile sınırlandırılmıştır:(ifade1 ifade2.. ifaden)
2. Koşullu ifadeler
Koşullu ifade, belirtilen koşul yerine getirildiğinde yürütülen bir dizi komuttur. NS... JavaScript iki koşullu operatörü destekler: eğer ... başka ve değiştirmek.2.1. If ... else ifadesi
Bu operatör, boolean koşulu sağlandığında belirli operatörleri yürütmek için kullanılır. NS; isteğe bağlı bir blok kullan Başka koşul varsa diğer operatörleri yürütmek için yanlış... if ifadesi şöyle görünür:if (koşul) (ifade1) [else (ifade2)]
Koşul, içinde değerlendirilen herhangi bir JavaScript ifadesi olabilir. NS veya yanlış... Yürütülen ifadeler, iç içe geçmiş ifadeler dahil olmak üzere herhangi bir JavaScript ifadesi olabilir. Eğer... İfadelerden sonra birden fazla ifade yürütmeniz gerekiyorsa Eğer veya Başka, bu yürütülebilir ifadeleri kaşlı ayraçlar () içine almalısınız.
Koşullu bir ifadede basit atamaları kullanmamalısınız. Örneğin, aşağıdaki gibi kod KULLANMAYIN:
Koşullu bir ifadede atama kullanmanız gerekiyorsa, atama operatörünün etrafına fazladan parantez ekleyin. Örneğin, eğer ((x = y)).
İlkel karıştırmayın Boole-değerler NS ve yanlış değerlerle NS ve yanlış nesne Boole... değeri olmayan herhangi bir nesne Tanımsız, boş, sıfır, ** NaN ** veya nesne dahil boş dize Boole anlamı ile yanlış, hesaplanır NS koşullu bir ifadeye geçtiğinde. Örneğin:
var b = new Boolean (yanlış); eğer (b) // bu koşul doğru olarak değerlendirilir
Örnek.
Bu örnekte, fonksiyon checkDataİadeler NS içindeki karakter sayısı ise Metin-nesne üçe eşittir; aksi takdirde bir uyarı yazdırır ve döner yanlış.
function checkData () (if (belge. form1. üç Karakter. değer. uzunluk == 3) (true true) else (alert (" Tam olarak üç karakter girin."+ belge. form1. üçKarakter değeri +" geçerli değil. ") yanlış döndür))
2.2. ifadeyi değiştir
Şebeke değiştirmek programın ifadeyi değerlendirmesine izin verir ve ifadenin değerini vaka etiketindeki değerle eşleştirmeye çalışır. Bir eşleşme bulunursa, program ilişkili ifadeyi yürütür. Şebeke değiştirmeköyle görünüyor:switch (ifade) (durum etiketi: deyim; break; büyük/küçük harf etiketi: deyim; break; ... varsayılan: deyim;)
Program önce arar etiket değerle eşleşen ifade ve ardından ilişkili ifadeyi yürütür. Eşleşiyorsa etiket bulunamadı, program isteğe bağlı olarak görünüyor varsayılan Beyan/ varsayılan operatördür ve bulunursa ilişkili operatörü yürütür. Eğer varsayılan Beyan bulunamadı, program ifadenin sonundan sonra ifadeyi yürütmeye devam eder. değiştirmek.
Opsiyonel operatör kırmak etiketle ilişkili dava etiket, programın deyimin yürütülmesini kesintiye uğratacağını garanti eder değiştirmek, bulunan eşleşmenin ifadesi yürütülür yürütülmez ve ifadeyi takip eden ifadeyle yürütmeye devam eder. değiştirmek... Eğer kırmak eksik, program deyimin içindeki bir sonraki deyimi yürütmeye devam ediyor değiştirmek.
Örnek.
Burada eğer ifade“Muz” olarak değerlendirir, program “Muz” durumuyla eşleşir ve ilgili ifadeyi yürütür. Bir ara bulunursa, program kesintiye uğrar. değiştirmek ve ifade bloğundan sonra ifadeyi yürütür değiştirmek... Eğer kırmak eksik, operatör dava“Kiraz” da yürütülecek.
switch (expr) ("Portakallar" durumu: belge. write (" Portakalın kilosu 0,59 dolar.
"); break; case" Elmalar ": belge. write (" Elmalar pound başına 0,32 dolar.
"); ara; durum" Muz ": belge. yaz (" Muzların kilosu 0,48 dolar.
"); ara; durum" Kirazlar ": belge. yaz (" Kirazların kilosu 3,00 dolar.
"); break; varsayılan: belge. write (" Üzgünüz, "+ i +" tükendi.
");) belge. yaz ("); İstediğin başka bir şey var mı?
"
)
;
3. Döngü operatörleri
Döngü/ döngü belirtilen koşul karşılanırken birden çok kez yürütülen bir dizi ifadedir. JavaScript döngü ifadelerini destekler için, yaparken ve süre, birlikte etiket (etiket kendisi bir döngü operatörü değildir, ancak genellikle belirtilen operatörlerle birlikte kullanılır). Alternatif olarak, operatörleri kullanabilirsiniz. kırmak ve devam etmek döngü içi operatörler.Başka bir döngü operatörü, için ... içinde, ayrıca ifadelerini bir döngüde yürütür, ancak nesneleri işlemek için kullanılır. Bkz. Nesne Manipülasyon Operatörleri.
3.1. Açıklama için
Döngü için belirtilen değere kadar tekrar eder yanlış... JavaScript döngüsü için döngülere benzer için Java ve C. Operatörü içinöyle görünüyor:for ([initialExpression]; [condition]; [incrementExpression]) (ifadeler)
döngü ne zaman için yürütülür, aşağıdakiler olur:
1. İfadeyi başlatma ilkifade varsa, yürütülür. Bu ifade genellikle bir veya daha fazla döngü sayacını başlatır ve sözdizimi herhangi bir karmaşıklık ifadesine izin verir. Bu ifade aynı zamanda değişkenleri de bildirebilir.
2. Koşul / koşul ifadesi değerlendirilir. eğer değer koşul - doğru, deyimler / döngü deyimleri yürütülür. eğer değer koşul - yanlış, Çevrim içinçalışmayı durdurur. eğer ifade Koşul tamamen yok olduğu varsayılır koşul doğrudur.
3. Gerçekleştirildi ifadeler.
4. İfadeyi güncelle artışifadesi, varsa yürütülür ve kontrol Adım 2'ye döner.
Örnek.
Bu fonksiyon operatörü içerir. için kaydırılabilir bir listede seçilen seçeneklerin sayısını sayar (nesne Seçme birden fazla öğe seçmenize izin verir). Şebeke için bir değişken bildirir ben ve sıfıra başlatır. Daha az olup olmadığını kontrol eder ben nesne seçenekleri sayısı Seçme, operatör tarafından yürütülür Eğer ve değişkenin artması ben her döngü geçtikten sonra birer birer.
3.2. Yap ... while ifadesi
Şebeke yaparken belirtilen ifade - olana kadar tekrar eder yanlış.Şebeke yaparkenöyle görünüyor:do (ifade) while (koşul)
Beyan koşul / koşul kontrol edilmeden önce bir kez yürütülür. Eğer koşul - doğru, ifade yeniden yürütülür. Her yürütmenin sonunda Koşul kontrol. Eğer koşul - yanlış, yürütme durur ve kontrol operatöre aktarılır. yaparken.
Örnek.
Bu örnekte, döngü yapmak en az bir kez yinelenir ve yinelemeleri ben az 5 .
do (i + = 1; document.write (i);) while (i< 5 ) ;
3.3. ifade ederken
Şebeke süre belirtilen koşul olduğu sürece deyimlerini yürütür - NS... Şebeke süreöyle görünüyor:while (koşul) (deyimler)
Eğer Koşul olur yanlış, döngü içindeki deyimler çalışmayı durdurur ve kontrol döngüden sonraki deyime aktarılır.
Koşul / koşul, döngü içindeki ifadeler yürütülmeden önce kontrol edilir. Eğer Koşulİadeler NS, operatörler yürütülür ve Koşul tekrar kontrol edildi. Koşul dönerse yanlış, çevrimin yürütülmesi sonlandırılır ve kontrol, operatörün ardından operatöre devredilir. süre.
Örnek 1.
bu döngü süre kadar yinelenir n az 3 :
n = 0; x = 0; süre (n< 3 ) { n ++; x += n ; }
Her yinelemede döngü artar n ve bu değeri değişkene ekler x... Sonuç olarak, x ve n aşağıdaki değerleri alın:
- İlk geçişten sonra: n = 1 ve x = 1
- İkinci geçişten sonra: n = 2 ve x = 3
- Üçüncü geçişten sonra: n = 3 ve x = 6
Örnek 2: Sonsuz döngü.
Döngü koşulunun olduğundan emin olun yanlış; aksi takdirde döngü asla kesintiye uğramaz. Sonraki Döngü Operatörleri süre koşul asla olmayacak çünkü süresiz olarak yürütülür yanlış:
while (true) (uyarı ("Merhaba, dünya"))
3.4. Etiket operatörü
Şebeke etiket programın herhangi bir yerinden başvurulabilen bir tanımlayıcıdır. Örneğin, kullanabilirsiniz etiket döngüyü tanımlamak ve ardından operatörleri kullanmak için kırmak veya devam etmek döngüyü kesmek veya yürütmeye devam etmek için.Operatör sözdizimi etiketöyle görünüyor:
etiket: açıklama
Değer etiket ayrılmış bir kelime olmayan herhangi bir geçerli JavaScript tanımlayıcısı olabilir. tarafından tanımlanan ifade etiket, herhangi bir operatör olabilir.
Örnek.
Bu örnekte etiket işaret Döngüsü döngüyü tanımlar süre.
markLoop: while (theMark == true) doSomething(); )
3.5. Break ifadesi
operatörü kullan kırmak döngüyü kesmek değiştirmek veya etiketli bir operatör etiket.- kullanıyorsanız kırmak olmadan etiket, en yakın içeriği derhal keser süre, yaparken, için veya değiştirmek ve kontrolü bir sonraki operatöre devreder.
- kullanıyorsanız kırmak ile birlikte etiket, belirtilen işaretli ifadeyi keser.
bir . kırmak 2. etiketi kırmak
İlk seçenek, en yakın içeren döngüyü keser veya değiştirmek; ikinci seçenek, etikete sahip belirtilen operatörü keser.
Örnek.
Bu, değere sahip öğenin dizini bulunana kadar dizinin öğeleri üzerinde yinelenir. değer:
için (i = 0; ben< a . length ; i ++ ) { if (a [ i ] = theValue ) break ; }
3.6. Devam deyimi
Şebeke devam etmek ifadeleri yeniden başlatmak için kullanılır süre, yaparken, için ve etiket.- kullanıyorsanız devam etmek olmadan etiket, en yakın döngünün geçerli yinelemesini keser süre, do-while veya için ve bir sonraki yineleme ile bu döngüye devam eder. Operatörden farklı olarak ara, devam et döngünün yürütülmesini tamamen kesmez. bir döngüde süre O gider Koşul... Bir for döngüsünde artış-ifade.
- kullanıyorsanız ile devam edin etiket, bununla tanımlanan döngü operatörü için geçerlidir. etiket.
bir . devam 2. etikete devam et
Örnek 1.
Bu bir döngü örneğidir süre operatörlü devam etmek değer ise yürütülür ben eşittir 3 ... Böylece, n 1, 3, 7 ve 12 değerlerini alır.
ben = 0; n = 0; süre (ben< 5 ) { i ++; if (i == 3 ) continue ; n += i ; }
Örnek 2.
Operatör olarak işaretlendi kontrol, olarak işaretlenmiş bir operatör içeriyor kontrol... Eğer bulunursa devam etmek, program geçerli yinelemeyi keser kontrol ve sonraki yinelemeyi başlatır. Devam etmekle her karşılaşıldığında, kontrol durumu dönene kadar tekrar tekrar başlar yanlış... iade edilirse yanlış, ifadenin geri kalanı yürütülür kontrol ve kontrol koşulu false döndürene kadar tekrar eder. dönerse yanlış, program aşağıdaki ifadeden çalışmaya devam eder kontrol.
devamı varsa etiket için kontrol, program deyimin başından itibaren yürütmeye devam edecek kontrol.
checkiandj: while (ben<
4
) {
document
.
write
(i
+
"
"); i + = 1; checkj: while (j> 4) (belge. write (j +"
"); j - = 1; eğer ((j% 2) == 0) devam et j; belge. yaz (j +" tektir.
");) belge. yaz (" i = "+ i +"
"); belge. yaz (" j = "+ j +"
"
)
;
}
4. Nesneleri manipüle eden operatörler
JavaScript operatörleri kullanır için ... içinde ve ile birlikte nesneleri işlemek için.4.1. için ... açıklamada
Şebeke için ... içinde nesnenin tüm özellikleri üzerinde belirtilen değişken üzerinde yinelenir. JavaScript, ulaşılan her özellik için belirtilen operatörleri yürütür. Şebeke için ... içindeöyle görünüyor:For (nesnedeki değişken) (
Örnek.
Bu işlev, argüman olarak bir nesne ve bir nesne adı alır. Ardından, bu nesnenin tüm özelliklerini yineler ve bir dize döndürür - özellik adları ve değerlerinin bir listesi.
işlev dump_props (nesne, nesne_adı) (var sonuç = ""; for (var i in nesne) (sonuç + = nesne_adı + "." + i + "=" + nesne [i] + "
") sonuç + ="
"; sonuç döndür;)
nesne için arabaözellikleri olan Yapmak ve model sonuç şöyle olacak:
araba. marka = Ford arabası. model = Mustang
4.2. ifade ile
Şebeke ile birlikte bir dizi deyim bloğu için varsayılan bir nesne ayarlar. JavaScript, bir ifade bloğu içindeki niteliksiz adlara bakar ve adların varsayılan olarak nesne özellikleri olup olmadığını belirler. Nitelenmemiş ad bir özellik ise, o özellik ifadede kullanılır; aksi takdirde, yerel veya genel bir değişken kullanılır.with ifadesi şöyle görünür:
with (nesne) (ifadeler)
Örnek.
Burada operatör ile birlikte nesne olduğunu belirtir Matematik varsayılan nesnedir. with ifadesinden sonraki ifadeler özelliğe atıfta bulunur PI ve yöntemlere çünkü ve günah bir nesne belirtmeden. JavaScript bir nesneyi kabul eder Matematik bu çağrılar için bir nesne olarak.
var a, x, y ;; var r = 10 ile (Matematik) (a = PI * r * r; x = r * cos (PI); y = r * günah (PI / 2);)
Not:
with ifadesinin kullanılması, programın yürütülmesini önemli ölçüde yavaşlatabilir.
5. Yorumlar
Yorumlar genellikle kodun ne yaptığını açıklar. Yorumlar tercüman tarafından dikkate alınmaz. JavaScript, Java ve C ++ tarzı yorumları destekler:- Satırın başında çift eğik çizgi ile tek satırlık açıklama (//).
- Başında / * ve sonunda * / bulunan çok satırlı yorum.
İşte iki yoruma bir örnek:
// Bu tek satırlık bir yorumdur. / * Ve bu çok satırlı bir tane. Herhangi bir uzunlukta olabilir ve buraya istediğinizi koyabilirsiniz. * /
6. İstisnaları işlemek için operatörler
Operatörle bir istisna atabilirsiniz fırlatmak ve operatörlerle işleyin dene ... yakala.Şebeke dene ... yakala Java istisnalarını işlemek için de kullanılır. JavaScript'te Java İstisna İşleme ve Java'da JavaScript İstisna İşleme konusuna bakın.
6.1. deyimi atın
Şebeke fırlatmak bir istisna atmak için kullanılır. Bir istisna atarsanız, istisnanın değerini içeren bir ifade belirtirsiniz:ifade atmak
Aşağıdaki kod birkaç istisna atar.
"Hata2" atmak; // string değeri olan bir istisna atar 42 atmak; // 42 değeriyle bir istisna atar doğru atmak; // true değeriyle bir istisna atar
Bir istisna atarken nesneyi belirtebilirsiniz. Ardından bloktaki nesnenin özelliklerine başvurabilirsiniz. yakalamak... Aşağıdaki örnek bir nesne oluşturur myUserException tip Kullanıcı İstisnası ve açıklamada kullanır fırlatmak.
// UserException türünde bir nesne oluşturur function UserException (mesaj) (bu. mesaj = mesaj; bu. isim = "UserException";) // Nesnenin bir örneği oluşturulur ve çağrılır myUserException = new UserException ("Değer çok yüksek"); myUserException'ı atın;
6.2. Deneyin ... ifadeyi yakala
Şebeke dene ... yakala bir ifade bloğunu işaretler, bunları yürütmeye çalışır ve bir istisna atıldığında bir veya daha fazla yanıt seçeneği belirtir. Bir istisna oluşursa, operatör dene ... yakala onu yakalar.Şebeke dene ... yakala bir bloktan oluşur denemek bir veya daha fazla ifade ve sıfır veya daha fazla blok içeren yakalamak bir blokta bir istisna atıldığında eylemleri belirten ifadeler içeren denemek... Yani, bir blok yürütmek istiyorsanız denemek ve yürütülmez, kontrolü bloğa aktarırsınız yakalamak... Eğer herhangi bir blok operatörü denemek(veya bir bloktan çağrılan bir fonksiyonun operatörü denemek) bir istisna oluşturur, kontrol hemen bloğa aktarılır yakalamak... İstisna atılmadıysa, blok yakalamak atlandı. Engellemek nihayet bloklar yürütüldükten sonra yürütülür denemek ve yakalamak, ancak deyim bloğunu takip eden deyimin yürütülmesinden önce dene ... yakala.
Aşağıdaki örnek operatörü kullanır dene ... yakala... İşleve iletilen değere göre bir diziden ayın adını isteyen bir işlev çağrılır. Değer, ay numarasıyla (1-12) eşleşmezse, değerle bir istisna atılır. "Geçersiz AyHayır" ve blok operatörleri yakalamak bir değişken ayarla ayAdı anlam "Bilinmeyen".
function getMonthName (ay) (ay = ay - 1; // Ay numarası dizi indeksi ile belirtilir (1 = Ocak, 12 = Aralık) var aylar = new Dizi ("Ocak", "Şubat", "Mar", "Nis", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Ara"); if (ay [ay]! = null) (ay [ay] döndür) else ("InvalidMonthNo" atın) try ( // şu ifadeleri çalıştırmayı deneyin: ayAdı = getMonthName (myMonth) // fonksiyon bir istisna atabilir) catch (e) (monthName = "unknown" logMyErrors (e) // istisnaya neden olan nesne istisna işleyicisine iletilir}
fırlatmak; atılan istisna hakkında bilgi almak için bu kimliği kullanabilirsiniz. JavaScript, bloğa girerken bu tanımlayıcıyı oluşturur yakalamak; tanımlayıcı yalnızca blok yürütme döneminde bulunur yakalamak; blok yürütme tamamlandıktan sonra yakalamak tanımlayıcı artık mevcut değil.
Örneğin, aşağıdaki kod bir istisna atar. Bir istisna oluşursa, kontrol bloğa aktarılır yakalamak.
deneyin ("myException" atın // bir istisna atılır) yakalamak (e) ( // herhangi bir istisnayı işlemek için operatörler logMyErrors (e) // istisna, hata işleyicisine iletilir}
Çoklu yakalama blokları
Tek operatör denemek birden çok koşullu blok içerebilir yakalamak, her biri belirli bir istisna türünü işler. Bu durumda, uygun bir koşullu bloğa giriş yakalamak yalnızca bu blok için belirtilen istisna atıldığında yürütülür. İsteğe bağlı olarak ayrı bir blok da ekleyebilirsiniz yakalamak tüm belirtilmemiş istisnalar için son blok olarak yakalamak operatörde.
Örneğin, aşağıdaki işlev, bağımsız değişkenlerini denetleyen (başka bir yerde bildirilen) diğer üç işlevi çağırır. Kontrol işlevi, kontrol edilen bileşenin geçersiz olduğunu belirlerse, 0 döndürür ve çağıran işlevin belirli bir istisna atmasına neden olur.
function getCustInfo (ad, id, e-posta) (var n, i, e; if (! validate_name (isim)) "InvalidNameException" atın else n = isim; if (! validate_id (id)) "InvalidIdException" atın başka i = id ; if (! validate_email (email)) "InvalidEmailException" fırlatın else e = email; cust = (n + "" + i + "" + e); return (cust);)
koşullu bloklar yakalamak uygun istisna işleyicisinin çağrısını yönetin.
"
) {
// geçersiz kimlikler/tanımlayıcılar için bir işleyiciyi çağırır bad_id_handler (e)) yakalama (e if e == "InvalidEmailException") ( // geçersiz e-posta işleyicisini çağırır bad_email_handler (e)) yakalama (e) ( // günlük dosyasına bilinmeyen bir istisna yazıldı günlükHatası (e))
Sonunda engelle
nihayet bloğu, bloklar yürütüldükten sonra yürütülen ifadeleri içerir. denemek ve yakalamak, ancak ifadeyi takip eden ifadelerin yürütülmesinden önce dene ... yakala... Engellemek nihayet istisnanın atılıp atılmadığına bakılmaksızın yürütülür. Bir istisna atılırsa, blok ifadeleri nihayet blok olmasa bile yürütülür yakalamak istisnayı işlemedi.
blok kullanabilirsin nihayet bir istisna oluştuğunda betiğin doğru şekilde tamamlanması için; örneğin, bir komut dosyasıyla ilişkili bir kaynağı boşaltmanız gerekebilir. Aşağıdaki örnekte, bir dosya açılır ve operatörler onunla çalışır (sunucu tarafı JavaScript, dosyalara erişime izin verir). Dosya açıkken bir istisna atılırsa, blok nihayet komut dosyası başarısız olmadan önce dosyayı kapatır.
openMyFile(); nihayet deneyin (writeMyFile (theData)) (closeMyFile () // kaynak her zaman kapalıdır}
Yuvalama denemesi ... ifadeleri yakalama
Bir veya daha fazla operatörü iç içe yerleştirebilirsiniz dene ... yakala birbirinin içine. iç operatör ise dene ... yakala blok yok yakalamak, blok bir eşleşme için kontrol edilir yakalamak içeren operatör dene ... yakala.