首页 前端知识 【H2O2|全栈】JS进阶知识(三)jQuery(3)

【H2O2|全栈】JS进阶知识(三)jQuery(3)

2025-03-19 11:03:43 前端知识 前端哥 793 69 我要收藏

目录

前言

开篇语

准备工作

$ 拷贝

浅拷贝和深拷贝

节点拷贝

$ 遍历

结束语


前言

开篇语

本系列博客主要分享JavaScript的进阶语法知识,本期为第三期,主要分享的内容为:jQuery拷贝和遍历。

从进阶部分开始,我们将脱离原生的JS,使用一些包装的第三方库来完成我们的需求。这些JS库需要在文档的开头引入,暂时的引入格式为script标签加src地址。

与基础部分的语法相比,进阶部分的语法会有较大的差别,注意最好不要混用原生方法与第三方库内容,以免出现不必要的麻烦。

准备工作

软件:【参考版本】Visual Studio Code

插件(扩展包):Open in browser, Live Preview, Live Server, Tencent Cloud AI Code Assistant, htmltagwrap

提示:在不熟练的阶段建议关闭AI助手

第三方JS库:jquery.min.js

提示:请站内搜索下载、引入方式

浏览器版本:Chrome

系统版本: Win10/11/其他非Windows版本

$ 拷贝

浅拷贝和深拷贝

根据变量类型的不同,复制变量通常有两种方式—— 浅拷贝深拷贝

就浅拷贝而言,它的形式上类似下面这样——

var a = 'aaa'

var b = a

它只能复制栈内存中的内容,于是在复制时会出现下面两种状况——

  • 对于字面量类型的数据,由于它只存储在栈内存中,所以直接复制本身
  • 而对于引用类型的数据,栈内存里只存储堆内存中实际存储数据的地址,所以实质上是地址被复制了,两个变量实际上还是在对同一组数据进行操作

如果想要真正复制引用类型的数据,则需要使用深拷贝,即将堆内存中的数据复制一份,存到新的地址中。

$提供的深拷贝方法形式如下——

$.extend(true, targetObj, obj)

可以实现把obj复制一份新的数据,存储到targetObj中。该方法需要使用最高级节点$调用。 

节点拷贝

$提供了将元素节点拷贝的方法clone(),又叫节点克隆。该方法直接返回复制之后的新节点。

如果不填参数,则只复制元素节点,不复制该节点绑定的事件。

填写参数true,则新的节点还可以具有原节点绑定事件。 

$ 遍历

之前我们知道,对一个元素进行遍历,有三种方式——for-i,for-in,for-of。

比如,我们对一个数组元素arr进行遍历,可以这么做——

for (var i = 0; i < arr.length; i++) { } // i为索引

for (var i in arr) { } // i为索引

for (var item of arr) { } // item为元素

现在,$也提供了一种遍历方法each(),该方法由最高级节点$调用。 

采用该方式遍历数组,类似下面的格式——

$.each(arr, function(i, item) { })

其中i为索引,item为元素。

当然,该方式也可以用于遍历对象,类似下面的格式——

$.each(obj, function(key, value) { }) 

其中key为属性,value为值。 

结束语

本期内容到此结束。关于本系列的其他博客,可以查看我的JS进阶专栏。

在全栈领域,博主也只不过是一个普通的萌新而已。本系列的博客主要是记录一下自己学习的一些经历,然后把自己领悟到的一些东西总结一下,分享给大家。

文章全篇的操作过程都是笔者亲自操作完成的,一些定义性的文字加入了笔者自己的很多理解在里面,所以仅供参考。如果有说的不对的地方,还请谅解。

==期待与你在下一期博客中再次相遇==

——临期的【H2O2】

转载请注明出处或者链接地址:https://www.qianduange.cn//article/24056.html
标签
评论
发布的文章

动态规划感悟1

2025-03-20 12:03:52

华为NAS真实测评!

2025-03-20 12:03:52

Java设计模式之代理模式

2025-03-20 12:03:51

Linux 锁、线程同步

2025-03-20 12:03:48

大家推荐的文章
会员中心 联系我 留言建议 回顶部
浏览器升级提示:您的浏览器版本较低,建议您立即升级为知了极速浏览器,极速、安全、简约,上网速度更快!立即下载
复制成功!