問題在這里解釋得更清楚: 我正在使用 JavaScript 創建一個簡單的隨機報價生成器。我在名為“quotes.js”的檔案中的陣列中有數百個引號,然后是使其在名為“script.js”的檔案中作業的實際函式,它們都鏈接到“index.html”頁面。我在“script.js”頁面中遇到錯誤,該頁面應該允許從quotes.js 中的陣列中獲取隨機參考,并在每次重繪 頁面時在螢屏上顯示該隨機參考(您會看到在控制臺中參考而不是實際頁面)。有人可以向我解釋為什么我會收到此錯誤以及如何定義變數 localQuotes 嗎?
這是我在 Chrome 的開發人員工具控制臺選項卡中得到的錯誤:

Uncaught ReferenceError: localQuotes is not defined at newQuote (script.js:3) at script.js:7 newQuote @ script.js:3 (anonymous) @ script.js:7
這是我來自 script.js 的代碼:
function newQuote() {
const quote = localQuotes[Math.floor(Math.random() * localQuotes.length)];
console.log(quote);
}
newQuote();
這是quotes.js 中陣列的較短版本:
const localQuotes = [
{
text: 'The greatest remedy for anger is delay.',
author: 'Seneca',
},
{
text: 'Growth itself contains the germ of happiness.',
author: 'Pearl Buck',
},
{
text: "You can do what's reasonable or you can decide what's possible.",
author: null,
},
];
最后是我在 html 檔案中鏈接的 JavaScript:
<!-- Script -->
<script>src="quotes.js"</script>
<script src="script.js"></script>
uj5u.com熱心網友回復:
您的quotes.js 需要為變數提供全域訪問權限才能使其作業。你應該這樣做:
window.localQuotes = {...}
哦,你的腳本標簽是錯誤的,你在那里有一個錯字,我在寫問題時預計它是一個錯字,所以如果它仍然不起作用,請修復那個錯字。
uj5u.com熱心網友回復:
我想到了。它在 html 標簽中。
代替:
<script>src="quotes.js"</script>
<script>src="script.js"</script>
它必須是:
<script src="quotes.js"></script>
<script src="script.js"></script>
解決了!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/362110.html
標籤:javascript 变量 不明确的 未捕获的引用错误
