V dnešním velice krátkém dílu
se zmínim o drobnosti, kterou by měli mít na paměti hlavně programátoři
přicházející z jazyků jako je Java či C#. Vývojáře znalé třeba PHP
ale zajisté nijak nezaskočí, ti zde budou jako doma. V JavaScriptu (podobně
jako v PHP) je totiž lokální proměnná platná vždy v rámci celé
funkce.
Oproti tomu ve zmiňované Javě je platnost omezena na blok kódu.
// Java
public void funkce() {
int i = 10;
for (int i =0; i < 15; i++) {
System.out.println("Uvnitr bloku i: " + i);
}
System.out.println("Vne bloku i: " + i);
}
V uvedném kódu překryje proměnná i deklarovaná
v záhlaví cyklu vnější proměnnou i.
V Javascriptu ale následující zápis postrádá smysl:
// JavaScript
function funkce() {
var i = 10;
for (var i = 0; i < 6; i++) {
//neco...
}
for (var i = 0; i < 68; i++) {
//neco jineho
}
}
Proměnná i bude prostě jenom jedna, bez ohledu na počet použití
klíčového slova var.
S oborem platnosti na úrovni funkce silně souvisí další zajímavá
vlastnost, nazývaná „variable hoisting“. Proberu ji příště.
V prvním
díle miniseriálu zmíním jedno z nejznámějších špatných míst
Javascriptu. V anglicky psaných zdrojích bývá označován termínem
„implied global“. Jde o velice důležitou vlastnost jazyka, jejíž
znalost (a hlavně plné pochopení důsledků) vám může ušetřit mnoho
vytrhaných vlasů.
Celý článek →
Vítejte v úvodním příspěvku průvodce po temných
i světlých zákoutích JavaScriptu. Každý týden tu naleznete kratší
zápisky o různých vlastnostech jazyka, které je dobré znát.
JavaScript je mezi programovacími jazyky výjimečný tím, že většina
z nás k němu přijde bez jakýchkoliv znalostí. Syntaxe je podobná
jazykům vycházejícím z C a za pomoci (většinou mizerných) tutoriálů na
internetu dokáže spatlat „nějak“ funkční kus kódu každý. Mnohdy si
člověk vystačí bez pořádných znalostí jazyka poměrně dlouho a než se
naděje, tvoří už svojí první velkou Javascriptovou věc. A pak to může
dost bolet. V JavaScriptu (podobně jako v ostatních jazycích) existuje
mnoho temných zákoutí, jejichž neznalost velice zkomplikuje vývojářův
život. A naopak má svoje silné stránky, jejichž pochopení mu může
pomoci dosáhnout výsledků rychleji, lépe a dokonce zábavněji ;-) .
Ostatně, už
jsem o tom nedávno psal.
Nebudu se zde zabývat základními konstrukcemi jazyka, jejichž popis se
válí na každém internetovém rohu. Chci se spíš soustředit a informace,
které bývají (bohužel) často v materiálech pro začátečníky opomíjeny
nebo dokonce(!) uváděny špatně. Obvyjkle programátoři neznají ani po
mnoha letech občasného užívání Javascriptových pilulek, nebo jim úplně
nerozumí.
Seriál má vlastní štítek
a také vlastní
RSS.
Držte si čepice, přístí týden začínáme!
Aktualizace: zatím vyšlo
Zatím v seriálu vyšly následující články:
- proměnná
a globální obor platnosti
- Javascript
nemá ‚block-level scope‘
- variable
hoisting
- deklarace
funkce a funkce jako výraz
- with
je zlý čaroděj
Aneb co mě zaujalo v posledním týdnu? Nezávisle na tom, zda jde
o aktuální novinky, nebo jsem objevil ameriku :)
The Noded je nový podcast o node.js. Natolik nový, že tvůrci stále
nedokázali stvořit web. První
díl je ale ke stažení a můžete také sledovat @thenoded na twitteru. Alespoň
v prvním dílu se podcast hojně věnuje NodeCore, takže varuji před
spoustou „céčkovských“ termínů a témat.
Firefox
4 bude obsahovat jednoduchou vývojářskou konzoli. Vývojáří
rozšíření Firebug
reagují: „Simply working harder to compete is equal to giving up.
Instead we have to raise the bar!“
Držím palce.
Společnost
Sencha zveřejnila developer preview aplikace Sencha Animator. Mělo by jít
o CSS3 alternativu k Flashi. Vypadá velice zajímavě. Jen škoda, že se mi
ji nepodařilo ani spustit.
Na blogu DailyJs vychází již od února
seriál Let's Make a Framework.
Autor postupně prochází různé kroky tvorby jednoduchého javascriptového
frameworku od architektury, přes implementaci selektorů, obsluhu událostí
až po podporu pluginů. Vznikající framework samozřejmě nemá být
konkurencí existujícím hvězdám, ale jen učební pomůckou. Pokud je pro
vás fungování vašeho oblíbeného JS frameworku magií a nechce s vám hned
studovat jeho kód, doporučuji projít aspoň tento seriál.
Podpora
pri indexaci AJAXových aplikací od Google a video záznam z přednášky
Using
Node.js and YUI 3 na YUI Theater spolu souvisí. Kdo pozná jak, má u mě
zmrzlinu. :)
Zkusili jste někdy do
vašeho oblíbeného vyhledávače zadat termín ‚javascript‘? Nebo
nějaké slovní spojení týkající se dokumentaci či učení javascriptu? Na
prvních pozicích se objevují stránky jako w3schools.com, javascript.com.
Prostě staré a nepříliš kvalitní zdroje oblepené reklamou.
Účastníci nedávné konference JSConf v Berlíně se rozhodli, že je
potřeba se současnou situací něco udělat. Tak vzniklo „hnutí“ Promote.js. Stačí navštívit uvedenou
stránku, zkopírovat náhodně vygenerovaný kód obrázku s odkazem a vložit
ho do svého webu, který by se ideálně měl alespoň trochu zabývat
javascriptem. Výsledek můžete vidět v pravém sloupci mého
zápisníku.
Odkazy jsou náhodně vybírané z databáze a cílí i na konrétní pojmy
(javascript array, object a podobně). Z počátku směřovaly všechny
vygenerované odkazy na stránky Mozzila Developer Center,
které obsahují poměrně pěknou dokumentaci jazyka a souvisejících témat.
Postupně přibývají další zdroje (můžete sami nějaký navrhnout pomocí
kontaktů na stránce). Všiml jsem si například odkazů na některé obecně javascriptové články na
blogu howtonode.
A funguje to? Zatím částečně. Průběžné výsledky včetně grafu
vývoje naleznete na stránce arewefirstyet.com. A abych nezapomněl, @promotejs je samozřejmě i na
twitteru.
Tak šup s odkazem na web!