首页 >社区问答列表 >变量可以重复赋值,不是说浏览器从上往下解析吗,为啥显示的值总是最后一个?

变量可以重复赋值,不是说浏览器从上往下解析吗,为啥显示的值总是最后一个?

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>变量</title>
<script type="text/javascript">
    var a="I know";
    var a="I don't know";
    document.write(a);
</script>
</head>
<body>
</body>
</html>


  • 数据分析师
  • 数据分析师    2017-09-30 23:33:502楼

    变量可以重复赋值,不是说浏览器从上往下解析吗,为啥显示的值总是最后一个?-PHP中文网问答-变量可以重复赋值,不是说浏览器从上往下解析吗,为啥显示的值总是最后一个?-PHP中文网问答

    围观一下哦,学习一下。

    +0添加回复

  • 回复
  • 迷茫
  • 迷茫    2016-12-22 11:14:241楼

    当你第二次给变量a赋值的时候,第一次的值就被覆盖了,也就是说a的值发生了变化。你可以在第一次赋值的时候做一些测试,例如:var a="I know";document.write(a);此时页面显示I know;然后在var a="I don't know";后面再一次document.write(a);此时的结果就是I don't know。

    正如你所说,浏览器从上往下解析,当解析到你第一次给变量赋值的时候,变量的值是I know,这时候你下面要用到这个变量的时候,浏览器就会知道,哦,你是想要使用I know这个值,但是继续往下解析,浏览器看到你又一次给同一个变量赋了一个新值I don't know,它就会认为从你重新赋值开始,下面所有需要用到这个变量的时候,它的值已经改变了。

    这里所说的重复赋值,不是同时在起作用,而是你给变量重新赋了一个新值


    +1添加回复

  • 回复