Skip to content

Instantly share code, notes, and snippets.

@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 / 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

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 : "",
@Poetro
Poetro / GWO.md
Created February 15, 2011 22:58
Potential problems with Google Website Optimizer
  • Adds at least 4 new JavaScript scripts to the site.
    • Makes the site load slower.
    • Makes the site be larger, that may be an issue for mobile devices.
  • Has some past with Cross-Site Scripting (XSS) attacks
  • Doesn't do too good job with dynamically generated data.
    • Needs more setup
    • Needs more custom JavaScript for every case
  • A/B testing needs manually create each version of the page, and requires redirect
  • For MVT the markup of the section needs to be changed to add the script tags for each and every item that is to be tested.
  • Adds development work
@Poetro
Poetro / gist:668369
Created November 8, 2010 22:13
request pass through
var express = require('express'),
underscore = require('underscore')._,
httpRequest = require('request'),
app = express.createServer(express.logger());
// For favicon requests just redirect them.
app.get('/favicon.ico', function (request, response) {
// Set the appropriate content type
response.writeHead(200, {
'Content-Type': 'image/x-icon'