javascript - 加载新的 html 页面时,JS 变量是否会被销毁?

标签 javascript variables browser

只是一个简单的问题。当您有一个包含普通函数、变量和其他内容的 js 文件时,该页面将被加载,然后在需要代码时使用。但我的问题是,例如,当您导航到另一个页面(例如使用 window.location.href)时,您创建的任何/所有变量会发生什么?它们还存在于内存中吗?它们还能以某种方式访问​​吗?或者它们会永远消失,直到您重新加载原始文件为止?

干杯

最佳答案

简短回答:

存储在 JS 文件中的每个变量都会丢失,或者说,每次重新加载页面或更改 Window.location.href 时都会创建一个新副本。

要保留数据或在重新加载之间使用变量的值,您应该使用客户端数据存储,例如 sessionStoragelocalStoragecookies.

例如,假设要使用持久变量的值,您可以使用

let persist = "My data";
// Store it in localstorage 
localStorage.set('persist', persist);

// Get the value of your saved variable to use it elsewhere 
let persist = locastorage.get("persist");

//To delete the variable from storage 
localStorage.removeItem('persist')

// To clear the entire storage
localStorage.clear()

语法与 sessionStorage 相同,但使用 sessionStorage 存储的值仅在页面 session 期间可用。有关 DOM 存储的更多信息,您可以阅读 here .

关于javascript - 加载新的 html 页面时,JS 变量是否会被销毁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57727555/

相关文章:

javascript - CSS使div自动 float

javascript - 在 where 子句中将强制转换列序列化为整数

python - 动态创建变量是个好主意吗?

以浏览器为界面的 Python 桌面应用程序?

Javascript - 在浏览器选项卡之间跳转

javascript - 同一范围内的多个 for 循环如何影响程序的大 O 表示法?

javascript - 第三方REST API基础认证

python - 如何为需要文件名而不是变量的 python 子进程调用提供输入?

Xcode "passing variables at launch"问题

windows - 在网页上加载 javascript 时输入意外结束