Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Непонятное(для меня) поведение eval

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Pavelbeginner
Отправлено: 06 Мая, 2014 - 12:12:25
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Вот этот код почему-то выводит "number", а не "object".
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. alert
  3. (
  4.         typeof eval
  5.         (
  6.                 '{abc : 10}'
  7.         )
  8. );
  9.  


А вот этот код вообще не отрабатывает, пишет ошибка "SyntaxError: missing ; before statement typeof eval"

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. alert
  3. (
  4.         typeof eval
  5.         (
  6.                 '{abc : 10, bba : 20}'
  7.         )
  8. );
  9.  


Почему такое поведение? В документацие скзаано "Метод eval возвращает значение последнего вычисленного выражения.". В данном случае последним вычесленным выражением должен быть объект {abc : 10, bba : 20}
Что я не так понимаю? Спасибо.
 
 Top
nerv
Отправлено: 06 Мая, 2014 - 12:34:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




'{abc : 10}' -> '({abc : 10})'


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
3d_killer
Отправлено: 06 Мая, 2014 - 12:37:10
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. eval('var obj={abc : 10, bba : 20}');
  2. alert (obj.abc);
  3. alert (obj.bba);
 
My status
 Top
Pavelbeginner
Отправлено: 06 Мая, 2014 - 13:19:12
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




nerv пишет:
'{abc : 10}' -> '({abc : 10})'

Работает. А в чём прикол?
 
 Top
nerv
Отправлено: 06 Мая, 2014 - 21:27:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




Pavelbeginner пишет:
А в чём прикол?

здесь уже ответили http://javascript[dot]ru/forum/misc/[dot][dot][dot]edenie-eval[dot]html


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB