2016-05-26 105 views
0

我有一段我在标签中写的代码。x的价值是什么?

<script> 
var y = 1, 
x = y = typeof x; 
alert(x); 
</script> 

这将提醒x为“未定义”。

请解释一下Javascript编译器如何评估它。

在此先感谢。

+1

评估发生从右到左。因此,首先'typeof(x)'计算并返回'undefined'到'y',然后将其赋值给'x' –

+0

'var x,y; y = 1; y = typeof x; x = y; alert(x);' – Rayon

+0

感谢您的评论 –

回答

3

从右到左。在定义之前,x的类型是不确定的,这并不奇怪。

如果你在你的警报X,这将是不确定的为好,因为你已经把它的类型的X

0

由于x尚未确定它会返回“未定义”在同一个地方的警报ÿ ,然后将其分配给y,然后将值y(现在未定义)分配给x