javascript - 全局变量不起作用-largestString() 将字符串数组作为输入并返回该数组中最大的字符串

标签 javascript

 <p id="longeststring">
</p>
  <script>

  var arr=[];
  var longest=arr[0];

  function largestString(arr)
  {
   for (var i=0;i<arr.length;i++)
       {if(arr[i].length>=longest.length)
          {longest=arr[i]}


       }
   return longest;

  }
  z=["what","am","I","doing","now"]
  document.getElementById("longeststring").innerHTML=largestString(z)
</script>

所以当 var longest=arr[0] 在函数内部时它起作用,但是当我把它带到外面时,它显示“longest not defined”。这是为什么?我想把它放在函数之外,变量“longest”可以 self 更新。

提前谢谢你。

最佳答案

当您将表达式 var longest=arr[0]; 放在函数外部时,arr 指的是全局变量。它的值被设置为[],所以它的第一项的值是未定义的。

但如果将表达式 var longest=arr[0]; 放在范围内,arr 会引用参数,因此它将具有正确的值。

关于javascript - 全局变量不起作用-largestString() 将字符串数组作为输入并返回该数组中最大的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58279061/

相关文章:

javascript - 如何让 ChartJS 不切断工具提示?

javascript - Android Studio 中的 WebView 应用

javascript - 无法在包含节点的数组项上设置属性

javascript - 使用 Play() 方法在 IOS Safari/Chrome Mobile 中启动动态加载的 HTML 5 视频

javascript - onclick后如何在动态div行下方插入一个div

javascript - JavaScript 中将一个函数传递给另一个函数

javascript - 如何防止按钮第二次点击事件

javascript - 使用 XML 作为源重新加载 DIV 的内容

javascript - 使用 nginx 托管多个网站

javascript - Bootstrap 模式不起作用?