javascript - 高效声明 JavaScript 变量

标签 javascript ajax optimization memory

我正在尝试优化小型 Web 应用程序对 JavaScript 变量的使用。我有大约五个函数,每个函数都会生成 Ajax 调用,并重复使用查询字符串。我应该在每个函数内部声明查询变量,还是全局声明它会提高效率?我正在谈论的一个非常简单的例子是:

本地声明

<script type="text/javascript">

    function queryOne() {
        var queryString = "query arguments";
    }

    function queryTwo() {
        var queryString = "query arguments";
    }
</script>

全局声明

<script type="text/javascript">
    var queryString;

    function queryOne() {
        queryString = "query arguments";
    }

    function queryTwo() {
        queryString = "query arguments";
    }
</script>

使用全局声明方案是否有显着的效率优势?

最佳答案

应该在本地声明,因为任何全局声明都会花费额外的时间在本地作用域中查找变量,然后在全局作用域中查找变量,这使得全局声明实际上更慢。另外,变量声明可能不需要搜索变量名称,它可以简单地尝试创建一个新变量。

此外,如果将来添加代码,全局声明变量可能会导致它被其他代码覆盖或发生冲突。

实际上,如果查询字符串仅分配一次,则使用模块级变量可能会节省一些时间。但是,如果每次调用函数时都重新分配查询变量,那么将查询变量设置为每个函数的本地变量肯定会节省时间。

关于javascript - 高效声明 JavaScript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7613047/

相关文章:

php - 在 PHP 中使用多维数组生成有效的 JSONP

javascript - 我可以测试 jsonp ajax 调用的任何公共(public) api?

matlab - 非线性灰盒系统辨识与Matlab

javascript - 使用 JS 调用编辑 $_SESSION

javascript - jQuery 中附加 [object%20Object] 的 JSON 请求

mysql - 优化 SQL 查询

performance - 如果是 Chrome,请使用 WebP

javascript - JQuery '.load()' 不工作

javascript - 在 DOM Promises 中调试异常

javascript - SQL 插入语句在 Javascript 中不起作用