JavaScript(七)-高级技巧篇

文章目录

  • 深浅拷贝
    • 浅拷贝
    • 深拷贝
  • 异常处理
    • thorw抛异常
    • try/catch捕获异常
    • debugger
  • 处理this
    • this指向
    • 改变this
  • 性能优化
    • 防抖
      • lodash实现防抖
      • 手写防抖函数
    • 节流 - throttle


深浅拷贝

浅拷贝

在这里插入图片描述
在这里插入图片描述

深拷贝

深拷贝有三种方式

  • 通过递归实现深拷贝
    一定先写数组再写对象
    在这里插入图片描述

  • lodash/cloneDeep
    在这里插入图片描述

  • 通过JSON.stringify()实现
    在这里插入图片描述

异常处理

thorw抛异常

在这里插入图片描述

try/catch捕获异常

在这里插入图片描述

debugger

在这里插入图片描述

处理this

this指向

普通函数this指向
在这里插入图片描述

箭头函数this指向
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

改变this

JavaScript中还允许指定函数中this的指向,有三个方法可以动态指定普通函数中this的指向

  • call()
    在这里插入图片描述
    在这里插入图片描述

  • apply()

在这里插入图片描述

  • bind()
    在这里插入图片描述
    在这里插入图片描述
    总结
    在这里插入图片描述

性能优化

防抖

在这里插入图片描述
在这里插入图片描述

lodash实现防抖

在这里插入图片描述

手写防抖函数

在这里插入图片描述
在这里插入图片描述

节流 - throttle

在这里插入图片描述

在这里插入图片描述

  • lodash实现节流函数
    在这里插入图片描述

  • 手写一个节流函数
    在这里插入图片描述
    在这里插入图片描述
    为什么使用timer = null的操作?
    因为在setTimeout中是无法删除定时器的,因为定时器还在运作所以使用timer = null
    在这里插入图片描述
    视频节流

  • 存储节流的时间
    在这里插入图片描述

  • 获取节流的时间
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/618474.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot+FreeMaker

目录 1.FreeMarker说明2.SpringBootFreeMarker快速搭建Pom文件application.properties文件Controller文件目录结构 3.FreeMarker数据类型3.1.布尔类型3.2.数值类型3.3.字符串类型3.4.日期类型3.5.空值类型3.6.sequence类型3.7.hash类型 4.FreeMarker指令assign自定义变量指令if…

解放双手,批量绕过403

将dirsearch扫描出来的结果复制到url.txt,如下所示 url.txt [21:18:16] 502 - 0B - /var/log/exception.log [21:18:21] 502 - 0B - /WEB-INF/jetty-env.xml [21:18:22] 502 - 0B - /WEB-INF/weblogic.xml [21:18:27] 502 - 0B - /wp-json/wp/v2/u…

【信号与系统 - 8】取样定理

1 定义 取样处理就是对连续信号的离散化处理 p ( t ) p(t) p(t) 是开关函数 f s ( t ) f ( t ) ⋅ p ( t ) f_s(t)f(t)\cdot p(t) fs​(t)f(t)⋅p(t) 当 p ( t ) p(t) p(t) 为周期矩形函数时 该取样为均匀抽样,周期为 T s T_s Ts​,则取样角频率为&…

一种驱动器的功能安全架构介绍

下图提供了驱动器实现安全功能的架构 具有如下特点: 1.通用基于总线或者非总线的架构。可以实现ethercat的FSOE,profinet的profisafe,或者伺服本体安全DIO现实安全功能。 2.基于1oo2D架构,安全等级可以达到sil3。 3.高可用性。单…

keil无法查看外设寄存器(生成SFR文件)

1.前言 自从更新了keil,用的是越来越不顺手了,一会是cannot evaluate,一会是与强制与cubemx强制联系了,这次也是的(地铁,老人,手机)折腾了一下总是搞好了(网上的解法只能…

Google最新论文: 复杂的 Prompt 如何更好的调试?

本文介绍了Sequence Salience,这是一个专为调试复杂的大模型提示而设计的系统。该系统利用广泛使用的显著性方法,支持文本分类和单标记预测,并将其扩展到可处理长文本的调试系统。现有的工具往往不足以处理长文本或复杂提示的调试需求。尽管存…

InternlM2

第一次作业 基础作业 进阶作业 1. hugging face下载 2. 部署 首先,从github上git clone仓库 https://github.com/InternLM/InternLM-XComposer.git然后里面的指引安装环境

微信小程序开发遇到的奇奇怪怪的问题

新建项目发现顶部栏标题不生效问题 开发者工具新建项目默认开启全局Skyline渲染引擎,因为Skyline不支持原生导航栏,所以就没显示原生导航栏了。 如果想用回原生导航栏,可以把app.json里面的 "renderer": "skyline", 去掉…

Docker容器基本操作从入门到大牛

1. Docker安装部署 1.1 openEuler使用YUM安装 [rootnode1 ~]# yum install docker -y [rootnode1 ~]# docker version Client:Version: 18.09.0EulerVersion: 18.09.0.332API version: 1.39Go version: go1.17.3Git commit: 9942888Built…

自定义多数据源

多数据源 第一章 自定义多数据源 文章目录 多数据源前言一、先在配置文件中配置好多个数据源二、配置数据源的配置文件三、定义动态数据源配置1、自定义了Datasource,主要目的是为了在Spring容器中定义一个datasource的Bean,用于mybtais获取数据库连接使…

网络安全等级保护等级测评方案

软件全套资料包获取进主页。 ‘

DolphinScheduler2.x 伪分布式部署

文章目录 DolphinScheduler2.x 伪分布式部署QA DolphinScheduler2.x 伪分布式部署 DolphinScheduler 部署说明 1 软硬件环境要求 1.1 操作系统版本要求 操作系统版本Red Hat Enterprise Linux7.0 及以上CentOS7.0 及以上Oracle Enterprise Linux7.0 及以上Ubuntu LTS16.04 …