返回顶部
首页 > 资讯 > 精选 >js如何减少作用域查找
  • 499
分享到

js如何减少作用域查找

2023-06-27 17:06:03 499人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“js如何减少作用域查找”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js如何减少作用域查找”这篇文章吧。减少作用域查找(1)不要让代码暴露在全局作用域下例如以下运行在全

这篇文章主要为大家展示了“js如何减少作用域查找”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js如何减少作用域查找”这篇文章吧。

减少作用域查找

(1)不要让代码暴露在全局作用域下

例如以下运行在全局作用域的代码:

<script>     var map = document.querySelector("#my-map");     map.style.height = "600px"; </script>

有时候你需要在页面直接写一个 script,要注意在一个 script  标签里面,代码的上下文都是全局作用域的,由于全局作用域比较复杂,查找比较慢。例如上面的 map 变量,第二行在使用的时候,需要在全局作用域查找一下这个变量,假设  map 是在一个循环里面使用,那可能就会有效率问题了。所以应该要把它搞成一个局部的作用域:

<script> !function(){     var map = document.querySelector("#my-map");     map.style.height = "600px"; }() </script>

上面用了一个 function 制造一个局部作用域,也可以用 es6 的块级作用域。由于 map  这个变量直接在当前的局部作用域命中了,所以就不用再往上一级的作用域(这里是全局作用域)查找了,而局部作用域的查找是很快的。同时直接在全局作用域定义变量,会污染  window 对象。

(2)不要滥用闭包

闭包的作用在于可以让子级作用域使用它父级作用域的变量,同时这些变量在不同的闭包是不可见的。这样就导致了在查找某个变量的时候,如果当前作用域找不到,就得往它的父级作用域查找,一级一级地往上直到找到了,或者到了全局作用域还没找到。因此如果闭包嵌套得越深,那么变量查找的时间就越长。如下:

function getResult(count){     count++;     function process(){         var factor = 2;         return count * factor - 5;     }     return process(); }

上面的代码定义了一个 process 函数,在这个函数里面 count 变量的查找时间要高于局部的 factor 变量。其实这里不太适合用闭包,可以直接把  count 传给 process:

function getResult(count){     count++;     function process(count){         var factor = 2;         return count * factor - 5;     }     return process(count); }

这样 count 的查找时间就和 factor  一样,都是在当前作用域直接命中。这个就启示我们如果某个全局变量需要频繁地被使用的时候,可以用一个局部变量缓存一下,如下:

var url = ""; if(window.location.protocal === "https:"){     url = "wss://xxx.com" + window.location.pathname + window.location.search; }

频繁地使用了 window.location 对象,所以可以先把它缓存一下:

var url = ""; var location = window.location; if(location.protocal === "Https:"){     url = "wss://xxx.com" + location.pathname + location.search; }

搞成了一个局变变量,这样查找就会明显快于全局的查找,代码也可以写少一点。

以上是“js如何减少作用域查找”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: js如何减少作用域查找

本文链接: https://lsjlt.com/news/312668.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • js如何减少作用域查找
    这篇文章主要为大家展示了“js如何减少作用域查找”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js如何减少作用域查找”这篇文章吧。减少作用域查找(1)不要让代码暴露在全局作用域下例如以下运行在全...
    99+
    2023-06-27
  • js如何减少魔数
    这篇文章将为大家详细讲解有关js如何减少魔数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。减少魔数例如,在某个文件的第 800 行,冒出来了一句:dialogHandler.showQuestionNai...
    99+
    2023-06-27
  • Python中如何用海象操作符减少重复代码
    本篇文章给大家分享的是有关Python中如何用海象操作符减少重复代码,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。a = b是一条普通的赋值语句,读作a equals b,而a...
    99+
    2023-06-15
  • JS如何查找数组中重复元素
    小编给大家分享一下JS如何查找数组中重复元素,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:JS的数据类型有一个数组。今...
    99+
    2024-04-02
  • 如何减少服务器租用的成本
    减少服务器租用成本的方法:1、进行网站整合,如将网站统一进行安装等;2、选择优秀的合作厂商,能保障服务器后期的运用;3、选择好的服务器托管公司,能保证业务的发展;4、优化服务器,提高服务器的性能和使用率。具体内容如下:网站整合对于一家公司来...
    99+
    2024-04-02
  • python如何使用 __slots__ 减少内存开销
    这篇文章将为大家详细讲解有关python如何使用 __slots__ 减少内存开销,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用 __slots__ 减少内存开销。你有没有观察到你的 Python 应...
    99+
    2023-06-27
  • oracle如何减少临时表空间占用
    要减少Oracle临时表空间的占用,可以采取以下措施: 优化SQL查询:尽量避免使用大量的临时表或临时表空间,尽可能使用更加高效...
    99+
    2024-04-09
    oracle
  • 如何在Golang API中减少内存占用?
    为了减少golang api中内存占用,可以:使用内存池来避免频繁分配和释放内存。使用字节切片代替字符串,减少字节存储。释放不再使用的资源,如文件句柄和数据库连接。使用内存剖析工具找出内...
    99+
    2024-05-07
    golang 内存优化 内存占用 标准库
  • js如何跨域调用WebService
    这篇文章给大家分享的是有关js如何跨域调用WebService的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。步骤1.   在web.config中的syste...
    99+
    2024-04-02
  • 如何使用Stored Procedure减少SQL拼接需求
    Stored Procedure是一种预编译的SQL查询语句,可以存储在数据库中并通过调用来执行。通过使用Stored Proced...
    99+
    2024-04-29
    SQL
  • 如何在Golang领域找到远程工作?
    标题:如何在Golang领域找到远程工作? 随着全球化的发展和互联网的普及,远程工作已经成为一种趋势,许多人希望能够在自己喜欢的领域,比如Golang领域找到一份远程工作。Golang...
    99+
    2024-03-05
    招聘 golang 远程工作
  • js如何查找最高或最低的数组值
    小编给大家分享一下js如何查找最高或最低的数组值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!查找最高或最低的数组值JavaSc...
    99+
    2024-04-02
  • 如何使用js查找数组中符合条件的元素
    目录一、利用for循环进行查找二、filter() 方法三、find()方法附:JavaScript查找一个数组中符合某个条件的值,并将符合条件的值存入新的数组总结js查找数组中符合...
    99+
    2023-05-14
    js数组中查找指定元素 js查找数组符合条件的元素是什么 js数组获取指定元素
  • 如何用Python代码减少Python所需的内存
    如何用Python代码减少Python所需的内存,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在执行程序时,如果内存中有大量活动的对象,就可能出现内存问题,尤其...
    99+
    2023-06-02
  • 如何分析javascript作用域和作用域链
    如何分析javascript作用域和作用域链,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、javascript的作用域1、全局作用域1、最外层函数和最外层函...
    99+
    2023-06-28
  • 在Linux终端中如何查找域名IP地址
    这篇文章主要介绍了在Linux终端中如何查找域名IP地址,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。可以使用以下 5 个命令来完成此操作。dig 命令:它是一个用于查询 D...
    99+
    2023-06-16
  • CentOS如何查找/扫描局域网打印机IP
    这篇文章主要为大家展示了“CentOS如何查找/扫描局域网打印机IP”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CentOS如何查找/扫描局域网打印机IP”这篇文章吧。假设在 192.168....
    99+
    2023-06-10
  • react如何用懒加载减少首屏加载时间
    目录使用安装如何在路由中使用?加载速度对比最近在写一个react-ant-admin的集成框架用于快速搭载中后台项目。其中遇到很多问题,最重要的应该是访问速度了。我就想 react ...
    99+
    2024-04-02
  • 如何通过php函数来减少内存的使用?
    在开发中,内存的使用是一个很重要的考量因素。如果在程序中使用大量的内存,可能会导致运行速度变慢甚至程序崩溃。因此,合理地管理和减少内存的使用是每个PHP开发者都应该关注的问题。本文将介绍一些通过PHP函数来减少内存使用的方法,并提供具体的代...
    99+
    2023-10-21
    内存 减少 关键词:PHP函数
  • js如何使用!!操作符
    小编给大家分享一下js如何使用!!操作符,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用 !! 操作符!! 运算符可用于将表达式的结果快速转换为布尔值(true...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作