Specialūs operatoriai

JavaScript taip pat turi ir specialius operatorius kurių sąrašas pateiktas žemiau:

  • sąlyginis operatorius
  • kablelio operatorius
  • delete
  • in
  • instanceof
  • new
  • this
  • typeof
  • void

Sąlyginis operatorius

Sąlyginis operatorius tai vienintelis toks operatorius JavaScript kalboje kuris turi apima tris operandus. Operatorius paima viena iš dviejų reikšmių sąlygoje. Sintaksė:

salyga ? val1 : val2

Jei sąlyga TRUE, operatorius tuomet grąžina pirmą reikšmę val1. Kitu atveju paimama antra reikšmė val2. Šį operatorių galite naudoti betkur.

Pavyzdys

var tipas = (amzius >= 18) ? "paauglys" : "vaikas";

tipas kintamasis nustatomas paauglys jei jam jau yra 18, kitu atveju kintamasis nustatomas vaikas.

Kablelio operatorius

Kablelio operatorius papraščiausiai nustato abu operandus ir grąžiną reikšmę iš sekančio operando. Šis operatorius dažniausiai naudojamas for ciklo viduje taip leidžiant sudėtinius kintamuosius atnaujinti kiekvieną kartą.
Kapi pavyzdys, jeigu turime 2-erdvinius masyvus su 10 lementų viduje, žemiau pateiktas kodas naudoja kablelio operatorių pakeisti 2 reikšmes vienu kartu. Kodas grąžina reikšmes įstrižai:

for (var i=0, j=9; i <= 9; i++, j--)
   document.writeln("a["+i+"]["+j+"]= " + a[i][j])

delete

delete operatorius ištrina objektą, objekto reikšmę, elementą ar nustatytą raktą masyve. Sintaksė:

delete objPav
delete objPav.property
delete objPav[raktas]
delete property 

Kur yra objPav tai objekto pavadinimas, property egzistuojanti nustatyto objekto reikšmė, ir raktas masyvo raktas kurį reikia pašalinti.

Jūs taip pat galite naudoti delete operatorių ištrinti nustatytus kntamuosius, bet ne tuos kintamuosius kurie nustatyti var tipu.
Jei delete operatoriaus veiksmai pavyko, nustatoma objekto reikšmė kaip undefined. delete operatorius grąžina TRUE jei operacija galima; grąžina FALSE jei operacija negalima.

x = 42
var y = 43
Obj = new Number()
Obj.h = 4      // sukuriama parametras h
delete x       // grąžina true (galima ištrinti nustatytą kintamajį)
delete y       // grąžina false (negalima ištrinti kintamojo nustatyto var tipu)
delete Math.PI // grąžina false (negalima ištrinti neapibrėžtos reikšmės)
delete Obj.h // grąžina true (galime ištrinti vartotojo nustatytą reikšmę)
delete Obj // grąžina true (galima ištrinti jei apibrėžta netiesiogiai)

in

operatorius in grąžina TRUE jei nustatyta reikšmė nustatytame objekte egzistuoja. Sintaksė:

Reiksme in Objektas

Kur yra Reiksme kintamasis arba skaičius atitinkantis masyvo reikšmės pavadinimą, ir Objektas tai objekto pavadinimas.
Žemiau pateiktas operatorius parodo kaip veikia in operatorius:

// Arrays
medziai = new Array("azuolas","berzas","klevas","liepa","obelis")
0 in medziai        // grąžina true
3 in medziai        // grąžina true
6 in medziai        // grąžina false
"berzas" in medziai    // grą-ina false (turite nustatyti masyvo raktą,
                  // o ne masyvo reikšmę)
"length" in medziai // grąžina true (length tai masyvo reikšmė)
 
// Neapibrėžtos reikšmės
"PI" in Math          // grąžina true
Kint = new String("koralai")
"length" in Kint // grąžina true
 
// Įprasti objektai
masinos = {make:"Honda",model:"Accord",year:1998}
"make" in masinos  // grąžina true
"model" in masinos // grąžina true

instanceof

instanceof operatorius naudojamas tuomet kai norime sutikrinti pateiktą kintąmąjį su kintamojo nustatytu palyginimui tipu. Sintaksė:

ObjektoPav instanceof ObjektoTipas

Kur yra ObjektoPav tai objekto pavadinimas kuris susijęs su ObjektoTipas, ir ObjektoTipas objekto tipas, panašiai kaip Data (Date), masyvas (Array).
Naudokite šį operatorių tuomet kai norite patikrinti tipą vykdymo metu. Kaip pavyzdys kartais „gaudydami“ įvykius galite susimaišyti kas ką „gaudo“ tad ši dalis puikiai tinka atskirti įvykiu tipus.
Kaip pavyzdys, žemiau pateiktas kodas tikrina ar nustatytas kintamasis Data yra Datos (Date) objektas. Kadangi Data kintamasis yra Datos (Date) objekto dalis, tuomet bus įvykdomas sąlygos sąkinys.

Data = new Date(1995, 12, 17)
if (Data instanceof Date) {
   // Sąlyga kurią reikia įvykdyti
}

Discussion

Enter your comment (wiki syntax is allowed):

Asmeniniai įrankiai