
JavaScript
前方路远
我们都不完美,但我们心怀敬畏。愿永葆对技术的憧憬与热忱。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
原生JS操作DOM的方法
开发中遇到需要操作dom才能更改的样式,这里记录一下原创 2022-12-27 14:01:19 · 301 阅读 · 0 评论 -
事件(任务)队列 && 事件循环
目录一、任务队列与事件循环1.1 同步任务与异步任务1.2 任务队列1.3 事件循环(event loop)二、举例三、解决3.1 解决同时输出3.2 解决全输出10问题首先我们都知道JS是单线程的。JS作为浏览器的脚本语言,主要的用途就是与用户互动,操作dom,这也是根本原因决定JS是单线程的原因。 设想一个线程在DOM上添加元素,而另一个线程删除了这个节点,那这个时候应该听谁的?一、任务队列与事件循环1.1 同步任务与异步任务在JavaScri原创 2022-04-07 09:33:37 · 681 阅读 · 0 评论 -
axios取消请求
目录AbortControllerCancelTokendeprecatedAbortController从v0.22.0开始,Axios 支持以 fetch API 方式——AbortController取消请求:const controller = new AbortController();axios.get('/foo/bar', { signal: controller.signal}).then(function(response) { ...原创 2022-04-06 21:29:10 · 1628 阅读 · 0 评论 -
为什么说data属性是一个函数而不是一个对象?
目录一. 实例和组件定义data的区别:二. 组件data定义函数与对象的区别三. 结论一. 实例和组件定义data的区别:vue实例的时候定义data属性既可以是一个对象,也可以是一个函数const app = new Vue({ el:"#app", // 对象格式 data:{ foo:"foo" }, // 函数格式 data(){ return { foo:.原创 2022-03-16 10:47:56 · 395 阅读 · 0 评论 -
递归以及使用场景
递归就是函数直接或者间接调用自身的一种方法,来解决比较复杂的函数逻辑,优缺点:优点: 1. 解决重复执行任务 2. 处理不定层级数据缺点: 1. 时间 空间的消耗较大 2. 重复计算 3. 栈溢出使用场景:树形菜单,递归组件,快速排序等// 快速排序主要是利用递归来实现 function quick(ary) { // 4、结束循环 if (ary.length <= 1) { return ary .原创 2022-03-10 21:20:49 · 2089 阅读 · 0 评论 -
使用js打印出1-10000 之间的所有对称数(如121, 131)
function isSameNum(start, end) {start = (start <= 11 ? 11 : start);for (var i = start; i <= end; i++) {var strI = +(i. toString().split('').reverse(). join(''));if (strI == i) {console.1og(i); } }}原创 2022-03-10 21:17:55 · 699 阅读 · 0 评论 -
数据节流和防抖
目录节流防抖节流节流指的就是,连续的触发当前事件 让他在 n 秒内必须执行一次 场景就是 用在控制 按钮的点击频率,还有上划加载更多通过时间差来判断要不要放弃当次触发, 不需要创建和销毁timer. 但是因为根据前一次的时间差来判断放弃, 可能会扔掉最后一次. 如果最后一次包含重要的状态切换, 则可能丢失.使用场景: 监听页面scroll滚动事件 监听页面窗口resize大小事件 function throttle(fn, delay = 500) {原创 2022-03-10 21:00:07 · 353 阅读 · 0 评论 -
Promise中seTimeout和setInterval的使用
最近在使用promise过程中突然想到如果在promise的resolve,reject中调用setInterval,会不会持续的触发resolve操作?function a() { return new Promise((resolve, reject) => { setInterval(()=>{ resolve('resolved') }, 2000) })}a().then(res =>原创 2022-03-10 20:56:18 · 943 阅读 · 0 评论 -
JavaScript实现轮播图
不用任何插件。<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <原创 2022-03-07 16:59:35 · 111 阅读 · 0 评论 -
模糊搜索includes()方法
Array.prototype.includes方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似。参数1)第一个参数是要查找的元素2)第二个参数表示搜索的起始位置,默认为 0 。如果第二个参数为负数,则表示倒数的位置,如果这时它大于数组长度(比如第二个参数为 -4 ,但数组长度为 3 ),则会重置为从 0 开始。只有一个参数情况[1, 2, 3].includes(2); // true [1, 2, 3].includes(4); // f.原创 2022-02-21 09:50:24 · 1090 阅读 · 0 评论 -
九宫格拼图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="..原创 2022-02-20 21:53:29 · 512 阅读 · 0 评论 -
原生Ajax的创建过程
1.创建xhr 核心对象var xhr=new XMLHttpRequest();2.调用open 准备发送参数一:请求方式参数二: 请求地址参数三:true异步,false 同步xhr.open('post','http://www.baidu.com/api/search',true)3.如果是post请求,必须设置请求头。xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded原创 2022-01-13 19:41:29 · 144 阅读 · 0 评论 -
JavaScript的事件对象
CV大法就可以直接拿走,赶紧去试试看吧原创 2022-01-04 17:19:16 · 319 阅读 · 0 评论 -
一把LOL的时间都不需要,就能了解浅拷贝深拷贝
看完之后是不是觉得很简单,赶紧上手操作吧。原创 2022-01-04 17:02:44 · 228 阅读 · 0 评论 -
Promise使用以及实现
什么是promise?promise是异步编程的一种方案,解决了地狱回调的问题,是一种链式调动的方式 Promise 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。 promise 是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。 Promise是一个构造函数,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。名词约定promise(首字母小写)对象指的是“Promise实例对象”原创 2022-01-03 15:41:26 · 143 阅读 · 0 评论 -
谈谈解构赋值
简单的例子带你了解解构赋值原创 2022-01-03 11:55:43 · 302 阅读 · 0 评论 -
let、var、const区别
var声明的变量存在变量提升,let和const不存在变量提升,变量提升(将变量提升到当前作用域的顶部 2.let和const存在暂时性死区,(暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。) 3.是否允许重复声明变量? var允许重复声明变量。 let和const在同一作用域不允许重复声明变量。 4.var是函数作用域,let和const是块级作用域,块级作用域就是只要有大括号就会形成块级作用域原创 2022-01-03 10:53:36 · 423 阅读 · 0 评论 -
Es6中新的数据类型symbol
Symbol 值通过Symbol函数生成。它是es6新增加的一种数据类型,生成的变量的特点是值是唯一的,可以用来作为对象的key值使用。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewpo原创 2022-01-03 10:47:50 · 203 阅读 · 0 评论 -
Es6中用Set去重
简单易上手,快来操作一番,试试看吧原创 2022-01-03 10:42:46 · 2710 阅读 · 0 评论 -
JavaScript实现倒计时效果
马上就要元旦了,刚需的小伙伴们,CV大法就可以直接拿去用了原创 2021-12-29 18:42:49 · 181 阅读 · 0 评论 -
谈谈js的继承方法
实现继承首先需要一个父类,在js中实际上是没有类的概念,在es6中class虽然很像类,但实际上只是es5上语法糖而已。 js中实现继承的方法共有七种。 原型链继承 借用构造函数继承 实例继承(原型式继承) 拷贝继承 组合式继承 寄生组合式继承 es6继承原型链继承:把父类的实例作为子类的原型(利用原型让一个引用类型继承另一个引用类型的属性和方法)优点:简单易于实现,父类新增的实例与属性子类都能访问到。缺点:可以在子类中增...原创 2021-12-28 20:32:20 · 125 阅读 · 0 评论 -
Javascript中,你掌握了这些方法,就相当于你入门了。
Es6官网concat 数组合并 (es6的扩展运算符)reverse() 数组反转sort() 数组排序splice() 数组截取和添加替换(两个参数代表的是删除,三个删除代表的是替换或者添加,当第二个参数为0事,表示添加)- 第二个参数代表删除的个数或者替换的个数(替换的个数大于原数组的部分长度,只取原数组的最大长度),第三个参数代表的是替换的元素slice() 截取数组(开始索引和结束索引之间,包括开始索引不包括结束索引)pop()原创 2021-12-28 20:10:50 · 243 阅读 · 0 评论 -
Es6的解构赋值,以及作用域
1 全局作用域解释:var变量是定义在window上 var a = 123; console.log(a); //123 console.log(window); //window a: 1232 函数级作用域function fn() { var b = 234; console.log(b); //234 console.log(window); //没有b属性,因为它是函数级作用域,有c属性.因为在函数不定原创 2021-12-25 12:06:52 · 233 阅读 · 0 评论