我試著把全局變量變成這樣
const globalname = "";
app.post("/uploads", async (req, res, next) => {
globalname = "helowww";
})
我犯了這樣的錯誤
(node:11228) UnhandledPromiseRejectionWarning: TypeError: Assignment to constant variable.
有人能給我解釋一下為什么這是錯誤,以及如何修正它嗎?謝謝:)
您已經為non-mutable變量分配了一個字符串(non-mutable數據類型)。當您在內存中分配一個新值時,它需要刪除以前分配的字符串,并用新的字符串值替換它。
const
關鍵字確保變量始終在內存中查找相同的位置。所以當你試圖替換它所看到的位置時,它會給你這個錯誤。例如,數組就不存在相同的問題。試試看。您將看到,在使用
const
時,可以從數組中push
或pop
元素。我寫這個答案很快,而且可以擴展,但簡而言之,這就是它的要旨。
您可以嘗試使用
let
或var
關鍵字在此處定義變量。這應該能解決你的問題。另請參閱MDN條目:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/consthttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/lethttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var