定義變量的位置不同,在使用過程中所起的作用也不同。
看例子:
<!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的位置必須出現在這裏;