Tamás Michelberger
Building software even when it's an overkill
Michelberger Tamás
Kir-Dev
2015 tavasz
function f() {
var x = 42;
reutrn function () {
return (x++);
};
}
var foo = f();
('1' + 1 == 11) == true
('2' - 1 == 1) == true
if ("42" == 42) {
console.log('Egyenlő értékek');
} else {
console.log('Nem egyenlő értékek');
}
if ("42" === 42) {
console.log('Egyenlő értékek');
} else {
console.log('Nem egyenlő értékek');
}
Gyengén típusosság miatt nem csak a true és false értékek használhatók logikai kifejezésekben, hanem gyakorlatilag bármi.
[]
[1, 2]
[1, true, undefined, "ez egy string"]
[].lenght == 0
[1].pop() == 1 // utana ures lesz a lista
[1].push(2) == [1, 2]
[1].concat([2]) == [1, 2]
{}
{ theAnswer: 42 }
{ 'the answer': 42 }
function fizzbuzz(i) {
if (i % 15 == 0) {
console.log("FizzBuzz");
} else if (i % 3 == 0) {
console.log("Fizz");
} else if (i % 5 == 0) {
console.log("Buzz");
} else {
console.log(i);
}
}
fizzbuzz(45);
var random = function () {
return 4; // chosen by fair dice roll.
// guaranteed to be random.
}
console.log(random());
A function jelenti a scope-ot. Ha nincs scope, akkor a globális névtérben vagyunk.
Böngészőben a globális a scope a window objektumot jelenti.
function f() {
g = 1;
}
f();
console.log(g); // => 1
function f() {
var g = 1;
}
f();
console.log(g); // => undefined
function f() {
var x = 42;
reutrn function () {
return (x++);
};
}
var foo = f();
console.log(foo()); // => 42
console.log(foo()); // => 43
(function () {
console.log("Magamtól hívódtam meg.")
})();
var MyModule = (function (w) {
var privat = 42;
return {
publikus: function () { return privat + 1; }
};
})(window);
MyModule.publikus() // => 43
Sometimes when I'm writing Javascript I want to throw up my hands and say "this is bullshit!" but I can never remember what "this" refers to
— Ben Halpern (@bhalp1) March 20, 2015
document.getElementById("idea-container")
document.querySelector("#idea-container")
// vagy
document.querySelectorAll("ul.menu > li > a")
var container = document.getElementById('idea-container');
container.style.backgroundColor = 'blue';
container.style.borderBottom = '1px solid blue';
// vagy
var link = document.getElementById('movie-link');
link.innerHTML = 'I changed this from JS';
var text = document.createTextNode("hello world");
var p = document.createElement("p");
p.style.color = "white"
p.appendChild(text);
var container = document.getElementById("container");
container.appendChild(p);
avagy demo time
DOM manipuláció, eseménykezelés megkönnyítésére
$('.post') // majdnem ugyanaz mintha
// document.querySelectorAll('.post')-t hivnank
// DOM elem -> jQuery elem
var post = document.getElementById('#post-1');
$(post).hide()
// pseudo selectorok
$('input:checked') // bepipált checkbox-ok
// új DOM elem
$('<p>').text('Hello world').appendTo($('#post-1'));
$('button').click(function (event) {
alert('hello world');
});
$('button').on('mouseenter', function () {
$(this).css('background-color', 'red');
});
$(document).on('click', '#menu button', function (e) {
console.log($(this).text() + ' was clicked');
});
By Tamás Michelberger
Javascript bevezető, Kir-Dev tanfolyam 2015 tavasz