Autor Zpráva
Richard
Profil *
Ahojte, dnes som robil javascript test na pohovory a myslel som ze to bude tak akurat na odhalenie ci je clovek pokrocily, ale ani po testnuti mojich kolegov to nebolo na 100% ako som cakal tak to hadzem sem na kritiku, vyjadrite sa co si o tom myslite, su to len 4 otazky na 10 minut.

Ja som ocakaval ze pre cloveka ktory si hovori ze je v javascript-e pokrocily by to mal dat na 4/4.

TEST - Javascript

Majme nasledujúci kód v jazyku JavaScript:
var a = {"a": "b"};
var b = {"a": "b"};
var c  = a;
var result = [a == b, a === b, a == c, a === c];

Po jeho vykonaní bude hodnota poľa result:
1. [true, true, true, true]
2. [true, false, true, false]
3. [false, false, true, true]
4. [false, true, false, true]
5. [false, false, false, false]

Majme nasledujúci kód v jazyku JavaScript:

function makeFunc() {
  var i = 0;
  function innerFunction() {
    i += 2;
    return i;
  }
  i += 5;
  return innerFunction;
}
var myFunc = makeFunc();
var result1 = myFunc();
var result2 = myFunc();

Po jeho vykonaní budú budú hodnoty premenných:
1. result1 = undefined, result2 = undefined
2. result1 = 7, result2 = 12
3. result1 = 2, result2 = 2
4. result1 = 7, result2 = 7
5. result1 = 7, result2 = 9

Majme nasledujúci kód v jazyku JavaScript:
var a = 'set';
(function() {
    b = 'set';
} ());
function myFunc() {
    var c = 'set';
    d = 'set';
}
myFunc();

Po jeho vykonaní budú hodnoty a, b, c, d nasledovné:
1. 'set', 'set', 'set', set'
2. 'set', undefined, undefined, undefined
3. 'set', 'set', 'set', undefined
4. 'set', 'set', undefined, 'set'
5. undefined, undefined, undefined, undefined
 
Majme nasledujúci kód v jayzku JavaScript:
var MyClass = function () {
    this.method1 = function () {};
    var method2 = function() {};
};
MyClass.method3 = function () {};
MyClass.prototype.method4 = function () {}
var myObj = new MyClass();

Napíšte čísla metód ktoré sú prístupné z objektu myObj.:
Chamurappi
Profil
Reaguji na Richarda:
Myslím si, že je to férový test. Nejsou to žádné zákeřné chytáky, každá otázka zkoumá standardní pokročilou vědomost.
Akorát u třetí otázky bych nesouhlasil s tím, že nejlepší možná odpověď je úplně správná, protože je rozdíl mezi proměnnou s hodnotou undefined a neexistující proměnnou.
Radek9
Profil
Richard:
3) Není definováno, v jaké scope se budou hodnoty ověřovat. Jestli v global, pak 'set', 'set', ReferenceError, 'set'
4) Trochu kostrbatě zapsáno, ale jinak je to v pohodě.
Richard
Profil *
[#2] Chamurappi

Diki za odpoved, tiez si hovorim ze to nie je zas tak zakerne. Totiz mal som hned chalana na pohovore, ktory ma v zivotopise "Javascript: expert" ... a z tychto otazok nedal ani jednu spravne, tak som si chcel overit ci vyzadujem normalne veci.

Tu tretiu otazku este trochu prerobim, aby bolo jasne ktory scope myslim a pripadne tam hodim ten ReferenceError. V zasade si myslim ze clovek ktory by trochu experimentoval s platnostou premennych by vybral najlepsiu odpoved ... pripadne poznamku s ReferenceError by som samozrejme uznal, ale inak asi ten test teda necham :)

[#3] Radek9
Dik za postrehy
llook
Profil
Někdo může za pokročilou znalost JS považovat to, že dokáže na stránku přilepit několik jQuery plug-inů. :-) Ale jestli si říká "expert", tak bych od něj dal ruce pryč ne proto, že neumí JS, ale hlavně proto, že nemá soudnost.

Já jsem uhádl 3 ze 4. Doteď jsem měl za to, že se ty operátory chovají stejně, jako v PHP, tak teď jsem zase o něco chytřejší (v PHP je toto true: (object) [ 'a' => 'b'] == (object) [ 'a' => 'b']).

Pokud někdo aspiruje na pozici "JavaScript programátor", tak by tohle všechno asi měl vědět. Pokud něco z toho neví, tak ale stále můžou existovat dobré důvody, proč se na tu práci i tak hodí. Pokud někdo rozumí programování obecně, má bohaté zkušenosti s jinými jazyky, ale s JS teprve začíná, tak se může během krátké doby stát velmi užitečným...
Chamurappi
Profil
Reaguji na llooka:
Jé, tebe jsem tu dlouho neviděl :-)
Jsi tu jen na skok, nebo s námi budeš zase kvalitně zabíjet hodiny času?


Reaguji na Richarda:
Totiz mal som hned chalana na pohovore, ktory ma v zivotopise "Javascript: expert"
Někteří lidé mají dlouholeté zkušenosti s patláním, pak se považují za experty. Na mnoha pracovních pozicích jim to, co vědí, pak i stačí.
llook
Profil
Chamurappi:
A jo, poslední příspěvek mám předtím z roku 2008. :-) Mám rozečtený Konec prokrastinace, ale zatím se mi to moc nedaří aplikovat, tak uvidíme...
_es
Profil
Richard:
Po jeho vykonaní budú hodnoty a, b, c, d nasledovné:
Po vykonaní kódu vyvolá pokus o zistenie hodnoty „c“ chybu (Respektíve môže vyvolať, podľa toho, či v dokumente existuje aj iný JS kód a aké DOM elementy a v akom prehliadači). Aj pokus o nastavenie hodnoty neexistujúcej premennej môže v niektorých prehliadačoch v niektorých prípadoch vyvolať chybu („premenné“ b a d): InnerHTML problém v IE8. Môže to ešte aj komplikovať „striktný“ režim: www.zdrojak.cz/clanky/co-prinasi-novy-ecmascript-5-dokonceni, msdn.microsoft.com/cs-cz/library/br230269%28v=vs.94%29.aspx, developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode. Otázka je teda nekorektná.

Napíšte čísla metód ktoré sú prístupné z objektu myObj.:
Z otázky nie je celkom jednoznačné, o akú „prístupnosť“ ide. „Bežným“ spôsobom je prístupné myObj.method1() a myObj.method4(), funguje však aj myObj.constructor.method3().

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: