JavaScript – valodas sintakse

Download Report

Transcript JavaScript – valodas sintakse

Web aplikāciju tehnoloģijas
#1.

Number
 0.3, 12

Boolean
 true, false

String
 ‘hello’, “rinda”


null
undefined
 nav vērtības

Objekti
 Array
 String
 Date
 Function
 ...


Deklarācija:
var orange=“apelsīns”



Objekti:
var orange = new String(“apelsīns”)
var ok = new Boolean(true) // nav labi

alert(“apelsīns”.lenght)


alert(typeof "test“) - string
alert(typeof new String("test")) - object

alert(0.1+0.2) // rezultāts nebūs 0.3!

Formāts – float64



1/0 = Number.POSITIVE_INFINITY (+∞)
-1/0 = Number.NEGATIVE_INFINITY
Number(“not_a_number”)
 =NaN (Not-a-Number, nav numurs)

0.1234.toPrecision(2) = 0.12




var str = "002”
var a = Number(str) // 2
+"0.1" // => 0.1
+"0.1z" // => Number.NaN





// viss pēc skaitļa tiek ignorēts
parseFloat("0.1zf") = 0.1
parseInt("08f.4", 10) = 8
// šeit nav skaitļa
parseFloat("smth") = Number.NaN



parseInt("0x10") = 16
parseInt("010") = 8
parseInt("010",10) = 10




Math.floor() / Math.round() / Math.ceil() noapaļošana
Math.abs() – skaitļa modulis
Math.sin() – sinuss
u.t.t.






Visas rindas – ar Unicode kodējumu
‘string’ – ok
“string” – ok
“zvaigzne: \u002a”
“hello world”.replace(/(.*?)\s(.*)/, "$2, $1!")
“hello world”.lenght

Aplams:







False
Null
Undefined
“”
0
Number.NaN
Patiess:
 все остальное
 “0”
 “false”


Boolean(a)
!!a





+ (arī konkatenācija)
*
/
%




alert(‘1’+1)
alert(1+’1’)
alert(1+1)
alert(1+true)






&
|
^
>>
>>>
<<



&&
||
!









==
!=
<
>
<=
>=
===
!==
?:


Skaitliskais masīvs (objekti)
Asociatīvais masīvs







var a = new Array()
var a = []
var a = new Array("a", 1, true)
var a = ["a", 1, true]
var a = []
a[1] = 1
a[999999] = 2

a.length

a[a.length] = "new element”
a.push("new element")






var arr = [3,5,7]
arr.push(9)
var last = arr.pop() //= 9
var last = arr.pop() // = 7
alert(arr.length) // = 2





var arr = [4,6,8]
arr.unshift(2) // arr = [2,4,6,8]
arr.unshift(0) // arr = [0,2,4,6,8]
var last = arr.shift() // last = 0, arr = [2,4,6,8]
arr.shift() // arr = [4,6,8]





slice(begin[, end]) – apakšmasīvs
splice(index, deleteCount[, element1,…,
elementN]) – izdzēst daļu no masīva un
aizvietot ar jaunām vērtībām
join
reverse
...



FunctionDeclaration (ar vārdu)
Function vārds(parametri)
{
...
}
var a = sum(2,2)
function sum(x,y) { return x+y }



FunctionExpression (anonīmas)
var имя = function(parametri)
{
…
}
...
var vārds = new Function(parametri, '...')
var sum = function(x,y) { return x+y }
var a = sum(2,2)

function f() { ... }
f.test = 6
…
alert(f.test) // 6

function func()
{
var funcObj = arguments.callee
funcObj.test++
alert(funcObj.test)
}
func.test = 1 func() func()

var run = function(distance, speed) {
speed = speed || 10
var time = distance / speed
return time
}




run(10) => 1
run(10, 2) => 5
run(10, 2, 5, 6, 7) => 5
run() => undefined / 10 = NaN

arguments – parametru objekts

arguments.lenght
arguments.[...]
arguments.callee



while(i<5) { … }

do { … } while (i<5)

for (var i=0;i<10;i++)
{ ... }

for(key in obj)
{ ... obj[key] }

// pārbaudam tikai savas īpašības
for(var key in obj)
{
if (!obj.hasOwnProperty(key))
{ … obj[key] … }
}

outer:
for(…)
{…
for (…)
{…
break outer;
…
continue outer;
...
}
}

switch (obj)
{
case "test“:
…
break
case 5:
…
break outer
default:
…
}

try
{
…
throw {
message: “Paziņojums“
}
...
}
catch (e)
{
alert(“Apstrāde”)
}

alert( (new Error()).stack )

...
finally
{
// izpildīsies vienmēr
}








navigator
window
document
location
history
document.myform.text1.value
document.imageForm.aircraft.src='f15e.gif'
document.aircraft.src='f15e.gif'









alert ()
cofirm ()
prompt ()
blur ()
focus ()
scroll ()
setTimeout()
location
status


document.forms(x)
document.forms(x).elements(x)



window.open()
window.close()
<window_name>.<...>



JavaScript objekti (hash)
AJAX
ECMA-262 standarts