Skip to content

Latest commit

 

History

History
318 lines (245 loc) · 6.92 KB

File metadata and controls

318 lines (245 loc) · 6.92 KB

JavaScript pamati

Vispārējā informācija

Piemēri

Kur rakstīt?

  1. Iekš taga <script> jebkurā vietā HMTL dokumentā.

    index.html:

    <body>
    	Wake up, Neo...
    	<script>
    		alert('The Matrix has you...');
    	</script>
    	Follow the white rabbit.
    </body>
  2. Atsevišķā failā, pieslēdzot to HTML dokumentā.

    trinity.js:

    alert('The Matrix has you...');

    index.html:

    <body>
    	Wake up, Neo...
    	<script src="trinity.js"></script>
    	Follow the white rabbit.
    </body>

    Modernā tendence pieslēgt js failu dokumenta beigās, pirms </body>.

Sintakse

// single line
/* Multi
   line
   comments */

Mainīgie:

var a = 1;

var fooBar = 2, foo_bar = "baz", // letters: [ascii, unicode]
	_fooBar1 = true, $foo = [ "baz", 0 ]; // start with: letters, _,  $

var a = 1, A = 2; // case-sensitive. a != A

Nonstrict:

var a = 123; // local
a = 123; // global

Key words: break; case; catch; continue; default; delete; do; else; finally; for; function; if; in; instanceof; new; return; switch; this; throw; try; typeof; var; void; while; with.

Reserved words:

  • Nonstrict: class; const; enum; export; extends; import; super;
  • 'use strict': implements; interface; let; package; private; protected; public; static; yield;

Datu tipi

Pamata JS datu tipi: Number, String, Boolean, Undefined, Object, Null, Function.

Pārbaudīt vērtības datu tipu var ar operātoru typeof. Piem.: typeof x.

Number [Primitive like]

Skaitlis. typeof x == 'number'.

  • 0
  • 1.2
  • 045
  • 0x56
  • 0.314e2
  • NaN — not a number.

Pārvērst par skaitli var jebkuru cita datu tipa vērtību izmantojot kontruktoru Number() vai funkcijas parseInt() un parseFloat().

var a = "b";
Number(a); // NaN
typeof Number(a); // number

parseInt() konvertē vērtību par veselo skaitli. parseInt() pieņem divus argumentus: mainīgo vai vērtību un skaitīšanas sistēmu, kurā ir dots mainīgais vai vērtība:

var a = "20px";
typeof a // 'string'
var b = parseInt(a, 10); // 20
typeof b // 'number'

parseFloat() konvertē vērtību par decimāldaļskaitli:

var a = "20.2px";
typeof a // 'string'
var b = parseInt(a); // 20
typeof b // 'number'

Gadījumā, ja vērtību nav iespējams pārvērst par skaitli augšminētās funkcijas atgriež NaN (not a number — nav skaitlis). Bet NaN datu tips jomprojām bus number.

var a = "b";
var b = Number(a); // NaN
typeof b; // number

Aritmētiskie operātori:

=   -   *   /   %
var a = 6, b = 8;
console.log(a + b); // 14
console.log(a - b); // -2
console.log(a * b); // 48
console.log(a / b); // 0.75

Operātors % dala kreiso daļu ar labo un atgriež skaitītāju:

var a = 14, b = 3;
console.log(a % b); // 2, jo 14/3 = 4 un 2/3.

Salīdzināšanas operatori:

<   <=   >   >=   !=   ==
var a = 6, b = 8;
console.log(a > b); // false
console.log(a < b); // true
console.log(a == b); // false
console.log(a != b); // true

String

Virkne. typeof x == 'string'.

  • "Hello"
  • 'World'

Pārvērst par virkni var jebkuru cita datu tipa vērtību izmantojot kontruktoru String() vai funkciju toString().

var a = 8;var b = a.toString(2);
console.log(b); // '1000'

Ir iespējams saņemt virknes simbolu pēc indeksa, bet nomainīt to nav iespējams.

var a = 'ABC';console.log(a[0]); // 'A'a[0] = 'D';console.log(a); // 'ABC'

Virknes var apvienot ar operātora + palīdzību.

var a = 'abc';a = a + 'd';a; // 'abcd'"

Virknes var salīdzināt ar operātoriem: < <= > >= != == "a' > 'A' // true 'a' <= 'b' // false 'a' == 'a' // true 'a' != 'A' // true"

Function

Funkcija. typeof x == 'function'. Kaut kāda darbība kuru var izsaukt un izpildīt.

Funkcija bez argumentiem:

function myF(){ // funkcijas izveide
	console.log("foo");
}
myF(); // funkcijas izsaukšana un izpilde

Funkcija ar argumentiem:

function sum(a, b){ // funkcijas izveide
	console.log(a + b); // 11
}
sum(5, 6); // funkcijas izsaukšana un izpilde

Īpašība length atgriež cik argumentu pieņem funkcija.

console.log(sum.length); // 2

Funkcija var atgriezt rezultātu pēc izpildes. Rezultāts var saglabāt un apstrādāt.

function sum(a, b){
	return a + b;
}
var z = sum(5, 6);
console.log(x); // 11

Svarīgi izsaucot funkciju sūtīt viņai tik daudz argumentu, cik tā pieņem. Gadījumā, ja argumentu skaits nesakrīt, būs kļūda.

Ja nav zināms cik argumentu tiek sūtīts funkcijai izsaucot to, tad var izmantot mainīgo arguments, kas ir massīvs ar visiem nosūtītiem funkcijai argumentiem.

function sum(){
	var result = 0;
	for (var i = 0; i < arguments.length; i++){
		result += arguments[i];
	}
	return result;
}
console.log(sum(10, 45, 67, 28, 11, 38)); // 199

Cikli

Cikls ir jēdziens, ar ko apzīmē vairākkārtīgu kādas instrukciju kopas izpildīšanu.

for

Konstrukcija for sastāv no nosacījuma bloka un cikla ķermeņa. Nosacījuma blokā tiek noteiks nosacījums cik reizes ciklam ir jāatkārtojās. Cikla ķermeņa tiek noteikts viss kas tiks izpildīts katrā cikla iterācijā.

for (var i = 0; i < 10; i++) {
	console.log("Hello world - " + i);
}

Šeit i — cikla skaitītājs:

  • var i = 0 — skaitītāja definēšana. Notiks tikai pirmajā iterācijā.
  • i < 10 — nosacījums. Ja nosacījums atgriež true, tad cikla ķermenis tiks izpildīts.
  • i++ — skaitītāja izmaiņa. Notiek katrā iterācijā pēc ķermeņa izpildes.

Ir arī iespēja paplašināt cikla nosacījumus un veikt darbības ar vairākajiem skaitītājiem.

for (var i = 0, j = 10; i < 10 && j > 0; i++, j -= 2) {
	console.log("Hello world");
}

Piemērs ar masīviem:

var arr = ["foo", "bar", "baz"];
for (var i = 0; i < arr.length; i++) {
	console.log(arr[i]);
}

while un do…while

Līdzīgs for.

var i = 0;
while (i < 10) {
	console.log("Hello world - " + i);
	i++;
}

un do…while:

var i = 0;
do {
	console.log("Hello world - " + i);
	i++;
} while (i < 10);

While un do…while atšķirās ar to, ka while pārbauda nosacījumu pirms iterācijas izpildes, bet do…while — pēc. Sanāk ka do…while tiks izpildīts vismaz vienu reizi, piem. ja nosacījums no paša sākuma būs false.

for…in (cikls objektiem)

var obj = { name: "Vasilijs", surname: "Žukovs", job: "developer"};
for (i in obj) {
	console.log(i + ": " + obj[i] + "\n");
}

Izvadīs:

name: Vasilijs
surname: Žukovs
job: developer

Piemēri: