Skip to content

Instantly share code, notes, and snippets.

@Poetro
Poetro / funkcionalis_programozas_javascriptben.md
Last active October 6, 2017 12:38
Funkcionális programozás JavaScriptben

Funkcionális programozás JavaScriptben

Folytatom a JavaScript bemutatását a függvények és az objektumorientált programozás után most a funkcionális programozásra fókuszálva.

A funkcionális programozás egy programozási paradigma - meghatározza, milyen elemekből épül fel a programunk. Minden számítást matematikai függvényekkel ír le, elkerülve a adatok és a program állapotának megváltozását. Ez azt jelenti, hogy ha egy függvényt akár mennyiszer is hívunk meg, ugyanarra a bemenetre ugyanazt a kimenetet adja vissza. A paradigma alapja a Lambda-kalkulus.

A λ-kalkulust nyugodtan nevezhetjük a legegyszerűbb általános célú programozási nyelvnek. Csak egyfajta értéket ismer: a függvényt (absztrakciót), és csak egyfajta művelet van benne: a függvény alkalmazás (változó-behelyettesítés). Ezen látszólagos egyszerűsége ellenére minden algoritmus, ami Turing-gépen megvalósítható, az megvalósíth

@Poetro
Poetro / gist:d081eb09beeab74209c1
Last active August 29, 2015 14:19
A Node.js bemutatása egy blog motoron keresztül

A Node.js bemutatása egy blog motoron keresztül


  • Esemény vezérelt, nem blokkoló I/O rendszer
  • Hasonló rendszerek: Twisted (Python), EventMachine (Ruby), Ver.x (JavaScript, Java, Ruby, Groovy, Python, Clojure, Ceylon)
  • C++-ban és JavaScript-ben van írva
  • A Google V8 motorjára épül (http://code.google.com/p/v8/)
@Poetro
Poetro / OOP-Javascriptben.md
Last active October 3, 2020 05:08
Objektum orientált programozás JavaScriptben

Objektum orientált programozás JavaScriptben

A következő cikksorozattal szeretném folytatni a JavaScript nyelv bemutatását, amit a függvények bemutatásával kezdtem el. A további cikkekben szeretnék jobban elmélyedni a további témákba, mint

  • funkcionális programozás,
  • eseménykezelés,
  • objektumok
  • valamint kitérni arra, hogyan változnak meg az ECMAScript (ES) következő változataiban.

Jelen esetben korszerű ES5 kompatibilis JavaScript motort feltételezek, de kitérek arra, hogyan lehet megvalósítani mindezt régebbi böngészőkben is (amennyiben egyáltalán lehetséges).

@Poetro
Poetro / OOP in JavaScript.md
Last active August 29, 2015 14:13
OOP in JavaScript

OOP in JavaScript

JavaScript is an Object Oriented language. It is a prototypical language, which means it handles inheritance by prototypes rather than classes. In JavaScript everything is an object or is automatically converted to one (except for null and undefined).

Primitives

JavaScript has 5 primitive types (number, boolean, string, null and undefined) that will automatically be wrapped into an object when methods are called on them, and then transformed back to primitive (except for null and undefined which does not have a wrapper objects):

"string".slice(2).replace("r", "k") === "king"; // true

Már több mint negyed éve interjúztatok JavaScript fejlesztői állásra, és észrevettem, hogy a mi kérdéssorunkból mire tudják a legkevesebben a választ, illetve mire adnak rendszeresen hibás választ. Ezeket a kérdéseket és válaszokat próbáltam összegyűjteni, hátha mások tanulni fognak belőle.

Hogyan működik az öröklődés JavaScriptben?

JavaScriptben prototípusos (prototypal) öröklődés van, ami azt jelenti, hogy egy osztály a prototípusától örökli a tulajdonságait. A prototípusa pedig szintén örökölhet tulajdonságokat a saját prototípusától, így jön létre a prototípus lánc (prototype chain). A prototípus lánc azt jelenti, hogy amikor a objektum egy tulajdonságát kérdezzük le, akkor a JavaScript motor előbb megnézi, hogy az definiálva van-e magán az objektumon, majd annak prototípusán, majd a prototípus prototípusán stb. Ha megtalálja, akkor visszadja, ha nem, akkor undefined értéket ad vissza vagy ReferenceError hibát dob.

Milyen értéket kap egy változó alapértelmezetten?

undefined

Mi a külö

@Poetro
Poetro / http.js
Created November 23, 2011 15:26
Simple HTTP file server with some minor logic
var http = require('http'),
fs = require('fs'),
url = require('url'),
server = new http.Server(),
port = 1337,
host = '127.0.0.1',
publicFiles = {},
path = require('path'),
mimes = {
'default': 'text/plain; charset=utf-8',
@Poetro
Poetro / intro.md
Created September 15, 2011 18:01
A Node.js bemutatása

A Node.js egy 2 éves dinamikusan fejlődő, és hatalmas fejlesztői közösséget megmozgató szerver oldali JavaScript környezet. Segítségével weboldalakat, konzolos segédalkalmazásokat, internetes szolgáltatásak építhetünk egy teljesen új eseményvezérelt és aszinkron I/O-t használó rendszerben, mely kevésbé érzékeny a nagy számú konkurens kérésre mint sok más szerver oldalon használt rendszer. Ezt a kezdeményezést szeretném bemutatni, szemléltetve az előnyöket és hátrányokat valamint a működést pár egyszerű példán keresztül.


A Ryan Dahl által 2009-ben kitalált új platform a Node.js napjaink egyik legfelkapottabb alkalmazás platformja. Ryan célja egy eseményvezérelt, aszonkron I/O környezet létrehozása volt. Mivel a JavaScript alkalmazások és programozók számára ez természetes közeg, ezért esett a választás a nyelvre.

A kezdetek óta a rendszer sokat változott és fejlődött, valamint egyre több operációs rendszeren érhető el natívan. Elsődleges platformot továbbra is a *nix rendszerek képezik, de már Windows a

$ npm update jade optimist express
npm info it worked if it ends with ok
npm info using npm@0.3.18
npm info using node@v0.4.3
npm info updates express@2.1.1 jade@0.10.1 optimist@0.1.8
npm info preupdate express@2.1.1
npm info preupdate jade@0.10.1
npm info preupdate optimist@0.1.8
npm info fetch http://registry.npmjs.org/express/-/express-2.1.1.tgz
npm info fetch http://registry.npmjs.org/jade/-/jade-0.10.1.tgz
@Poetro
Poetro / gist:871295
Created March 15, 2011 19:38
jade template broken
h1= title
p Welcome to #{title}
p
| To view a user's Twitter widget go to 
code /get/{TwitterUserName}
| for example
a(href="/get/Poetro") /get/Poetro
@Poetro
Poetro / httpclient.js
Created February 19, 2011 11:49
HTTPClient class
// http://svn.janoszen.com/repos/jsfw/trunk/httpclient.js
function HTTPClient() {
this._xhr = this._getXHR();
}
HTTPClient.prototype = {
_xhr : undefined,
_method : "GET",
_url : "",