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
Форумы портала PHP.SU :: Версия для печати :: Непонятное(для меня) поведение eval
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Непонятное(для меня) поведение eval

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

1. Pavelbeginner - 06 Мая, 2014 - 12:12:25 - перейти к сообщению
Вот этот код почему-то выводит "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}
Что я не так понимаю? Спасибо.
2. nerv - 06 Мая, 2014 - 12:34:09 - перейти к сообщению
'{abc : 10}' -> '({abc : 10})'
3. 3d_killer - 06 Мая, 2014 - 12:37:10 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. eval('var obj={abc : 10, bba : 20}');
  2. alert (obj.abc);
  3. alert (obj.bba);
4. Pavelbeginner - 06 Мая, 2014 - 13:19:12 - перейти к сообщению
nerv пишет:
'{abc : 10}' -> '({abc : 10})'

Работает. А в чём прикол?
5. nerv - 06 Мая, 2014 - 21:27:22 - перейти к сообщению
Pavelbeginner пишет:
А в чём прикол?

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

 

Powered by ExBB FM 1.0 RC1