JavaScript Garden — справочник на английском, посвященный тонкостям JavaScript.
Из него я, например, узнал, что массивам можно задавать length:
Что если конструктор возвращает объект, то new тоже будет возвращать этот объект вместо сконструированного:
Что this во вложенных функциях ссылается на глобальный объект:
Что изменение arguments вызывает изменение соотвествующих формальных параметров функции:
Еще раз ссылка: JavaScript Garden
Из него я, например, узнал, что массивам можно задавать length:
var list = [1, 2, 3, 4, 5];
list.length = 3;
console.log(list); // => [1, 2, 3]
Что если конструктор возвращает объект, то new тоже будет возвращать этот объект вместо сконструированного:
var name, realCat, evilCat;
function Cat(name) {
realCat = this;
this.name = name;
return {name: 'churchill'};
}
evilCat = new Cat('barsik');
console.log(evilCat.name); // => 'churchill'
console.log(realCat.name); // => 'barsik'
console.log(name); // => undefined
Что this во вложенных функциях ссылается на глобальный объект:
var name;
new function Cat() {
this.name = 'barsik';
(function() {
console.log(this.name); // => undefined
})();
}
Что изменение arguments вызывает изменение соотвествующих формальных параметров функции:
(function(a) {
console.log(a); // => 'a'
arguments[0] = 'b';
console.log(a); // => 'b'
})('a');
Еще раз ссылка: JavaScript Garden