JavaScript(七)-高级技巧篇

news2024/11/19 13:30:55

文章目录

  • 深浅拷贝
    • 浅拷贝
    • 深拷贝
  • 异常处理
    • 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.coloradmin.cn/o/1594209.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Gradle 在 Spring 中的使用-ApiHug准备-工具篇-006

🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace ApiHug …

Linux(Ubuntu) 查看并删除使用【dpkg】安装的软件

目录 ■前言 ■查看安装的软件 ■删除安装的软件 正常删除(dpkg -r xxxxName) 问题解决:use --purge to remove them too ■其他调查信息 命令 图片1 图片2 图片3 ■前言 安装Mysql8.3失败 我的服务器-CSDN博客 ■查看安装的软…

Linux的学习之路:10、进程(2)

摘要 本章主要是说一下fork的一些用法、进程状态、优先级和环境变量。 目录 摘要 一、fork 1、fork的基本用法 2、分流 二、进程状态 三、优先级 四、环境变量 1、常见环境变量 2、和环境变量相关的命令 3、通过代码如何获取环境变量 五、导图 一、fork 1、fork…

`Object3D.lookAt()` 是 Three.js 中 `Object3D` 类的一个方法,用于让一个对象朝向指定的目标点。

demo案例 方法签名 object.lookAt(target)参数 target:目标点的坐标,可以是一个 Three.js 的 Vector3 对象,也可以是包含 x、y、z 坐标的普通 JavaScript 对象。 返回值 该方法没有返回值。 功能 该方法将当前对象的 z 轴指向目标点&am…

GitHub repository - Pulse - Contributors - Network

GitHub repository - Pulse - Contributors - Network 1. Pulse2. Contributors3. NetworkReferences 1. Pulse 显示该仓库最近的活动信息。该仓库中的软件是无人问津,还是在火热地开发之中,从这里可以一目了然。 2. Contributors 显示对该仓库进行过…

【Golang学习笔记】从零开始搭建一个Web框架(四)

文章目录 模板渲染静态文件支持HTML 模板渲染 错误恢复完结撒花~~ 前情提示: 【Golang学习笔记】从零开始搭建一个Web框架(一)-CSDN博客 【Golang学习笔记】从零开始搭建一个Web框架(二)-CSDN博客 【Golang学习笔记】从…

【C++成长记】C++入门 | 类和对象(上) |类的作用域、类的实例化、类的对象大小的计算、类成员函数的this指针

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:C❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、类的作用域 二、类的实例化 三、类对象模型 四、this指针 1、this指针的引出 2 this指针的特…

Linux学习笔记之9(消息队列)

Linux learning 1、引言2、创建一个消息队列3、发送和接受消息3.1、发送消息3.1、接收消息 4、删除一个消息队列5、例程 1、引言 消息队列(message queue)也是进程之间通信的一种方式,相比于共享内存的通信方式,消息队列也有类型…

如何更好地理解 Vue 3 watch 侦听器的用法

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

电脑录屏软件哪个好用又免费?市面20款录屏软件测评结果

随着在线教学、远程办公和自媒体创作的兴起,电脑录屏软件逐渐成为了许多用户的必备工具。市面上的录屏软件琳琅满目,但真正既好用又免费的却并不多见。为了帮助大家找到心仪的录屏软件,我们对市面上20款热门免费录屏软件进行了详细的测评。 电…

【游戏开发之热更新技术】

游戏开发之热更新技术 热更新技术是指在不重新发布和安装应用的情况下,对已部署的应用程序进行更新和修补的技术。这种技术在现代软件开发中变得越来越重要,因为它能够为用户提供更加及时的服务和更好的体验。以下是一篇关于热更新技术的文章&#xff0…

浦大喜奔APP8.0智能升级,发力数字金融深化五大金融篇章服务

1. 浦大喜奔立足科技赋能持续迭代升级,筑牢用户体验护城河 浦发信用卡中心坚持数字科技与客户体验双轮驱动,以科技赋能发展,优化整体系统性能,全方位支撑浦大喜奔 APP提高线上客户服务能力与体验,积极服务民生消费&a…

C++的引用和内联函数,auto

什么是引用 引用就是取别名 可以给一个变量取多个别名,也可以给别名取别名 别名与本名拥有同一地址,对任意别名修改,也会同时修改其他别名和本名 引用的作用 引用的作用与指针重叠度很高 图中函数的参数int& a,int& b,a是x的别名,b是y的别名 则ab的交换就是xy的交…

Python 编程 深入了解内存管理机制、深拷贝与浅拷贝

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、对象和引用、内存管理机制 Python 中的一切都是对象,包括数字、字符串、列表和函数等。为了简化内存管理并提高效率,Python 采用了统一的对象模型。在这个模型中&#xff0c…

【bugku】变量1

1.打开靶场,进入主机 2.根据源码发出get请求,GLOBALS这种全局变量用于在 PHP 脚本中的任意位置访问全局变量 3.得到flag值

第二届数据安全大赛暨首届“数信杯”数据安全大赛数据安全积分争夺赛-东区预赛wp

附件下载地址: 链接:https://pan.baidu.com/s/1tClZrup28n4fUe5Kpa7mgQ?pwdkbd6 文章目录 数据安全题re_ds001Homooo0 数据分析题数据分析1-1数据分析1-2数据分析1-3数据分析2-1数据分析2-2数据分析2-3数据分析3-1数据分析3-2数据分析3-3数据分析5-1数据…

c++调python接口

1. 新建run.py文件,并定义相关接口: import numpy as np from scipy.fftpack import fftdef str_add(str1,str2):return int(str1) int(str2)def my_sort(data):data.sort()return datadef aw_fft(data, Fs):N len(data)result np.abs(fft(xdata, n…

在开发过程中使用 git rebase 还是 git merge

在开发过程中使用 git rebase 还是 git merge Merge(合并)的优点和缺点Rebase(变基)的优点和缺点总结: Git merge 和rebase的目的是一样的,它们都是将多个分支合并成一个。 虽然他们最终的目标是一样的,但这两种方法实现的方式是不同的。那么…

本地化部署离线开源免费语音识别API,支持多模态AI能力引擎

思通数科作为一家专注于多模态AI能力开源引擎平台,其技术产品涵盖了自然语言处理、情感分析、实体识别、图像识别与分类、OCR识别以及语音识别等多个领域。在语音识别这一细分市场,思通数科的技术产品中的音频文件转写服务有着相似的应用场景和功能特点。…

开源!工厂数字化项目会用到的地理信息系统

软件介绍 QGIS(Quantum GIS)是一款免费、开源、跨平台的地理信息系统(GIS)软件,适用于Unix平台、Windows和MacOS。提供了强大且用户友好的功能,使其成为地理信息处理领域的热门选择。 功能特点 1.空间数据管…