Connecting Tech Pros Worldwide Help | Site Map

evaluating a object string

jman
Guest
 
Posts: n/a
#1: Mar 6 '08
var x = eval("{ 'flag' : 1 }");
alert(x);
alert(x.flag);

why doesn't the above work?


Henry
Guest
 
Posts: n/a
#2: Mar 6 '08

re: evaluating a object string


On Mar 6, 12:17*pm, jman wrote:
Quote:
* * * * * * var x = eval("{ 'flag' : 1 }");
* * * * * * alert(x);
* * * * * * alert(x.flag);
>
why doesn't the above work?
Because the - eval - method treats its string input as a javascript
program and a javascript program commencing with an opening brace is a
program that starts with a block statement. That makes the content of
the block statement a syntax error.

If you want to have your string interpreted as an object literal you
have to force it into a context were it must be interpreted as an
expression. Putting parenthesis around it will achieve that end.
SAM
Guest
 
Posts: n/a
#3: Mar 6 '08

re: evaluating a object string


Henry a écrit :
Quote:
On Mar 6, 12:17 pm, jman wrote:
Quote:
> var x = eval("{ 'flag' : 1 }");
> alert(x);
> alert(x.flag);
>>
>why doesn't the above work?
>
Because the - eval - method treats its string input as a javascript
program and a javascript program commencing with an opening brace is a
program that starts with a block statement. That makes the content of
the block statement a syntax error.
>
If you want to have your string interpreted as an object literal you
have to force it into a context were it must be interpreted as an
expression. Putting parenthesis around it will achieve that end.
can you give the code ?
I didn't understand where to put these parenthesis
Henry
Guest
 
Posts: n/a
#4: Mar 6 '08

re: evaluating a object string


On Mar 6, 1:07*pm, SAM wrote:
<snip>
Quote:
can you give the code ?
I didn't understand where to put these parenthesis
var x = eval("({ 'flag' : 1 })");

- or:-

var x = eval("("+"{ 'flag' : 1 }"+")");
SAM
Guest
 
Posts: n/a
#5: Mar 6 '08

re: evaluating a object string


Henry a écrit :
Quote:
On Mar 6, 1:07 pm, SAM wrote:
<snip>
Quote:
>can you give the code ?
>I didn't understand where to put these parenthesis
>
var x = eval("({ 'flag' : 1 })");
Thought having tried that ... ? !

Thanks
now it rests to understand how that works :-)

Perhaps there is a way to see step to step how 'eval' treats the string.
Closed Thread