nilsmartin.no

 nilsmartinno 

 

Javaskript introduksjon

JavaScript er:
– Et klientside-skriptspråk som kan brukes til å lage dynamiske og interaktive vev-sider.
– Åpent.
– Plattformuavhengig.
– Lisensfritt.
– Høynivå interpreterende objekt-orientert skript- og programmeringsspråk.
– Gratis under GNU lisens.

Tilgjengelighet. Uten å installere eller konfigurere noe som helst, har alle som sitter foran en skjerm med nettleser tilgang til et kraftig verktøy rett framfor nesen sin.
JavaScript har en enorm og utbredelse. Alle nettlesere, mange mobiltelefoner, nettbrett og etterhvert også TVer, kan eksekvere JavaScript.
Selve koden distribueres sammen med html-dokumentet. Dvs. at man trenger ikke laste ned eller installere noe som helst. Programmet kjører direkte i nettleseren i en vanlig html-side.

Klient-orientering. Man kan si at JavaScript er et klient-orientert språk som kjøres på klienten, og som bl.a. kan lage dynamiske vev-sider.
– (Til forskjell fra tjener-orienterte språk som prosesserer dokumentet før det lastes ned til klient-maskinen, som f.eks: PHP. SSI. CGI. Perl.)

Sikkerhet. Når man først har tillatt Javaskript å eksekvere i vev-leseren, har man ingen mulighet til å hindre det når dokumentet lastes ned til egen maskin.
I praksis er det allikevel liten fare for å bli utsatt for angrep fra JavaScript-kode.

Fordeler:
– At programkoden flyttes fra tjener og kjøres på brukerens datamaskin kan bety bedre ytelse og funksjonalitet.
F.eks. kan feilsjekking i et skjema utføres lokalt på brukerens maskin. Data kan tastes inn uten at tjeneren undersøker noe som helst.
– Muligheten til å blande HTML og JavaScript-kode gjør at man gradvis kan legge til dynamikk i eksisterende vevsider.
– HTML har mange elementer som kan justeres med Javascript.
– Trenger ingen installasjon.
– Er alltid oppdatert.
– Syntaksen ligner på vanlige programmeringsspråk som C, C++, Java, PHP, Perl, osv. Dette gjør JavaScript lett å lære for dem som kan programmering fra før av.
Og visa versa; dersom man lærer JavaScript kan en lett kjenne seg igjen i andre programmeringsspråk.
– Er ikke OS begrenset.
– JavaScript har enorm utbredelse.
– Er tilgjengelig fra alle maskiner og dingser som man bruker.
– JavaScript enkelt å komme i gang med.
– Svak typing og automatisk konvertering mellom datatyper kan gjøre det enklere for nybegynnere.
Ulemper:
– Av sikkerhetshensyn har Javascript ikke hatt tilgang til programmer eller filer lokalt på brukerens egen private maskin. Unntak har vært infokapsler.
Med HTML5 er det kommet Web Storage, indexedDB og filereader().
– Syntaksen er vanskelig for vanlige folk å forstå.

 

 

JavaScript versus Java

Forskjeller:
– Java har ingenting med JavaScript å gjøre, med unntak av navnelikhet og likhet i syntaks.
– JavaScript er interpreterende skriptspråk. Java er et kompilert språk.
– JavaScript lager ikke applets eller selvstendige programmer.
– Javascript kan være vanskelig å teste og vedlikeholde.
– Java er trolig sikrere. JavaScript kan byttes ut uten at brukeren merker det (ingen kodesignering).
– Java er mer OO enn JS. JS mangler et klart klasse-begrep, som gjør at det ikke egner seg til OO-opplæring.
Likheter:
– Begge er OO-programmeringsspråk.
– Begge er plattformuavhengig. JS trenger i tillegg en nettleser eller en runtime for å kjøre selvstendig.

 

 

JavaScript versus PHP

Forskjeller:
– PHP er et tjenersidespråk, laget for å generere HTML-kode. Krever en vevtjener for å fungere.
– Javascript er et klientsidespråk, og krever bare en nettleser for å fungere.
– JavaScript har mange begrensninger. Kan ikke lese eller skrive til filer, osv.
– JavaScript er derfor sikrere enn PHP.
– Javascript kan være vanskelig å teste og vedlikeholde.
– JS mangler et klart klasse-begrep, som gjør at det ikke egner seg til OO-opplæring.
– PHP lager dynamiske vev-sider.
– Javascript avhenger av nettleseren. Forutsetter at JS ikke er deaktivert. Ulike nettlesere har ulik støtte for JS og kan behandle JS-kode ulikt.
– PHP er uavhengig av nettleseren.
– PHP er usynlig for brukeren, fordi resultatet av PHP er HTML.
– PHP er skrevet med åpen kildekode. Dvs. at hele kildekoden er tilgjengelig.
Likheter:
– Begge er interpreterende skriptspråk, som ikke trenger kompilering.
– Syntaksen er helt lik i mange kommandoer. F.eks. if () {}.
– Begge er plattformuavhengig.
– Begge er OO-programmeringsspråk.

 

 

Historikk

Brendan Eich i Netscape utviklet Mocha.
1995. Mocha ble omdøpt til LiveScript.

September 1995. LiveScript ble sluppet i Netscape Navigator 2 beta.

04.12.1995. LiveScript ble omdøpt til JavaScript i Netscape 2.0.

1996. Microsoft utviklet JScript, som var en dialekt av JavaScript.

August 1996. JScript ble inkludert i Internet Explorer 3.0.

Juni 1997. ES1. ECMA publiserte første utgave av ECMAScript, ECMA-262 spesifikasjonen.

Juni 1998. ES2. I andre versjon ble det gjort noen modifikajoner for å tilpasse spesifikasjonen til ISO/IEC-16262 standard.

Desember 1999. ES3. Tredje utgave av ECMA-262 ble publisert.

2005. AJAX ble introdusert.

Desember 2009. ECMAScript 5. (ES4, fjerde utgave ble aldri ferdig.)

2010. Oracle kjøpte Sun Microsystems.

2010. Navnet JavaScript ble et varemerke eid av Oracle.

Juni 2011. ES5.1. ECMAScript 5.1.

Juni 2015. ES2015 (ES6). ECMAScript 2015 (ECMAScript 6). 6te utgave av ECMA-262.
Det offisielle navnet ble endret til ECMAScript 2015.
Spesifikasjonsdokumentet gikk fra 250 til 600 sider.
Nytt var    (=> Funksjonspiler.)

Juni 2016. ES2016 (ES7). ECMAScript 2016 (ECMAScript 7).

Juni 2017. ES2017 (ES8). ECMAScript 2017 (ECMAScript 8).

Juni 2018. ES2018 (ES9). ECMAScript 2018 (ECMAScript 9).

Juni 2019. ES2019 (ES10). ECMAScript 2019 (ECMAScript 10).

 

 

Litteratur

«Object-Oriented JavaScript» av Stoyan Stefanov. Packt Publishing. 320 sider.
Grundig innføring og fin start for å lære JavaScript fra bunnen av.
Godt egnet hvis man kommer fra et annet objektorientert språk som f.eks JAVA.
«JavaScript: The Good Parts». Unearthing the Excellence in JavaScript av Douglas Crockford. 150 sider. Mai 2008.
JavaScript har gode og dårlige sider. Etter å ha lært det grunnleggende i språket, blir det viktigste å få oversikt over hva som er godt og dårlig. Essensiell kunnskap fra mannen som ‹oppfant› JSON.
«JavaScript: The Definitive Guide» av David Flanagan. Utgitt av O'Reilly & Associates, ISBN: 0-59600-048-0. Over 1000 sider.
Dette er en oppslagsverk og referanseguide til alt som har med JavaScript å gjøre.
«Javascript Patterns» av Stoyan Stefanov.
«Pro JavaScript Design Patterns». For viderekommende.
«High Performance JavaScript (Build Faster Web Application Interfaces)» av Nicholas C. Zakas.
«The JavaScript Bible» av Danny Goodman, utgitt av IDG Books, ISBN: 0-7645-3342-8.
«Dynamic HTML, The Definitive Reference» av Danny Goodman, utgitt av O'Reilly & Associates, ISBN: 1-56592-494-0.
«Speaking JavaScript: An In-Depth Guide for Programmers» av Dr. Axel Rauschmayer. Free.    speakingjs.com

Lenker

Validering:  jslint.com.


Ordliste

AJAX  –  Asynchronous JavaScript And XML.
2005. AJAX ble introdusert.
Se også:  AJAX  XML  JavaskriptOrdbok.html 
Betingelse  –  er et uttrykk som enten kan bli sann eller usann.
Det enkleste er sammenligning av variabler, (x == y). Det brukes to eller tre likhetstegn.
Hvis en bruker bare ett likhetstegn er det en ugyldig sammenligning.
Se også:  Betingelse 
Bool  –  bare to verdier, sann eller usann (true eller false).
TRUE er en konstant som er sann.
FALSE er en konstant som er usann.
Se også:  Bool 
CSS  –  Stilsett (Cascading Stylesheets).
Se også:  CSS  HTML  JavaScript  Vevside  CSS.html  CSSordbok.html  Internettordbok.html 
Dato  –  er et forhåndsdefinert objekt.
Kommandoen new Date(); gir dagens dato.
Se også:  Dato 
DHTML  –  Dynamisk HTML, er en samlebetegnelse hvor man med statisk HTML, CSS-skripting i kombinasjon med JavaScript og DOM lager interaktive og animerte websider.
Se også:  DHTML  JavaskriptOrdbok.html 
document.write()  –  kan brukes til å skrive ut tekst til vevsiden.
Se også:  document.write  JavaskriptOrdbok.html 
DOM  –  Document Object Model er en struktur som nettleseren lager etter å ha lest et HTML-dokument.
Se også:  DOM  HTML  HTMLordbok.html  CSSordbok.html  HTMLordbok.html  JavaskriptOrdbok.html 
ECMAScript  –  er standarden som JavaScript er basert på.
Standarden heter ECMA-262 alias ECMAScript, ofte forkortet til ES.
ES.Next er alltid neste versjon.
Se også:  ECMAScript   JavaskriptOrdbok.html 
Flyttall  –  er tall med komma.
Se også:  Flyttall  Heltall  JavaskriptOrdbok.html 
For-løkker  –  kan brukes når en på forhånd vet hvor mange ganger kommandoen skal utføres.
Se også:  For  Løkker  JavaskriptOrdbok.html 
Fnutter  –  kan være enkeltfnutt (') eller dobbeltfnutt (").
Se også:  Fnutter  JavaskriptOrdbok.html  HTMLordbok.html  Internettordbok.html 
Funksjoner  –  gjør det lettere å modulere koden i mindre oppgaver.
Argumenter finnes i en spesialvariabelen arguments.
return brukes til å returnere en verdi fra funksjonen.
Se også:  Funksjoner  Objekter  JavaskriptOrdbok.html 
Heltall  –  (integer) er tall uten desimaltegn.
Kan være både positive og negative.
Se også:  Heltall  Flyttall  Heltallsdivisjon  JavaskriptOrdbok.html 
Heltallsdivisjon  –  x%y;
Se også:  Heltallsdivisjon  Heltall  JavaskriptOrdbok.html 
HTML  –  Hyper Text Markup Language er et markup-språk for å beskrive innholdet i hjemmesider på Internett.
Se også:  HTML  CSS  JavaScript  Vevside  HTML.html  HTMLordbok.html  CSSordbok.html  Internettordbok.html 
i++  –  betyr det samme som  i = i + 1;
Imidlertid er i++ litt raskere.
Se også:  i++  JavaskriptOrdbok.html 
IDE  –  Integrated Development Environment.
Se også:  IDE  JavaskriptOrdbok.html 
if (betingelse) {kommandoer}  –  Betingelsen er et logisk uttrykk.
Se også:  if  Logikk  switch  JavaskriptOrdbok.html 
Java  –  er et OO-programmeringsspråk utviklet av Sun Microsystems.
Se også:  Java  JavaskriptOrdbok.html 
JavaScript  –  er et skriptspråk som kan brukes til å programmere websider.
Se også:  JavaScript  CSS  HTML  SVG  Vevside  Internettordbok.html  JavaskriptOrdbok.html  Internettordbok.html 
Knapper  –  Det finnes tre ferdiglagde pop-up bokser: alert, confirm og prompt.
Se også:  Knapper  Popup  JavaskriptOrdbok.html 
Kommentarer  –  kan være:
// dobbelslash gjelder for en linje.
/* for kommetarer som går over flere linjer. */
Se også:  Kommentarer  //  /**/  JavaskriptOrdbok.html  CSSordbok.html  HTMLordbok.html 
//  –  Kommentartegn som gjelder for en linje.
Det er det samme som brukes bl.a. i CSS og PHP.
Se også:  //  Kommentarer  JavaskriptOrdbok.html 
/* Multilinje-kommentartegn */    kan brukes for kommentarer over flere linjer.
Det er samme som brukes bl.a. i CSS, PHP, C, C++ og Java.
Se også:  /**/  Kommentarer  //  JavaskriptOrdbok.html 
Konkatenering  –  To tekststrenger legges sammen med et plusstegn (+).
Se også:  Konkatenering  JavaskriptOrdbok.html 
Konstanter  –  deklareres med nøkkelordet const.
Se også:  Konstanter  JavaskriptOrdbok.html 
Logikk  –  Boolske verdier kan ha to verdier; TRUE og FALSE + pluss udefinert.
Se også:  Logikk  if  JavaskriptOrdbok.html 
Løkker  –  Sløyfer. Loops.
Break stopper løkken og fortsetter utenfor løkken.
Continue bryter og fortsetter fra starten av løkken.
Se også:  Løkker  For  While   JavaskriptOrdbok.html 
Matrise  –  (array) er en spesiell variabel som kan inneholde flere verdier.
Se også:  Matrise  Multidimensjonale matriser  JavaskriptOrdbok.html 
Multidimensjonale matriser  –  kan ha to eller flere indekser.
Se også:  Matrise  Multidimensjonale matriser 
NaN  –  Not a Number.
Se også:  NaN  JavaskriptOrdbok.html 
Objekter  –  kan opprettes på tre forskjellige måter:
Objekt-literaler: var myObject = {};.
Object create-metode.
New-operatoren sammen med en konstruktør-funksjon.
Se også:  Objekter  Funksjoner  JavaskriptOrdbok.html  
PHP  –  er et tjenerside-skriptspråk som kan brukes til å lage dynamiske og interaktive vev-sider.
Se også:  PHP  PHP.html  Internettordbok.html 
Ren tekst  –  er tekst uten formatering.
Se også:  Ren tekst  Unicode  Internettordbok.html  HTMLordbok.html 
 ; Semikolon  –  brukes for å avslutte kommandoer.
Det kan være flere kommandoer på samme linje,
men det naturlige er å ha en kommando på en linje.
Se også:   ;   JavaskriptOrdbok.html 
SVG  –  Scalable Vector Graphics.
Se også:  SVG  CSS  HTML  JavaScript  XML    Internettordbok.html 
switch  –  er en måte å sjekke betingelser på,
f.eks. istedet for mange if elseif utsagn.
Se også:  switch  if  JavaskriptOrdbok.html 
Unicode  –  er en universell tegnkoding med alle verdens bokstaver og tegn.
Se også:  Unicode  HTML  Internettordbok.html 
Variabel  –  kan sees på som en beholder med en verdi inni. Rent fysisk er det minnecelle som inneholder en viss verdi.
Variabelen må ha et unik navn i den konteksten den er i.
Navnet kan tenkes på som en peker til variabelen.
Verdier tilordnes med = tegnet.
Fnutter brukes for å angi at innholdet er en tekst.
Se også:  Variabel  Objekter  JavaskriptOrdbok.html 
Variabler  –  deklareres ikke, men skapes idet de tilordnes en verdi.
Verdier tilordnes med = tegnet.
Variabler kan deklareres med nøkkelordet var. Variabelen er da lokal, dvs. at den kun er kjent innenfor blokken den er definert i, og usynlig utenfor.
Ikke-definerte variabler gjelder globalt, dvs. at de gjelder utenfor funksjoner, selv om de er brukt innenfor.
Globale variabler må og bør defineres utenfor funksjoner.
Variablene er case-sensitiv.
JavaScript er svakt typet språk. Variablene er ikke typedefinert og kan dermed peke til alle typer objekter. Selv om en variabel er tilordnet et tall, kan den i neste omgang settes til å peke på en tekst.
Se også:  Variabler  JavaskriptOrdbok.html 
Vevside  –  JavaScript kan bl.a. brukes i vev-sider sammen med html og css-koder.
Koden lastes ned til nettleseren sammen med dokumentet.
Se også:   Vevside  CSS  HTML  JavaScript  JavaskriptOrdbok.html  HTMLordbok.html  CSSordbok.html  Internettordbok.html 
Vevtjener  –  Webserver.
Se også:  Vevtjener  Internettordbok.html 
while (betingelse) {kommandoer}  –  utfører kommandoene så lengen betingelsen er sann.
Se også:  While   Løkker   JavaskriptOrdbok.html 
XML  –  eXtensible Markup Language.
Se også:  XML  AJAX  HTML  CSS  JavaskriptOrdbok.html  Internettordbok.html 
Åpen kildekode  –  er åpen for innsyn fra alle, kan modifiseres av alle, kan gjenbrukes i annen programvare og fritt distribueres til andre.
Se også:  Åpen kildekode  Åpen standard  HTMLordbok.html  Internettordbok.html 
Åpen standard  –  er fritt tilgjengelig, fri bruk, avgiftsfri, plattformuavhengig.
Se også:  Åpen standard  Åpen kildekode  HTMLordbok.html  Internettordbok.html