Сюда тоже добавлю, пригодится знать:
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 |
Без вариантов ответа 1-й вопрос был бы легче :D
|
Цитата:
Ответил на оба вопроса? |
Да. Ну 2-й вопрос после 14-го из теста легко было понять, а вот на 1-й сначала задумался…
|
Еще один (правда, уже обсуждался здесь):
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 |
Да, первый запутывает. Только набирая alert(1..z) сообразил, что здесь на самом деле.
UPD: Вот такой интересный код найден на просторах интернета. Не знаю, на сколько он в тему, но мне показался интересным. (x=[].reverse)() === window // trueВопро� �: как так? |
Цитата:
|
Цитата:
А здесь мы не сохранили в свойство объекта window, но, всё равно - результат window, почему? var a = { x: null }; (a.x = [].reverse)() === window; // true Тоже, кстати, разбирался этот вопрос здесь. |
Ещё один интересный с топика (немного изменил):
alert((function(){return 2*3;}).toString() === function () { return 6; }.toString()); a) true b) false c) зависит от реализации |
а да… после операции присваивания мы получим ссылку на функцию. Тогда так:
Метод reverse по завершении алгоритма выполняет return this, а т.к. мы получим на него ссылку в результате операции присваивания, то вызван по этой ссылке он будет в контексте window, и возвратит соответственно window. Сбило то, что ([].reverse)() сохраняет контекст Вот этот вопрос: http://twitter.com/tobeytailor/status/8998006366 |
Часовой пояс GMT +3, время: 05:08. |