Сообщение от Kolyaj
|
Знание языка, очевидно, на котором пишешь.
|
ну да... но насколько хорошо надо знать язык, чтобы успешно применять его на практике? Возьмем хотя бы этот тест
(function(){ // 1
return typeof arguments;
})();
ну как бы да, надо знать, что arguments - не массив и добавить в него чего-то и отправить в следующую функцию так сходу не получиться. Но зачем знать его тип? Один раз пишем toArray и запоминаем, что arguments это вам не Array
var f = function g(){ return 23; }; // 2
typeof g();
(function(x){ // 3
delete x;
return x;
})(1);
var y = 1, x = y = typeof x; // 4
x;
да, полезно знать, что присваивание выполняется справа налево
(function f(f){ // 5
return typeof f();
})(function(){ return 1; });
у параметров приоритет перед названием функции? Ну может иногда пригодиться
var foo = { // 6
bar: function() { return this.baz; },
baz: 1
};
(function(){
return typeof arguments[0]();
})(foo.bar);
теряется контекст (своими словами)? Пишем один раз bind и запоминмаем, что контекст может теряться
var foo = { // 7
bar: function(){ return this.baz; },
baz: 1
}
typeof (f = foo.bar)();
var f = (function f(){ return "1"; }, function g(){ return 2; })(); // 8
typeof f;
var x = 1; // 9
if (function f(){}) {
x += typeof f;
}
x;
да, полезно знать, как переменные в булевский тип преобразовываются и что происходит при конкатенации строки и числа
var x = [typeof x, typeof y][1]; // 10
typeof typeof x;
(function(foo){ // 11
return typeof foo.bar;
})({ foo: { bar: 1 } });
это просто на внимательность
(function f(){ // 12
function f(){ return 1; }
return f();
function f(){ return 2; }
})();
если в функции тонна вложенных функций, то это какбэ символизирует
function f(){ return f; } // 13
new f() instanceof f;
интересно, можно подменить возвращаемый объект... хотя пока не вижу применения
with (function(x, undefined){}) length; // 14
ну и еще полезно знать, что функция - тип данных, бывают функции-литералы и что возвращает typeof (из того, что нужно для прохождения этого теста)
кроме того, если не знаешь, как что-то работает, это ж легко можно проверить
итого, я насчитал где-то 4 практических вопроса. А вы?
---
про копание в чужом коде: в идеале нужно знать все про язык, потому что все, что ты не знаешь может быть использовано против тебя везде
А если серьезно, то я затрудняюсь с более реальным списком для этого случая. Ничего в голову не приходит...
subzey, а можно это как-то поподробнее и с цветными картинками, а то я не уверен, что я правильно понимаю сказанное? (с)