javascript - 此处的var造成了什么影响?为什么会报错?

查看:126
本文介绍了javascript - 此处的var造成了什么影响?为什么会报错?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

两段代码,前面一段可以正常运行,后面一段会报错Uncaught SyntaxError: Unexpected token [;两者的区别仅在于后面一段的 var data[i] = [];中加了var,想问下为什么会出现这种情况呢?

<!DOCTYPE>
<html>
  <head>
    <meta charset="utf-8">
  </head>
<body>
  <ul id="source">
    <li>北京空气质量:<b>90</b></li>
    <li>上海空气质量:<b>70</b></li>
    <li>天津空气质量:<b>80</b></li>
    <li>广州空气质量:<b>50</b></li>
    <li>深圳空气质量:<b>40</b></li>
    <li>福州空气质量:<b>32</b></li>
    <li>成都空气质量:<b>90</b></li>
  </ul>
<script type="text/javascript">

function getData() {

  var arr = document.getElementById("source").getElementsByTagName("li");
  var data = [];
  for(var i = 0;i<arr.length;i++){
      var str = arr[i].innerHTML;
      var city = str.substring(0,str.indexOf("空气质量"));
      var num = str.substring(str.indexOf(">")+1,str.lastIndexOf("<"));
      data[i] = [];
      data[i].push(city);
      data[i].push(num);
  }
  return data;
}
getData();
</script>
</body>
</html>


<!DOCTYPE>
<html>
  <head>
    <meta charset="utf-8">
  </head>
<body>
  <ul id="source">
    <li>北京空气质量:<b>90</b></li>
    <li>上海空气质量:<b>70</b></li>
    <li>天津空气质量:<b>80</b></li>
    <li>广州空气质量:<b>50</b></li>
    <li>深圳空气质量:<b>40</b></li>
    <li>福州空气质量:<b>32</b></li>
    <li>成都空气质量:<b>90</b></li>
  </ul>
<script type="text/javascript">

function getData() {

  var arr = document.getElementById("source").getElementsByTagName("li");
  var data = [];
  for(var i = 0;i<arr.length;i++){
      var str = arr[i].innerHTML;
      var city = str.substring(0,str.indexOf("空气质量"));
      var num = str.substring(str.indexOf(">")+1,str.lastIndexOf("<"));
      var data[i] = [];
      data[i].push(city);
      data[i].push(num);
  }
  return data;
}
getData();
</script>
</body>
</html>

解决方案

首先var是用来声明变量的,浏览器认为var 后面的就是个变量。

那么var data[i]就声明了data[i]这个变量

因为data[i]变量声明是不合法的

所以会报错Uncaught SyntaxError: Unexpected token [

这篇关于javascript - 此处的var造成了什么影响?为什么会报错?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆