javascript - 此处的var造成了什么影响?为什么会报错?
本文介绍了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屋!
查看全文