JS
文章平均质量分 70
js
wyc_ok
知识是慢慢学的,人是慢慢成长的!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JS 手写call、apply和bind方法
apply、call和bind都是系统提供给我们的内置方法,每个函数都可以使用这三种方法,是因为apply、call和bind都实现在了Function的原型上(Function.prototype),而他们的作用都是给我们函数调用时显式绑定上this。原创 2023-09-21 09:53:11 · 307 阅读 · 0 评论 -
JS Ajax 封装
Ajax(Asynchronous JavaScript And XML)是2005年新出现的技术,它的出现是为了解决这样一个场景:整个页面中,只有一小部分的数据需要进行更新,按照传统的前后端交互,我们需要向服务器请求该网页的所有数据,然后再在客户端重新渲染,这无疑是非常低效的操作。因此,Ajax就可以做到只向服务器请求我们想要的那一小部分数据,而不用请求全部数据,进而在刷新整个页面的前提下更新那部分的数据。原创 2023-09-20 10:27:08 · 1173 阅读 · 0 评论 -
JS 继承
原型链继承是比较常见的继承方式之一,其中涉及的构造函数、原型和实例,三者之间存在着一定的关系,即每一个构造函数都有一个原型对象,原型对象又包含一个指向构造函数的指针,而实例则包含一个原型对象的指针。寄生组合式继承,借助解决普通对象的继承问题的Object.create 方法,在前面几种继承方式的优缺点基础上进行改造,这也是所有继承方式里面相对最优的继承方式。相比第一种原型链继承方式,父类的引用属性不会被共享,优化了第一种继承方式的弊端,但是只能继承父类的实例属性和方法,不能继承原型属性或者方法。原创 2023-09-20 21:24:50 · 438 阅读 · 0 评论 -
原生拖拽实现
采用公式let l = X2 - X1 + left;(移动最后的x值 - 开始点击的x值 + 原始距离左侧的值)得出现在的X值。第二部获取onmousemove移动到最后的let X2 = event.clientX;首先采用onmousedown获取let X1 = event.clientX;第三步获取let left = this.offsetLeft;原创 2023-06-13 10:49:12 · 101 阅读 · 1 评论 -
处理数据 根据 pid 添加到父级 children
【代码】处理数据 pid 找父级 children。原创 2023-09-14 17:24:41 · 292 阅读 · 0 评论 -
JS 垃圾回收机制
在JavaScript中,垃圾回收(GarbageCollection)是一种自动内存管理机制,它可以自动地识别不再使用的变量和对象并将它们从内存中清除,以释放内存空间。JavaScript中的垃圾回收器会定期扫描内存中的对象,标记那些可达对象和不可达对象。1. 可达对象指的是当前代码中正在被使用的对象2. 不可达对象指的是已经不再被引用的对象。垃圾回收器会将不可达对象标记为垃圾对象,并将它们从内存中清除。原创 2023-09-15 20:58:00 · 353 阅读 · 0 评论 -
JS Array 操作方法合集
1.当reduce()方法的第二个值为空时,第一次循环方法中的第一个参数(prev)为数组的第一项值,第二个参数(cur)为数组的第二项值,反之,第一次循环方法中的第一个参数(prev)为reduce的第二个参数值,第二个参数(cur)为数值的第一项值。它们都返回一个遍历器对象,可以用for…flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。原创 2023-09-13 22:18:14 · 501 阅读 · 0 评论 -
JS 原型和原型链
这是js对象中(null和undefined除外)都会存在的属性,这个属性会指向该对象的原型(注意:__proto__因为浏览器兼容性问题,不一定都可以获取到,应当使用Object.getPrototypeOf函数作为获取对象原型的标准API)。在JavaScript 中,每个对象通过__proto__属性指向它的原型对象,这个原型对象又有自己的原型,直到某个对象的原型为 null 为止,这种一级一级的链结构就称为原型链。看下面这副图,通过打印构造函数中的teach方法,能够打印出结果。原创 2023-09-16 12:06:21 · 238 阅读 · 0 评论 -
JS 深浅拷贝
深拷贝与浅拷贝在其它语言中也经常被提及到,在实际项目开发过程中也常常需要区分当前使用的到底是深拷贝还是浅拷贝,有时候在该使用深拷贝的地方,我们使用了浅拷贝,会导致深藏不露的bug。原创 2023-09-15 15:32:43 · 399 阅读 · 0 评论 -
JS 原型的原理
说白了就是说,它会先去找实例本身,如果有,那自然最好。如果没有,没关系,我可以找实例所对应的那个类,它的原型,然后找它的原型上有没有。说白了,先在自己身上找,没有就找它爹要,找他爹其实就是在找它爹的原型,还没有,就找它爷爷,一直找到 Object 身上,还没有,就是 undefined。而现在,我们有了 class 之后,理论上,在我写这个类的时候,其实是用不着原型了,但是原型它自己也有很大的作用。这个过程其实特别的简单,当然这个过程不用我们来完成,都是由 js,由语言自身来支撑这些功能的,不用我们来做。原创 2023-09-19 17:31:28 · 254 阅读 · 0 评论 -
JS parseInt 方法
由于 parseInt 第二个参数的推算并不稳定,所以建议在使用 parseInt 的时候第二个参数也添加上。在捋捋规则:第一个参数默认为字符串类型,不是字符串类型,会被toString;如果字符串无法解析,直接返回NaN;第二个参数指定为 0 或未指定,会根据第一个参数的格式,进行推断。基数的取值范围为 2-36;基数超出范围NaN;来都来了来都来了,顺便看一下和parseInt比较相似的parseFloatparseFloat比较简单,只有一个参数,就是需要解析的字符串。对于。原创 2023-09-19 14:47:59 · 1029 阅读 · 0 评论 -
JS 如何判断一个元素是否在可视区域?
HTMLElement.offsetParent返回一个指向最近的(指包含层级上的最近)包含该元素的定位元素或者最近的 table,td,th,body元素。DOMRect 可以理解为将元素看出一个矩形,该对象包含了该矩形的位置、大小信息,可以获得页面中元素的左,上,右和下分别相对浏览器视窗的位置。有时,我们希望某些静态资源(比如图片),只有用户向下滚动,它们进入视口时才加载,这样可以节省带宽,提高网页性能。这样设置以后,不管是窗口滚动或者容器内滚动,只要目标元素可见性变化,都会触发观察器。原创 2023-09-18 09:54:31 · 1827 阅读 · 0 评论 -
JS Set和Map数据结构
前言:如果要用一句来描述,我们可以说Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构什么是集合?什么又是字典?集合区别?原创 2023-09-14 15:54:14 · 679 阅读 · 0 评论 -
实现3D照片墙效果
【代码】实现3D照片墙效果。原创 2023-09-08 15:32:01 · 227 阅读 · 0 评论 -
响应式方案
响应式设计是一种通过使用CSS和HTML技术,使网站或应用程序能够在不同屏幕尺寸和分辨率下自动适应布局和样式的方法。原创 2023-09-07 09:34:47 · 257 阅读 · 0 评论 -
JS for...in 和 for...of 的区别?
for...in和for...of都是JavaScript中遍历数据的方法,让我们来了解一下他们的区别。使用 for…in 迭代对象的属性名,适用于对象。使用 for…of 迭代集合的值,适用于数组、字符串等可迭代对象。在迭代数组时,通常使用 for…of 而不是 for…in,因为 for…in 可能会迭代到数组的原型链上的属性,而for…of 不会。在迭代对象属性时,可以使用 hasOwnProperty方法来检查属性是否是对象自身的属性,以避免迭代到继承的属性。原创 2023-09-14 21:24:50 · 304 阅读 · 0 评论 -
JS new操作符具体做了什么?
在JavaScript中,“new” 操作符用于创建一个新的对象实例。具体来说,“new” 操作符会执行以下步骤:JavaScript中的new操作符是一个非常重要的操作符,它用于创建一个新的对象实例。原创 2023-09-18 19:11:55 · 867 阅读 · 0 评论 -
JS 采用JSON.parse实现深拷贝时出现的问题?
综上,虽然 JSON.parse(JSON.stringify()) 方法是一种简单易用的实现深拷贝的方法,但它并不完美,使用时需要注意其缺陷。JSON.stringify() 方法无法处理某些特殊的 JavaScript 对象,如 RegExp、Error、Date 等,这些对象会被转换成空对象。JSON.stringify() 方法无法处理 JavaScript 中的函数和 undefined 值,这些值会被忽略掉,因此在使用该方法时需要注意。原创 2023-09-19 16:09:34 · 759 阅读 · 0 评论 -
JS parseFloat 方法
parseFloat方法是将字符串进行转化为浮点数字符串中符合科学计数法则会进行转化字符串中中包含不能转化为浮点数的字符,那么就将已经转化好的部分返回parseFloat会自动过滤字符串前后空格如果参数不是字符串,或者第一个字符不能转化为浮点数,那么返回NaNparseInt不同于Number。原创 2023-09-19 14:38:13 · 5043 阅读 · 0 评论 -
说说你对Object.defineProperty()的理解
定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。通常情况下,我们为对象的属性赋值,对象的属性可以进行修改或删除,通过描述符的设置可以进行更精准的控制对象属性。prop:要定义或修改的属性的名称或 Symbol。除了这些属性,还有两个特殊的属性get和set。descriptor:要定义或修改的属性描述符。get或set不是必须成对出现,任写其一就可以。obj:要定义属性的对象。原创 2023-05-19 15:21:09 · 145 阅读 · 1 评论 -
![] == ![],![] == [],结果是什么?为什么?
]打印结果为false,当布尔类型参与数值比较时,布尔值将转换为数值做比较,true为1,false为0。[]打印结果按照number转换结果也为0,实际上是两个0做比较, 0==0的结果为true。[]打印结果为false,实际上是两个false做比较, false==false的结果为true;,null、undefined、NaN以及空字符串(“”)取反都为true,其余都为false。相当于 0 == 0 自然就返回 true 了。也就是 [] == 0 相当于 ‘’ == 0。原创 2023-05-24 16:26:54 · 160 阅读 · 0 评论
分享