"Idiomatikus" JS

Sziasztok!

Szeretnék elmélyedni a JavaScript nyelvben. Tudtok ajánlani olyan könyveket, oldalakat stb.-t, ahonnan meg lehet tanulni jól? Java/Scala fejlesztő vagyok, szeretném a JS-t úgy elsajátítani, hogy a JS szellemiségét, saját konstrukcióit, gondolkodásmódját is megértsem, ne csak olyan legyek aki Java-JavaScriptet ír.

Köszi,
M.

Hozzászólások

Kezdj el ganyolni veszettul es maris a community teljes jogu tagja lehetsz ;)

Nem kötekedni akarok, nem is értek a javascripthez, de amit észrevettem, az vicces:

Ebben a fentebb ajánlott cikkben http://weblabor.hu/cikkek/oojsafelszinfolott lényegében az első javascript programsor:


var mouse = new Object();  

Ezzel szemben a Crockford JavaScript: The Good Parts könyv Bad Parts (!!!) részében (B.11 szakasz, 231. oldal) mit olvasok?

"An even better coping strategy is to not use new at all."

--
ulysses.co.hu

Egyertelmuen nincs olyan, hogy "igy programozz jol JS-ben" :) Idorol idore valtozik a dolog: tapasztalatok, tesztek, bongeszok, "trendek" fuggvenyeben. A fenti cikk cirka 6 eves, azota sokat valtozott a webes vilag es egy folyamatos valtozas alatt van, lasd: AMD, TDD, automatizaciok, stb.

--
x-plane :: hu

Azt is írja, hogy az == veszélyes, teljesen jogosan. De az elején meg azt írja, hogy "Attempting to retrieve values from undefined will throw a TypeError exception. This can be guarded against with the && operator". Gyk:


window.van = "x"
window.van && window.van.length => 1
window.nincs.length => error, pont ez ellen akarunk védekezni
window.nincs && window.nincs.length => undefined

De ha kötekedni akarok:


window.hoppa = ""
window.hoppa && window.hoppa.length => "" <= így járás

Létezik olyan &&-szerű operátor, ami nem szalad bele a 0/false/"" csapdába? Vagy muszáj a fullos undefined ellenőrzés?

--

Természetesen az alap osztályoknál már egyáltalán nem divat new-t írni, hanem new Object() helyett {}, new Array() helyett []. Ellenben tisztába kell lenni a dologgal, mert amikor majd elkezdesz "osztályokat örököltetni" és példányosítod őket még jól fog jönni a tudás
-
Ping-conf beszámoló

A modern ("idiomatikus") javascript egyértelműen Crockford 2007-es előadásával indul:

Douglas Crockford: The JavaScript Programming Language

Ezt a videót éveken át minden új JS fejlesztővel végignézettem.

Az ebből született rövid, de rendkívül tömény könyv anno a Nokia Maps fejlesztői szobájában majdnem minden asztalon ott volt:

Douglas Crockford: JavaScript - The Good Parts

Ezek vezetik be a JS-t mint funkcionális nyelvet.

2010 januárjában Crockford újrafogalmazta az előadást, ebből lett a fent már linkelt előadássorozat:

Crockford on JavaScript

Persze linkelhetném Stoyan Stefanov Javascript Patterns-jét, vagy Resig összefoglalóját a Pro JavaScript Techniques -ben, egy csomó jó könyvet, de innen indul minden (Resig is az első videó hatására írta meg a jQuery-t). Szóval szerintem itt érdemes kezdeni.

:) amikor JS-t tanultam, nem találtam igazán jó könyvet. Egyik ezt mondta, a másik azt...
JS-ben sokféleképp meg lehet oldani bizonyos problémákat, amelyek más nyelvekben egyértelműek. Pl. névterek létrehozása.
Maga a nyelv, szerintem, egyszerű, nem igényel sok olvasást. A kód rendszerezése ami problémásabb. Pl. hogyan példányosítasz egy osztályt, örököltetsz vagy beágyazol, stb.
A JS megtanulására javallom:
- megérteni a prototype alapú öröklést, closure-t (gyakorlás által)
- kódolni sokat, összerakni egy több osztályból álló progit
- kipróbálni a különböző megoldásokat azonos problémára
- nagyobb lib-ek forráskódjának nézegetése
- nem használni jQuery-t, MVC frameworkot stb. ami félrevezeti a tanulást
Írj mondjuk egy egyszerű játékot, ahol vannak egymásba ágyazott grafikus objektumok, callback-ek, event handling.
Tudsz használni Canvas libeket, pl. kineticjs, easeljs, stb. Ezzel az alap nyelvet, eszközöket jól meg lehet érteni + látványos a végeredmény.
A másik terület, a HTML DOM működésének a megértése...

Jav: sorry, egy része rád nem vonatkozik a Scala miatt :)
Javallott referencia doksik, chrome dev tools és profiles használata.

+ subscribe

* Én egy indián vagyok. Minden indián hazudik.

Igen, az, és igen, szerintem érdemes megtanulni.

Másfél éve dominánsan csak ebben fejlesztek, és ha rajtam múlik, akkor nem választanék más nyelvet. Egy jódarabig csak a Google-en belül vették komolyan, ma már egyre több az ebben fejlesztett éles oldal, pl: http://ps4showcasestage.software.eu.playstation.com/

< /erősen-elfogult-vélemény >