Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 22.02.2012, 19:40
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

А то что с типами и typeof в JS (и в разных браузерах) ад кромешный, это факт.
Ответить с цитированием
  #12 (permalink)  
Старый 22.02.2012, 19:41
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Сообщение от vasa_c Посмотреть сообщение
А то что с типами и typeof в JS (и в разных браузерах) ад кромешный, это факт.
И в чем же именно заключаются сложности?
Ответить с цитированием
  #13 (permalink)  
Старый 22.02.2012, 19:48
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

Цитата:
И в чем же именно заключаются сложности?
Хэш, порядковый массив и HTML-коллекция это разные структуры данных, но чтобы различить их я должен убиться.
Object.prototype.toString() немного помогает, но кроме одного браузера и я думаю все знают его имя.
Ну и typeof null === "object" тоже круто.
Ответить с цитированием
  #14 (permalink)  
Старый 22.02.2012, 19:51
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Сообщение от vasa_c Посмотреть сообщение
Хэш, порядковый массив и HTML-коллекция это разные структуры данных, но чтобы различить их я должен убиться.
Object.prototype.toString() немного помогает, но кроме одного браузера и я думаю все знают его имя.
Ну и typeof null === "object" тоже круто.
Все верно, в JS null является объектом без прототипа, соответственно его тип - object.

alert([].constructor === Array);
alert(document.getElementsByTagName('div').constructor === HTMLCollection);

В чем проблема?

Последний раз редактировалось DreamTheater, 22.02.2012 в 19:56.
Ответить с цитированием
  #15 (permalink)  
Старый 22.02.2012, 19:54
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

Сообщение от vasa_c
А то что с типами и typeof в JS (и в разных браузерах) ад кромешный, это факт.
Можно примерчик ада? Проверю во всех браузерах.
Ответить с цитированием
  #16 (permalink)  
Старый 22.02.2012, 19:55
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

Можно много говорить чем что является с сугубо теоретической точки зрения.
Можно вспомнить аналогии из C++ и Java, что null, это значение объекта, обозначающее его отсутствие.
И вообще подо всё подвести теоретическую базу, откопать ECMA и начать цитировать его, как библию.

Но с точки зрения реальных задач, где требуется узнать что вообще там лежит в этой переменной, зачастую приходится делать кучу грязных хаков и иногда сталкиваться вообще с непостижимым
Ответить с цитированием
  #17 (permalink)  
Старый 22.02.2012, 19:59
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Сообщение от vasa_c Посмотреть сообщение
Можно много говорить чем что является с сугубо теоретической точки зрения.
Можно вспомнить аналогии из C++ и Java, что null, это значение объекта, обозначающее его отсутствие.
И вообще подо всё подвести теоретическую базу, откопать ECMA и начать цитировать его, как библию.

Но с точки зрения реальных задач, где требуется узнать что вообще там лежит в этой переменной, зачастую приходится делать кучу грязных хаков и иногда сталкиваться вообще с непостижимым
То есть с Вашей точки зрения те кто пишут спецификации и разрабатывают языки программирования идиоты, которые просто от нечего делать мешают Вам работать?

Опять же, можете привести пример одного из "грязных хаков"?
Ответить с цитированием
  #18 (permalink)  
Старый 22.02.2012, 20:00
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

Цитата:
Можно примерчик ада? Проверю во всех браузерах.
Например, нужно написать универсальную функцию, которая получает на вход некую структуру и выполняет некоторые действия над всеми её объектами.
Просто итерировани, each() тот же.

Соответственно, простые хэши нужно перебрать по свойствам. Массивы, коллекции, arguments, перебрать по порядку.
Функции и HTMLElement перебирать вообще не нужно, так как это уникальные сущности, а не хранилища данных.
Ответить с цитированием
  #19 (permalink)  
Старый 22.02.2012, 20:01
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

vasa_c,
я еще раз повторю

Цитата:
с типами и typeof в JS ад кромешный
можно примерчик?
Ответить с цитированием
  #20 (permalink)  
Старый 22.02.2012, 20:02
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

Цитата:
То есть с Вашей точки зрения те кто пишут спецификации и разрабатывают языки программирования идиоты, которые просто от нечего делать мешают Вам работать?
Перешли на "сперва добейся"?

Всем сколько нибудь интересующихся историей этих технологий известно как делался этот язык и как писались эти спецификации.

Вы считаете JS идеальным языком?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
непонятки со scroll Арсений Events/DOM/Window 1 25.08.2010 13:15
непонятки jquery.nyroModal giGnet jQuery 2 09.08.2010 22:31
Непонятки с GET Большой Javascript под браузер 8 09.08.2010 19:17
Непонятки с регэкспом... mexoboy Общие вопросы Javascript 3 09.03.2010 18:09
Javascript quiz · Perfection kills Octane Оффтопик 49 16.02.2010 12:46