定义变量的位置不同,在使用过程中所起的作用也不同。
看例子:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
//判断数值里是否完数,有则打印出来
var arr = [8,34,56,28,6,7];
// 循环遍历每一个数组元素
for (var i=0; i<arr.length; i++){
// 初始化sum的值
var sum=0;
// 循环数组其中一个元素的从1到前一个数的每一个值
for (var j=1; j<arr[i]; j++){
// 如果这个值对其中的数可以除尽,则把这些数都加进来
if(arr[i]%j == 0){
sum += j;
}
}
// 判断这些约数加起来是否为自身
if(sum == arr[i]){
// 打印出完数
console.log(arr[i]);
}
}
</script>
</body>
</html>
这里的关键就是在于sum初始化的位置,如果放在整个循环外边或者最里面都不能得到结果,
如果在循环的最外边,那么sum的值是一直递增的,不会因为值得改变而归0;
如果在里面那么每加都是都是加0;
所以sum的位置必须出现在这里;