JavaScript (JS) – obiektowy
skryptowy język programowania, stworzony przez firmę Netscape,
najczęściej stosowany na stronach internetowych.
Pod koniec lat 90, XX wieku organizacja ECMA wydała na podstawie JavaScriptu
standard języka skryptowego o nazwie ECMAScript.
Najczęściej spotykanym zastosowaniem języka JavaScript
są strony WWW.
Skrypty służą najczęściej do zapewnienia interaktywności poprzez reagowanie na
zdarzenia,
sprawdzania poprawności formularzy lub budowania elementów nawigacyjnych.
Podczas wzbogacania funkcjonalności strony internetowej istotne jest, aby żaden
element serwisu
nie stał się niedostępny po wyłączeniu obsługi JavaScriptu
w przeglądarce.
Skrypt JavaScriptu ma znacznie ograniczony dostęp do
komputera użytkownika (o ile nie zostanie podpisany cyfrowo).
Niektóre strony WWW zbudowane są z wykorzystaniem JavaScriptu
po stronie serwera, jednakże znacznie częściej
korzysta się w tym przypadku z innych języków.
W języku JavaScript można także pisać pełnoprawne
aplikacje.
Fundacja Mozilla udostępnia środowisko złożone z
technologii takich jak XUL, XBL, XPCOM oraz JSLib.
Umożliwiają one tworzenie korzystających z zasobów systemowych aplikacji o
graficznym interfejsie użytkownika
dopasowującym się do danej platformy.
Przykładem aplikacji napisanych z użyciem JS i XUL może być klient IRC o nazwie
ChatZilla, domyślnie dołączony do pakietu Mozilla.
Microsoft udostępnia biblioteki umożliwiające tworzenie aplikacji JScript jako część środowiska Windows Scripting
Host.
Ponadto JScript.NET jest jednym z podstawowych języków środowiska .NET.
Istnieje także stworzone przez IBM środowisko SashXB
dla systemu Linux, które umożliwia tworzenie
w języku JavaScript aplikacji korzystających z GTK+,
GNOME i OpenLDAP.
Java a JavaScript
Początkowo Netscape nazwała nowy język LiveScript.
Nazwa została jednak szybko zmieniona na JavaScript
wskutek biznesowych porozumień
pomiędzy Netscape
a firmą Sun Microsystems
(Sun jest współwłaścicielem znaku handlowego JavaScript).
Skutkiem tego jest wiele nieporozumień wśród początkujących programistów.
Mimo odrębności dwóch języków skrypty JavaScriptu
oraz aplety Javy mogą się wzajemnie komunikować
dzięki dostępnej w przeglądarkach Netscape, Mozilla i Opera technologii LiveConnect.
Pierwszy program
<html>
<body>
<script type="text/javascript">
document.write("Hello World!");
</script>
</body>
</html>
Ukrywanie kodu przed prostymi przeglądarkami, które nie
rozpoznają Java Script
<html>
<head>
<script type="text/javascript">
<!-- ukrywamy kod przed nieznającymi nas
przeglądarkami
kod skryptu
// koniec skryptu - koniec ukrywania -->
</script>
</head>
<body>
<noscript>
Twoja przeglądarka nie obsługuje JavaScriptu.
Aby zobaczyć stronę w pełnej funkcjonalności,
zainstaluj inną przeglądarkę:
Internet Explorer, Netscape
Navigator, Mozilla,
Opera...
</noscript>
kod HTML strony
</body>
</html>
Wprowadzanie danych
Zmienna
<HTML>
<HEAD>
</HEAD>
<script language = "JavaScript">
<!-- Ukrycie przed przegladarkami
nie obsługujacymi Javascript
var imie = prompt ("Podaj swoje imię: ", "")
document.write ("Czesc " + imie + "!");
// Koniec kodu JavaScipt
-->
</SCRIPT>
<BODY>
</BODY>
</HTML>
Wprowadzanie
danych bez zmiennej
HTML>
<HEAD>
</HEAD>
<script language = "JavaScript">
<!-- Ukrycie przed przegladarkami
nie obsługujacymi Javascript
document.write ("Czesc " + prompt ("Podaj swoje imię: ", "") +
"!");
// Koniec kodu JavaScipt
-->
</SCRIPT>
<BODY>
</BODY>
</HTML>
Równanie kwadratowe
<HTML>
<HEAD>
</HEAD>
<script language =
"JavaScript">
<!-- Ukrycie przed przegladarkami nie obsługujacymi Javascript
document.write ("<H2>Rownanie
kwadratowe</H2>");
document.write ("<br>");
var A = prompt ("Podaj A
rownania Ax^2+Bx+C=0 ", "");
var B = prompt ("Podaj B
rownania Ax^2+Bx+C=0 ", "");
var C = prompt ("Podaj C
rownania Ax^2+Bx+C=0 ", "");
var delta = B*B-4*A*C;
if (delta < 0)
{
document.write
("Rownanie nie ma rozwiazan");
}
else
{
if (delta == 0)
{
document.write ("Rozwiazanie
ma liczbe x= ", -B/(2*A) )
}
else
{
document.write
("<H3> Rozwiazaniem sa
liczby </H3> x1 = ", (( -B + Math.sqrt(delta))/(2*A)));
document.write
(" i <br>
x2= ", ((-B - Math.sqrt(delta))/(2*A)));
}
}
// Koniec kodu JavaScipt -->
</SCRIPT>
<BODY>
<p>Cwiczenia z Java Script</p>
</BODY>
</HTML>
// Obliczenie azymutu ze współrzędnych
<HTML>
<HEAD>
</HEAD>
<script language =
"JavaScript">
<!-- Ukrycie przed przegladarkami nie obsługujacymi Javascript
document.write ("<H2>Dlugosc i azymut ze wspolrzednych</H2>");
document.write ("<br>");
var X1 = prompt ("X1
", "");
var Y1 = prompt ("Y1
", "");
var X2 = prompt ("X2
", "");
var Y2 = prompt ("Y2
", "");
var dx = X2-X1;
var dy = Y2-Y1;
var d=Math.sqrt(dx*dx+dy*dy);
if (dx ==0 )
{
dx==0.000000001;
}
var a=Math.atan(dy/dx);
a=a*200/3.14159
if (dx <0 )
{
a=a+200;
}
else
{
if (a < 0)
{
a=a+400;
}
}
document.write (" d = ", d);
document.write (" <br>
az= ", a);
// Koniec kodu JavaScipt -->
</SCRIPT>
<BODY>
<p>Cwiczenia z Java Script</p>
</BODY>
</HTML>
// Obliczenie długosci i azymutu ze współrzednych - druga wersja
<HTML>
<HEAD>
</HEAD>
<BODY>
<H2>Cwiczenia z Java Script</H2>
<script language =
"JavaScript">
<!-- Ukrycie przed przegladarkami nie obsługujacymi Javascript
document.write ("<H2>Azymut ze wspolrzednych</H2>");
var X1 = prompt
("Podaj X1 punktu P1(X1,Y1) ", "");
var Y1 = prompt
("Podaj Y1 punktu P1(X1,Y1) ", "");
var X2 = prompt
("Podaj X2 punktu P2(X2,Y2) ", "");
var Y2 = prompt
("Podaj Y2 punktu P2(X2,Y2) ", "");
var DX = X2-X1;
var DY = Y2-Y1;
document.write("<H4>Dane:</H4>");
document.write("X1=",X1,"
Y1=",Y1,"<br>");
document.write("X2=",X2,"
Y2=",Y2,"<br>")
document.write("<H4>Obliczone:</H4>");
document.write("DX=",DX);
document.write("<br>DY=",DY);
var d=Math.sqrt(DX*DX+DY*DY);
var RG=200.0/Math.PI;
document.write("<br>Ro[grad]=200/PI=",RG,"[grad]<br>");
//document.write("<br>Dlugosc=",Math.sqrt(DX*DX+DY*DY));
document.write ("<H4>Dlugosc </H4>
D(1-2) = ", d);
if (DY==0)
{ DY=0.00000000001};
az=Math.atan(DY/DX)*RG;
if (DX<0)
{az=az+200}
if (DX >0 && DY <0)
{az=az+400}
document.write ("<br>
<H4> Azymut </H4> Az=", az);
// Koniec kodu JavaScipt -->
</SCRIPT>
</BODY>
</HTML>
Osadzania JS na stronie HTML
The example below shows how
to use JavaSript to write text on a web page:
<html>
<body>
<script type="text/javascript">
document.write("Hello World!");
</script>
</body>
</html>
Dodanie znaczników HTML tags do JavaScript:
<body>
<script type="text/javascript">
document.write("<h1>Hello World!</h1>");
</script>
</body>
</html>
Obsługa prostych przeglądarek
<html>
<body>
<script type="text/javascript">
<!--
document.write("Hello World!");
//-->
</script>
</body>
</html>
Gdzie wstawic kod JS?
W nagłówku - skrypt ładowany na początku, przed właściwą treścią
strony
html>
<head>
<script type="text/javascript">
function message()
{
alert("This
alert box was called with the onload
event");
}
</script>
</head>
<body onload="message()">
</body>
</html>
W body - ciele funkcji - generuje zawartość strony
<html>
<head>
</head>
<body>
<script type="text/javascript">
document.write("This message is written
by JavaScript");
</script>
</body>
</html>
Użycie w <head> i <body>
<html>
<head>
<script type="text/javascript">
....
</script>
</head>
<body>
<script type="text/javascript">
....
</script>
</body>
Użycie zewnętrznych plików JS
<html>
<head>
<script type="text/javascript" src="xxx.js"></script>
</head>
<body>
</body>
</html>
JavaScript is a sequence of statements to be executed
by the browser.
JavaScript is Case Sensitive
Unlike HTML, JavaScript is case sensitive - therefore watch your capitalization
closely when you write JavaScript statements, create or call variables, objects
and functions.
JavaScript Statements
A JavaScript statement is a command to a browser. The purpose of the command is
to tell the browser what to do.
This JavaScript statement tells the browser to write "Hello Dolly" to
the web page:document.write("Hello Dolly");
It is normal to add a semicolon at the end of each executable statement. Most
people think this is a good programming practice, and most often you will see
this in JavaScript examples on the web.
The semicolon is optional (according to the JavaScript standard), and the
browser is supposed to interpret the end of the line as the end of the
statement. Because of this you will often see examples without the semicolon at
the end.
Note: Using semicolons makes it possible to write multiple statements on one
line.
JavaScript Code
JavaScript code (or just JavaScript) is a sequence of JavaScript statements.
Each statement is executed by the browser in the sequence they are written.
This example will write a heading and two paragraphs to a web page
Example
<script type="text/javascript">
document.write("<h1>This is a heading</h1>");
document.write("<p>This is a
paragraph.</p>");
document.write("<p>This is another
paragraph.</p>");
</script>
JavaScript Blocks
JavaScript statements can be grouped together in blocks.
Blocks start with a left curly bracket {, and ends with a right curly bracket
}.
The purpose of a block is to make the sequence of statements execute together.
This example will write a heading and two paragraphs to a web page:Example
<script type="text/javascript">
{
document.write("<h1>This is a heading</h1>");
document.write("<p>This is a
paragraph.</p>");
document.write("<p>This is another
paragraph.</p>");
}
</script>
JavaScript Comments
Comments can be added to explain the JavaScript, or to make the code more
readable.
Single line comments start with //.
The following example uses single line comments to explain the code:
Example
<script type="text/javascript">
// Write a heading
document.write("<h1>This is a
heading</h1>");
// Write two paragraphs:
document.write("<p>This is a paragraph.</p>");
document.write("<p>This is another
paragraph.</p>");
</script>
<script type="text/javascript">
/*
The code below will write
one heading and two paragraphs
*/
document.write("<h1>This is a
heading</h1>");
document.write("<p>This is a
paragraph.</p>");
document.write("<p>This is another
paragraph.</p>");
</script>
Operatory
txt1="What a very";
txt2="nice day";
txt3=txt1+txt2;
x=5+5;
document.write(x);
x="5"+"5";
document.write(x);
x=5+"5";
document.write(x);
x="5"+5;
document.write(x);
Warunki
if, else
script type="tex
t/javascript">
//Write a "Good morning" greeting if
//the time is less than 10
var d=new Date();
var time=d.getHours();
if (time<10)
{
document.write("<b>Good
morning</b>");
}
</script>
<script type="text/javascript">
//If the time is less than 10, you will get a
"Good morning" greeting.
//Otherwise you will get a "Good
day" greeting.
var d = new Date();
var time = d.getHours();
if (time < 10)
{
document.write("Good
morning!");
}
else
{
document.write("Good
day!");
}
</script>
<script type="text/javascript">
var d = new Date()
var time = d.getHours()
if (time<10)
{
document.write("<b>Good
morning</b>");
}
else if (time>10 && time<16)
{
document.write("<b>Good
day</b>");
}
else
{
document.write("<b>Hello
World!</b>");
}
</script>
case
<script type="text/javascript">
//You will receive a different greeting based
//on what day it is. Note that Sunday=0,
//Monday=1, Tuesday=2, etc.
var d=new Date();
theDay=d.getDay();
switch (theDay)
{
case 5:
document.write("Finally Friday");
break;
case 6:
document.write("Super Saturday");
break;
case 0:
document.write("Sleepy Sunday");
break;
default:
document.write("I'm looking forward to
this weekend!");
}
</script>
Alert box
<html>
<head>
<script type="text/javascript">
function show_alert()
{
alert("I am an alert box!");
}
</script>
</head>
<body>
<input type="button" onclick="show_alert()" value="Show alert box" />
</body>
</html>
Confirm box
<html>
<head>
<script type="text/javascript">
function show_confirm()
{
var r=confirm("Press a button");
if (r==true)
{
document.write("You pressed OK!");
}
else
{
document.write("You pressed
Cancel!");
}
}
</script>
</head>
<body>
<input type="button" onclick="show_confirm()" value="Show confirm box"
/>
</body>
</html>
Prompt box
<html>
<head>
<script type="text/javascript">
function show_prompt()
{
var name=prompt("Please enter your name","Harry Potter");
if (name!=null && name!="")
{
document.write("Hello " + name +
"! How are you today?");
}
}
</script>
</head>
<body>
<input type="button" onclick="show_prompt()" value="Show prompt box" />
</body>
</html>
Funkcje
<html>
<head>
<script type="text/javascript">
function displaymessage()
{
alert("Hello World!");
}
</script>
</head>
<body>
<form>
<input type="button" value="Click me!" onclick="displaymessage()"
/>
</form>
</body>
</html>
return w funkcji
<html>
<head>
<script type="text/javascript">
function product(a,b)
{
return a*b;
}
</script>
</head>
<body>
<script type="text/javascript">
document.write(product(4,3));
</script>
</body>
</html>
Petla for
<body>
<script type="text/javascript">
var i=0;
for (i=0;i<=5;i++)
{
document.write("The number is " + i);
document.write("<br
/>");
}
</script>
</body>
</html>
while
<html>
<body>
<script type="text/javascript">
var i=0;
while (i<=5)
{
document.write("The number is " + i);
document.write("<br
/>");
i++;
}
</script>
</body>
</html>
do while
<html>
<body>
<script type="text/javascript">
var i=0;
do
{
document.write("The number is " + i);
document.write("<br
/>");
i++;
}
while (i<=5);
</script>
</body>
</html>
break
<html>
<body>
<script type="text/javascript">
var i=0;
for (i=0;i<=10;i++)
{
if (i==3)
{
break;
}
document.write("The number is " + i);
document.write("<br
/>");
}
</script>
</body>
</html>
continue
<html>
<body>
<script type="text/javascript">
var i=0
for (i=0;i<=10;i++)
{
if (i==3)
{
continue;
}
document.write("The number is " + i);
document.write("<br
/>");
}
</script>
</body>
</html>
For...In
<html>
<body>
<script type="text/javascript">
var x;
var mycars = new Array();
mycars[0] = "Saab";
mycars[1] = "Volvo";
mycars[2] = "BMW";
for (x in mycars)
{
document.write(mycars[x]
+ "<br />");
}
</script>
</body>
</html>