JavaScript
JavaScript
学习前端的渣渣
正在学习前端的渣渣
展开
-
sort排序字母+数字混合排序
使用ocaleCompare进行排序后,发现排序后的顺序是这样的(为什么会这样排序,可以自己去研究一下),但这并不是自己想要的。期望顺序:A-11,A-22,A-111,A-222。在网上查找了半天,终于找到了一个可以解决这个问题的代码,直接拿过来套用。原创 2023-09-01 09:21:48 · 417 阅读 · 0 评论 -
js中如何实现防抖、节流?
n 秒内只运行一次n 秒后在执行该事件。原创 2022-08-21 18:10:41 · 1490 阅读 · 0 评论 -
ES6中扩展运算符(...)的作用
如果存储的数据为基本数据类型,则为深拷贝;如果存放的是引用数据类型,就是浅拷贝;原创 2022-08-26 23:22:34 · 163 阅读 · 0 评论 -
堆内存与栈内存的区别?
栈是一种连续储存的数据结构,具有先进后出、后进先出的性质。栈内的元素只能通过列表的一端访问,这一端称为栈顶。由于栈具有先进后出的特点,所有任何不在栈顶的元素都无法访问。原创 2022-07-24 22:15:03 · 1298 阅读 · 0 评论 -
ES6中const定义的对象的属性可以修改么?
const定义的对象保证的并不是变量的值,而是变量指向的内存地址不能改动;来说,变量指向的是数据的内存地址,保存的是一个指针(引用地址)来说,用const定义基本数据类型,等同于常量;原创 2022-08-26 00:00:40 · 387 阅读 · 0 评论 -
什么是回调地狱以及如何使用Promise解决回调地狱?
一秒钟之后输出1,然后2秒钟输出2,然后3秒之后输出3;多个异步操作的嵌套,形成了回调地狱,代码的可读性不高;多个串联的异步操作(多个异步操作的嵌套);原创 2022-08-30 00:25:43 · 114 阅读 · 0 评论 -
ES6中Promise.race的用法以及使用场景
将多个Promise实例包装成一个新的Promise实例;原创 2022-09-01 15:09:15 · 398 阅读 · 0 评论 -
实现一个方法,找出数组中的第k大和第m大的数字相加之和
findTopSum(arr,k,m);//第2大的数是4,出现2次,第4大的是2,出现1次,所以结果为10。实现一个方法,找出数组中的第k大和第m大的数字相加之和;原创 2022-07-25 22:48:44 · 328 阅读 · 0 评论 -
js中的浅拷贝、深拷贝与赋值的区别?
1、浅拷贝 将原对象或原数组的引用直接赋值给新对象、新数组,新对象(数组)只是对原对象的一个引用,而不是赋值原对象(原数组)本身,新旧对象还是共享同一块内存。 如果是一个基本数据类型,拷贝的就是基本数据类型的值,如果是引用数据类型,拷贝的就是内存地址。2、深拷贝 创建一个新的对象或数组,将原对象(数组)的值拷贝过来,是“值”而不是“引用” 深拷贝就是把一个对象(数组),从内存中完整的拷贝出来,从堆内存中开辟一个新的存储空间,用来存新对象(数组),并且修改新对象(数组)不会对原对象(数组)造成影响原创 2022-07-12 14:20:51 · 365 阅读 · 0 评论 -
ES6中Promise.all的理解以及应用
Promise.all用于将多个Promise实例,包装成一个新的Promise实例。原创 2022-08-31 23:31:24 · 494 阅读 · 0 评论 -
ES6中的rest参数
用于获取函数多余的参数,联合扩展运算符一起使用,形式(…变量名),也可以把一个分离的参数整合为一个数组,值是一个数组;原创 2022-08-27 20:16:50 · 99 阅读 · 0 评论 -
ES6中for...of和for...in的区别
for…in主要是为了遍历对象而产生,不适用于遍历数组,性能差,不推荐使用;for…of可以用来遍历数组,类数组对象,字符型…原创 2022-08-29 22:50:43 · 201 阅读 · 0 评论 -
ES6中对箭头函数的理解
箭头函数内的this是静态的,总是指向定义时所在的对象,而不是调用时,并且this指向是不可改变的;原创 2022-09-02 16:25:50 · 199 阅读 · 0 评论 -
ES6中对象和数组的解构
解构:一种提取数据的模式。原创 2022-08-27 20:27:19 · 108 阅读 · 0 评论 -
ES6中对Promise的理解以及它的实例方法
Promise是异步编程的一种解决方案,解决多个串联的异步操作形参的回调地狱;pending:进行中fulfilled:已成功rejected:已失败状态不受外界的影响,只有异步操作的结果,决定当前是哪一种状态;一旦状态改变就不会再变(pending–>fulfilled;Promise是一个构造函数,用来生成Promise实例;Promise构造函数接收一个函数作为参数,这个函数有两个参数(resolve,reject);...原创 2022-08-30 00:12:06 · 202 阅读 · 0 评论 -
正则表达式收集
【代码】正则表达式收集。原创 2022-10-25 10:24:17 · 151 阅读 · 0 评论 -
setTimeout与setInterval的区别与机制
用于在指定的毫秒数后调用函数或计算表达式。只执行一次。原创 2022-09-26 17:24:48 · 150 阅读 · 0 评论 -
重绘(Repaint)和回流(Reflow)(重排),以及如何优化?
流式布局。原创 2022-09-22 14:55:59 · 486 阅读 · 0 评论 -
服务端渲染SSR
服务端渲染的模式下,当用户第一次请求页面时,由服务器把需要的组件或页面渲染成HTML字符串,然后把它返回给客户端。客户端拿到手的,是可以直接渲染然后呈现给用户HTML内容,不需要为了生成DOM内容,自己再去跑一遍JS代码。有了服务端渲染,当请求用户也页面时,返回body里,已经有了首屏的html结构,之后结合css显示出来。原创 2022-09-21 23:36:33 · 100 阅读 · 0 评论 -
JS中什么是变量提升(预解析),导致了什么问题?
js在执行代码前,浏览器会对js代码进行扫描,默认把所有带var和function声明的变量进行提前声明或定义,遵循先解析后使用的原则。原创 2022-09-21 23:12:39 · 353 阅读 · 0 评论 -
解决js延迟加载的方式
JS延迟加载就是页面加载完成之后再加载js文件,有助于提高页面加载速度。因为js是单线程,会阻塞DOM解析,因此也会阻塞DOM的加载。HTML元素是按其在页面中出现的次序调用的,如果用javascript来管理页面上的元素(使用文档对象模型dom),并且js加载于欲操作的HTML元素之前,则代码将出错。也就是说,我们写了js语句来获取DOM对象,但由于DOM结构还没有加载完成,因此获取到的是空对象。原创 2022-09-21 18:08:56 · 2469 阅读 · 0 评论 -
Object对象的相关方法
该参数是一个属性描述对象,它所描述的对象属性,会添加到实例对象,作为该对象自身的属性。如果目标对象与源对象、或者源对象与源对象有同样的属性的话,后面的属性会覆盖前面的属性。该方法接收一个对象作为参数,然后以它为原型,返回一个实例对象。为参数对象设置原型,返回该参数对象。用于返回给定对象自己的可每组属性名称的数组,以与普通循环相同的顺序迭代。创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。返回一个数组,成员是参数对象本身的所有属性的键名,不包含继承的属性名。这是获取原型对象的标准方法。原创 2022-09-19 23:04:23 · 238 阅读 · 0 评论 -
JS中的宏任务与微任务
主线程 > 微任务 > Dom渲染 > 宏任务。原创 2022-09-18 22:51:41 · 553 阅读 · 0 评论 -
js中声明函数的几种方式
【代码】js中声明函数的几种方式。原创 2022-09-14 22:12:01 · 1716 阅读 · 0 评论 -
ES6如何实现模糊查询
【代码】ES6如何实现模糊查询。原创 2022-09-14 21:44:48 · 964 阅读 · 0 评论 -
async与await
promise对象的结果由async函数执行的返回值决定;原创 2022-09-14 19:08:03 · 164 阅读 · 0 评论 -
懒加载与预加载
懒加载也可以叫做延迟加载,当访问一个页面的时候,先把img元素伙食其他元素的背景图片路径替换成一张大小为1*1px图片的路径(这样只需要请求一次,俗称占位图);只有当图片出现在浏览器的可视区域内时,才这只图片真正的路径,让图片显示出来,这就是图片懒加载。资源预加载是另一个性能优化技术,我们可以使用该技术来预先告知浏览器某些资源可能在将来会被使用到。预加载简单来说就是将所有所需的资源提前请求加载到本地,这样后面在需要用到时就直接从缓存取资源。原创 2022-09-06 23:46:57 · 629 阅读 · 0 评论 -
JS中如何实现继承及缺点
B继承A,则A为父类,B为子类,继承可以让子类具有父类的各种属性和方法;原创 2022-09-02 22:17:01 · 103 阅读 · 0 评论 -
JS中清空数组的方法
splice:第一个参数:添加或删除元素的位置;第二个参数:删除元素的数量;splice影响元素组;原创 2022-09-02 21:24:32 · 329 阅读 · 0 评论 -
JS中对作用域和作用域链的理解
作用域链:用于查找变量;作用域:变量或函数生效的区域;原创 2022-09-02 21:17:37 · 103 阅读 · 0 评论 -
JS中对事件代理的理解以及应用场景
事件流的三个阶段:1、捕获阶段----->2、目标阶段----->3、冒泡阶段;事件代理:把一个元素响应事件的函数委托到另一个元素上,也叫事件委托;事件代理(事件委托)主要就是利用了。动态添加了节点或删除了节点。原创 2022-09-02 20:16:03 · 472 阅读 · 0 评论 -
JS中垃圾回收机制与内存泄漏的几种情况
内存泄漏:由于疏忽或者错误造成程序未能释放已经不能再使用的内存。通俗来说就是不再使用的内存未及时释放,从而造成内存上的浪费。原创 2022-09-02 19:51:57 · 349 阅读 · 0 评论 -
JS中cookie、localStorage和sessionStorage的区别
这两个都是h5新出的本地存储的方式;原创 2022-09-02 17:15:19 · 163 阅读 · 0 评论 -
JS中“use strict”的含义以及使用它的区别
use strict:使用严格模式;不会支持一些不规范的语法;原创 2022-09-02 16:55:28 · 361 阅读 · 0 评论 -
JS中如何阻止事件冒泡和默认行为?
事件对象:event对象,可以当成是一个形参来看,包含所有与事件相关的信息,比如触发事件的元素,事件的类型…原创 2022-09-01 22:35:55 · 186 阅读 · 0 评论 -
JS中对事件流的理解
三个参数:1、事件类型;3、布尔值(false冒泡,true捕获,默认为false)事件流分为3个阶段:1、捕获阶段(由外到内);3、冒泡阶段(由内到外)addEventListenter( ):事件监听的方法;先弹出“父元素”弹窗,再弹出“子元素”弹窗。先弹出“子元素”弹窗,再弹出“父元素”弹窗。事件流:从页面中接收事件的顺序。原创 2022-09-01 22:00:27 · 220 阅读 · 0 评论 -
JS中ajax的原理是什么?
原理:通过XMLHttpRequest对象来向服务器发送异步请求,从服务端获取数据,然后用js来操作DOM去更新页面。原创 2022-09-01 21:00:07 · 237 阅读 · 0 评论 -
使用Promise封装ajax
使用Promise封装ajax。原创 2022-09-01 20:14:27 · 203 阅读 · 0 评论 -
JS中如何判断一个属性是属于实例对象还是继承于构造函数
通过hasOwnProperty()这个方法,hasOwnProperty()检测一个属性是否属于自身对象,还是继承于原型链上的;属于自身对象,返回true,否则返回false。原创 2022-08-29 23:05:12 · 334 阅读 · 0 评论 -
JS中对原型的修改和重写
重写原型,主要影响的是实例对象通过xxx.constructor的方式指向的构造函数不同,重写原型后,指向的是Object这个根构造函数。修改构造函数的原型,不会影响实例对象隐式原型和构造函数显示原型是否相等。...原创 2022-08-29 00:49:01 · 1255 阅读 · 0 评论