Desember
JavaScript-lesestoff
Med litt flaks så har min julekalender dedikert til JavaScripts magiske verden trigget interessen såppass hos noen av dere er sugne på mer grundig stoff om temaet. Her er noen gode bøker og online-ressurser.
JavaScript-organisering, del 2
Igår så vi på noen utfordringer JavaScript-utviklere møter når de føler behovet for å strukturere koden sin på en oversiktelig måte. Idag presenterer jeg noen forslag til løsning på disse utfordringene.
Å organisere større JavaScript-prosjekter
Når mengden JavaScript stadig øker blir det hele tiden viktigere å organisere koden på et vis. Gjennom to artikler skal vi se hvordan vi kan oppnå kode som både er lettere å vedlikeholde og å jobbe flere sammen på.
Debugging og profilering av JavaScript
Firebug er et uvurderlig verktøy for JavaScript-utvikling (og mer). Her ser vi på noen av de nyttigste verktøyene Firebug stiller opp med: debugging, profilering og inspeksjon.
Mixins og multippel arv i JavaScript
Fordi metoder er helt vanlige egenskaper på objekter er det fullt mulig å dele metoder fritt mellom objekter. På denne måten støtter JavaScript indirekte multippel arv fordi ett objekt kan "arve" oppførsel fra flere enn ett annet objekt.
En nyttigere document.createElement
Å opprette nye elementer med nettlesernes DOM-APIer er tungvindt og "verbost". Idag bygger vi en hjelpemetode som lager nye elementer på en langt mer kompakt måte.
Metodekjeder i JavaScript
Å kjede sammen metodekall kan resultere i kompakt kode med relativt høy leselighet. jQuery har tatt dette til det ekstreme. Vi ser litt på hvordan dette fungerer, og noen praktiske eksempler.
Hjelperen $()
De fleste rammeverkene tilbyr en "magisk" "dollarfunksjon". Vi ser litt på hva den ofte gjør, og hvordan den kan realiseres.
Testing av ytelse
Idag skal vi se på hvordan vi kan legge inn krav til ytelse som en del av testcasene våre.
Memoisering av funksjoner
Noen ganger trenger vi kode som forgreiner seg basert på objekters tilstand, nettleserens ferdigheter eller andre omstendigheter - omstendigheter som kan være krevende ytelsesmessig. Memoisering kan i slike tilfeller ofte by på forenkling av logikk og/eller bedre ytelse.
Objektorientering via closures
Som en praktisk applikasjon av closures ser vi på hvordan vi med hjelp av closures kan gi objektene våre en ekstra dimensjon.
Navnerom
Fordi all JavaScript i utgangspunktet kjører i det globale skopet er det skremmende stor sjanse for kollisjoner mellom script (særlig om de er fra forskjellige kilder). Ved å bruke objekter som navnerom kan vi minimere scriptenes globale fotspor samtidig som vi kan beholde et rikt spekter av funksjonalitet.
Prototyper og JavaScripts innebygde typer
Ved hjelp av JavaScripts prototype-kjeder kan vi bygge funksjonalitet inn i objekter vi ikke selv har laget - så også JavaScripts innebygde objekter. Vi ser på hvordan dette gjøres og noen nyttige applikasjoner.
(function() {})();
JavaScripts kanskje mest kryptiske konstruksjon er et hendig hjelpemiddel for å beskytte det globale skopet. Vi ser på hva dette er og hvordan vi kan bruke det.
Closures
Et svært nyttig - og kraftig - konsept er såkalte closures. Å forstå hva en closure er og hvordan du kan nyttegjøre deg av dem er essensielt for å ta full glede av JavaScript.
Events - trå varsomt!
Events driver programmene våre når vi programmerer grensesnitt. Vi ser på JavaScripts eventmodeller, og en smart måte å gjøre eventhåndtering på. Dette er også et ublidt møte med et av de mer buginfiserte aspektene ved cross-browser JavaScript-utvikling.
Funksjoner og parametere
JavaScript-funksjoner er svært fleksible i sin håndtering av parametere. I dagens artikkel ser vi nærmere på hvordan parametere håndteres og hva vi kan gjøre med dem.
Traversering og manipulering av DOM
Vi er jo tross alt på nett, og et grensesnitt mot HTML-dokumentene våre er helt essensielt for å gjøre noe interessant med JavaScript. Velkommen til julekalenderens DOM-primer.
Et testdrevet eksempel
Etter to dager med prat om testdrevet utvikling i JavaScript tar vi oss tid til å gjennomføre et eksempel. Siden dette blir det første praktiske eksempelet presenterer jeg løsningen med både QUnit, jsunittest.js og YUI Test.
Testdrevet utvikling i JavaScript, del 2
I andre del av artikkelen om testdrevet utvikling i JavaScript ser vi på noen aktuelle testrammeverk, og sammenligner deres gode og dårlige sider.
Testdrevet utvikling i Javascript, del 1
JavaScript er like god kandidat som et hvilket som helt annet språk for testdrevet utvikling. Gjennom tre artikler skal vi ser litt på hva som ligger i testdrevet utvikling, hvordan vi kan gjøre det i JavaScript, og hvilke rammeverk som er tilgjengelig.
null, undefined og NaN
Siste del av julekalenderens JavaScript-primer tar for seg de spesielle verdiene null, undefined og NaN.
Arrayer, funksjoner og objekter
Mer grunnleggende JavaScript: vi fortsetter fra igår og ser på arrayer, funksjoner og objekter i JavaScript.
En Javascript-primer
For at alle skal kunne ha glede av årets JavaScript-kalender starter vi med en rask gjennomgang av grunnleggende syntaks, primitive typer og kontrollsetninger.