Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 14.02.2010, 16:54
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 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
__________________
Тонкости ECMAScript
Ответить с цитированием
  #32 (permalink)  
Старый 14.02.2010, 17:30
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Без вариантов ответа 1-й вопрос был бы легче
Ответить с цитированием
  #33 (permalink)  
Старый 14.02.2010, 17:34
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Octane
Без вариантов ответа 1-й вопрос был бы легче
На то это и quiz, чтобы проверить внимательность, и насколько человек уверен в своих ответах, не собьют ли его с толку, "вроде как тоже правильные ответы"

Ответил на оба вопроса?
__________________
Тонкости ECMAScript
Ответить с цитированием
  #34 (permalink)  
Старый 14.02.2010, 17:40
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Да. Ну 2-й вопрос после 14-го из теста легко было понять, а вот на 1-й сначала задумался…
Ответить с цитированием
  #35 (permalink)  
Старый 14.02.2010, 18:40
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 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
__________________
Тонкости ECMAScript
Ответить с цитированием
  #36 (permalink)  
Старый 14.02.2010, 18:59
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Да, первый запутывает. Только набирая alert(1..z) сообразил, что здесь на самом деле.

UPD: Вот такой интересный код найден на просторах интернета. Не знаю, на сколько он в тему, но мне показался интересным.
(x=[].reverse)() === window // true
Вопро : как так?

Последний раз редактировалось B@rmaley.e><e, 14.02.2010 в 19:03.
Ответить с цитированием
  #37 (permalink)  
Старый 14.02.2010, 19:25
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от B@rmaley.e><e
как так?
Это нормально. Метод reverse по завершении алгоритма выполняет return this, а т.к. мы сохранили ссылку на него в свойство x объекта window, то вызван по этой ссылке он будет в контексте window, и возвратит соответственно window.

Последний раз редактировалось Octane, 14.02.2010 в 19:37.
Ответить с цитированием
  #38 (permalink)  
Старый 14.02.2010, 19:31
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Octane
Это нормально. Метод reverse по завершении алгоритма выполняет return this, а т.к. мы сохранили ссылку на него в свойство x объекта window, то вызван по этой ссылке он будет в контексте window, и возвратит соответственно window.
Почти

А здесь мы не сохранили в свойство объекта window, но, всё равно - результат window, почему?

var a = {
  x: null
};

(a.x = [].reverse)() === window; // true


Тоже, кстати, разбирался этот вопрос здесь.
__________________
Тонкости ECMAScript
Ответить с цитированием
  #39 (permalink)  
Старый 14.02.2010, 19:39
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Ещё один интересный с топика (немного изменил):

alert((function(){return 2*3;}).toString() === function () { return 6; }.toString());

a) true
b) false
c) зависит от реализации
__________________
Тонкости ECMAScript
Ответить с цитированием
  #40 (permalink)  
Старый 14.02.2010, 19:45
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

а да… после операции присваивания мы получим ссылку на функцию. Тогда так:
Метод reverse по завершении алгоритма выполняет return this, а т.к. мы получим на него ссылку в результате операции присваивания, то вызван по этой ссылке он будет в контексте window, и возвратит соответственно window.

Сбило то, что ([].reverse)() сохраняет контекст

Вот этот вопрос: http://twitter.com/tobeytailor/status/8998006366

Последний раз редактировалось Octane, 14.02.2010 в 19:47.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 10:05
Собрался силами, собираюсь освоить Javascript walker Общие вопросы Javascript 14 20.03.2012 16:17
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 19:24
Программист на JavaScript (удалённо) Vadym Работа 1 28.01.2009 13:57
Нужен Старший разработчик JavaScript Yandex Работа 17 19.08.2008 16:43