从外部循环访问变量

Sco*_*own 4 javascript variables jquery loops

我知道这是基本的JS,但是我想作一个简单的解释。根据我的阅读,如果我在循环之外声明一个空变量,那么循环内的变量应该可以全局访问吗?还是我完全错了?

我想randAd从我的for循环外部访问。

var mobileAds = [
    "mobile/bb.jpg",
    "mobile/eyeko.jpg",
    "mobile/farfetch.jpg",
    "mobile/fsb.jpg"
];

var randNum = (Math.floor(Math.random() * mobileAds.length));
var randAd;

var i;
for (i = 0; i < mobileAds.length; ++i) {
    randAd = (mobileAds[randNum]);
}
Run Code Online (Sandbox Code Playgroud)

Alw*_*nny 6

如果要访问循环randAd外部的每个元素,请for尝试像这样var randAd = [];将其初始化为数组。您可以在for循环后轻松访问它,但是如果将其用作简单变量,var randAd;则始终会得到最后一个变量(它会被覆盖)。因此,将其初始化为数组,并在输出之前将每个元素压入循环。

var mobileAds = [
        "mobile/bb.jpg",
        "mobile/eyeko.jpg",
        "mobile/farfetch.jpg",
        "mobile/fsb.jpg"
    ];
    
var randNum = (Math.floor(Math.random() * mobileAds.length));
var randAd = []; // see the change here
    
var i;
for (i = 0; i < mobileAds.length; ++i) {
    randAd.push(mobileAds[randNum]); // push every element here
}
console.log(randAd);
Run Code Online (Sandbox Code Playgroud)