簡體   English   中英

全局變量不起作用-largestString() 它將字符串數組作為輸入並返回此數組中的最大字符串

[英]Global variable doesn't work-largestString() which takes an array of strings as input and returns the largest string in this array

 <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 long=arr[0] 在 function 內時,它可以工作,但是當我把它帶到外面時,它顯示“最長未定義”。 這是為什么? 我認為通過將其放在 function 之外,變量“最長”可以自行更新。

先感謝您。

當你把表達式var longest=arr[0]; 在 function 之外, arr指的是全局變量。 它的值設置為[] ,因此它的第一項的值是未定義的。

但是如果你把表達式var longest=arr[0]; 在 scope 內部, arr指的是參數,所以它會有正確的值。

@bran0 的回答是正確的。 我建議你可以寫var longest = ""而不是var longest = arr[0]因為arr的長度可能為零,並且在這種情況下longest將是未定義的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM