14.02.2010, 16:54
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Сюда тоже добавлю, пригодится знать:
1. Каков результат выражения 1..z:
a) SyntaxError
b) Новый object Range (эквивалентно new Range(1, "z")) включая цифры и буквы
c) undefined
d) Ошибка Range объекта (несовместимые типа для range: number и string)
e) ReferenceError "z" is not defined
2. Каков результат выражения 100['toString']['length']:
a) 100
b) 3
c) 1
d) SyntaxError
e) 8
|
|
14.02.2010, 17:30
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Без вариантов ответа 1-й вопрос был бы легче
|
|
14.02.2010, 17:34
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Сообщение от Octane
|
Без вариантов ответа 1-й вопрос был бы легче
|
На то это и quiz, чтобы проверить внимательность, и насколько человек уверен в своих ответах, не собьют ли его с толку, "вроде как тоже правильные ответы"
Ответил на оба вопроса?
|
|
14.02.2010, 17:40
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Да. Ну 2-й вопрос после 14-го из теста легко было понять, а вот на 1-й сначала задумался…
|
|
14.02.2010, 18:40
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Еще один (правда, уже обсуждался здесь):
function foo() {
return this;
}
alert(foo === foo.prototype.constructor); // true
alert(foo() === foo.prototype.constructor()); // ?
a) true
b) false
c) зависит от реализации
http://perfectionkills.com/javascrip...#comment-58304
|
|
14.02.2010, 18:59
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Да, первый запутывает. Только набирая alert(1..z) сообразил, что здесь на самом деле.
UPD: Вот такой интересный код найден на просторах интернета. Не знаю, на сколько он в тему, но мне показался интересным.
(x=[].reverse)() === window // true
Вопро : как так?
Последний раз редактировалось B@rmaley.e><e, 14.02.2010 в 19:03.
|
|
14.02.2010, 19:25
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Сообщение от B@rmaley.e><e
|
как так?
|
Это нормально. Метод reverse по завершении алгоритма выполняет return this, а т.к. мы сохранили ссылку на него в свойство x объекта window, то вызван по этой ссылке он будет в контексте window, и возвратит соответственно window.
Последний раз редактировалось Octane, 14.02.2010 в 19:37.
|
|
14.02.2010, 19:31
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Сообщение от Octane
|
Это нормально. Метод reverse по завершении алгоритма выполняет return this, а т.к. мы сохранили ссылку на него в свойство x объекта window, то вызван по этой ссылке он будет в контексте window, и возвратит соответственно window.
|
Почти
А здесь мы не сохранили в свойство объекта window, но, всё равно - результат window, почему?
var a = {
x: null
};
(a.x = [].reverse)() === window; // true
Тоже, кстати, разбирался этот вопрос здесь.
|
|
14.02.2010, 19:39
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Ещё один интересный с топика (немного изменил):
alert((function(){return 2*3;}).toString() === function () { return 6; }.toString());
a) true
b) false
c) зависит от реализации
|
|
14.02.2010, 19:45
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
а да… после операции присваивания мы получим ссылку на функцию. Тогда так:
Метод reverse по завершении алгоритма выполняет return this, а т.к. мы получим на него ссылку в результате операции присваивания, то вызван по этой ссылке он будет в контексте window, и возвратит соответственно window.
Сбило то, что ([].reverse)() сохраняет контекст
Вот этот вопрос: http://twitter.com/tobeytailor/status/8998006366
Последний раз редактировалось Octane, 14.02.2010 в 19:47.
|
|
|
|