在选取数组中最小值的时候,发现如果是下面这样子的代码直接运行在<script> </script>中会有问题。
代码1
<script>
var name=[12,3,65,8,2,12];
var min = name[0];
for (var i = 1; i <= 1; i++) {
if (name[i]<min)
{
min = name[i];
}
}
console.log(min);
}
</script>
代码2
<script>
function test(){
var name=[12,3,65,8,2,12];
var min = name[0];
for (var i = 1; i <= 1; i++) {
if (name[i]<min)
{
min = name[i];
}
}
console.log(min);
}
}
test();
</script>
2段代码的结果不一样,想知道是为什么呀?
这是全局变量导致的,我们知道window在<script></script>标签里可以直接使用,其实还有很多这样的全局变量,比如:
name(默认为空)
length(默认为0)
你可能还会纳闷: 那第一种写法为什么得到的是1呢,接下来我们分析下你的代码:
我们来看第二段代码:
总结:在定义变量时,最好不要使用name,因为全局下name会被转化为字符串。length是可以使用,记得还有其他的全局变量,感兴趣的话自己搜一下吧。
有帮助就点赞哦!