为什么我不能console.log这个变量

时间:2018-03-02 22:32:30

标签: javascript

我正在试图弄清楚如何在console.log中使用arr变量。当我在函数末尾放置一个简单的console.log语句时,它似乎不起作用。

function oddNumbers() {
    var arr = [];
    var i=1;
    while(i<=50){
        if(i%2===1){
            arr.push(i);
        }
        i++;
    }
    return arr; 
}

1 个答案:

答案 0 :(得分:2)

在你澄清之前,我无法100%确定问题是什么,但这听起来像是一个范围问题。在函数中声明变量arr,这意味着您无法在函数外部访问它。

因此,如果您在功能之外尝试console.log(arr),则会导致错误。但是,由于您从函数返回arr,因此您可以console.log(oddNumbers())查看arr。请参阅下面的代码:

function oddNumbers() {
  var arr = [];
  //your code here 
  var i = 1;
  while (i <= 50) {
    if (i % 2 === 1) {
      arr.push(i);
    }
    i++;
  }
  return arr;
}

console.log(oddNumbers())

如果问题是你在console.log(arr)行之后调用return arr,则不会记录任何内容,因为在处理return后没有评估代码。如果是这种情况,您会看到类似下面的代码段:

function oddNumbers() {
  var arr = [];
  //your code here 
  var i = 1;
  while (i <= 50) {
    if (i % 2 === 1) {
      arr.push(i);
    }
    i++;
  }
  return arr;
  console.log(oddNumbers())
}