- 博客(12)
- 收藏
- 关注
原创 promise
promise的三个状态: pending(默认) fulfilled(成功) rejected(失败)resolve函数被执行时, 会将promise的状态从 pending 改成 fulfilled 成功reject函数被执行时, 会将promise的状态从pending 改成 rejected 失败Promise.reject()new Promise((resolve, reject) => { reject()})Promise.resolve()new Pro
2021-07-13 18:24:42 437
原创 Vue组件之间如何进行通信
vue组件之间的传值大致分为三种:父组件给子组件传值,子组件给父组件传值,兄弟组件之间传值vue组件之间简单的数据传递,如果组件之间传递的数据比较复杂,建议使用vue的状态管理模式 vuex父组件给子组件传值1.父组件通过props给子组件传值props 就是父组件给子组件标签上定义的属性,用来接收父组件传递的数据,props 的值可以是字符串数组,也可以是各自的名称和类型,用法和 data 中的数据用法一样,在子组件中只能使用该值,不能修改2.父组件通过$ref给子组件传值 ref 用于给元素
2021-07-13 17:54:27 1496
原创 vuex了解
如果组件之间传递的数据比较复杂,建议使用vue的状态管理模式 vuexVuex 适用于 父子、隔代、兄弟组件通信Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。每一个 Vuex 应用的核心就是 store(仓库)。“store” 基本上就是一个容器,它包含着你的应用中大部分的状态 ( state )。Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。改变 store 中的状态的唯一
2021-07-13 17:07:52 206
原创 事件委托及获取ul下li的index
事件委托,就是利用了事件冒泡的机制,在较上层位置的元素上添加一个事件监听函数,来管理该元素及其所有子孙元素上的某一类的所有事件。适用场景:在绑定大量事件的时候,可以选择事件委托优点-事件委托可以减少事件注册数量,节省内存占⽤!-当新增⼦元素时,⽆需再次做事件绑定,因此非常适合动态添加元素示例<ul id="list"> <li>111</li> <li>222</li> <li>333</li&
2021-07-13 16:47:34 1173
原创 this 的理解
this 是一个在运行时才进行绑定的引用,在不同的情况下它可能会被绑定不同的对象。默认绑定 (指向window的情况) (函数调用模式 fn() )默认情况下,this 会被绑定到全局对象上,比如在浏览器环境中就为window对象,在node.js环境下为global对象message = "Hello"; function test () { console.log(this.message); }test() // "Hello"隐式绑定 (谁调用, this指向谁) (方法
2021-07-13 16:30:23 49
原创 数组去重方式
方法1:双层循环,外层循环元素,内层循环作比较方法2:利用对象属性不能相同的特点去重方法3:数组递归去重方法4:使用ES6的set,一句话搞定:Array.from(new Set([1,1,2,3,3,4,2])) //[1,2,3,4]set和map的区别Set结构是类似于数组结构,但是成员都是不重复的值Map结构是键值对集合(Hash结构)两者都是可以去重,set的话直接打数组放进去,然后直接返回一个去重的数组Map去重的话要遍历每一项,并且要进行判断才能去重.比较麻烦方法一:双
2021-07-13 16:12:09 81
原创 判断数据类型与数组
js判断数据类型1、typeof 用来检测数据类型的运算符typeof null ->“object”检测的不管是数组还是正则都返回的是"object",所以typeof不能判断一个值是否为数组用于判断数据类型,返回值为6个字符串,分别为string、Boolean、number、function、object、undefined。typeof在判断null、array、object以及函数实例(new + 函数)时,得到的都是object。这使得在判断这些数据类型的时候,得不到真是的数据类
2021-06-22 17:28:21 1438
原创 对于继承的理解
1.继承 - 原型继承原型继承: 通过改造原型链, 利用原型链的语法, 实现继承方法// 1. 定义Person构造函数function Person (name, age) { this.name = name this.age = age}Person.prototype.say = function () { console.log('人类会说话')}// 2. 定义Student构造函数function Student (name, age, className) {
2021-06-22 16:42:56 69
原创 原型与原型链
JavaScript 原型,原型链? 有什么特点原型对象也是普通的对象,是对象一个自带隐式的 __ proto__ 属性,原型也有可能有自己的原型,如果一个原型对象的原型不为 null 的话,我们就称之为原型链原型链是由一些用来继承和共享属性的对象组成的(有限的)对象链(基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法)理解:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针.那么,假如我们让原型对象等于另一个类型的实例,
2021-06-22 16:16:29 47
原创 函数防抖和函数节流
闭包实现防抖,节流函数防抖(一定条件下执行一次,是函数防抖)函数防抖是指频繁触发的情况下,只有足够的空闲时间,才执行代码一次。函数防抖的应用场景,最常见的就是用户注册时候的手机号码验证和邮箱验证定义:防抖,即如果短时间内大量触发同一事件,都会重置计时器,等到事件不触发了,再等待规定的事件,才会执行函数。原理:设置一个定时器,设置在规定的时间后触发事件处理,每次触发事件都会重置计时器。用处: 防抖用于搜索框和滚动的监听事件处理,如果没有防抖,那么每输入一个字或者滚动屏幕,都会触发事件,甚至一秒
2021-06-22 15:58:38 107
原创 对闭包的理解
什么是闭包一个函数返回另外一个函数的作用域闭包的作用简单说一个函数返回访问另外一个函数的作用域在实际开发中,闭包最大的作用就是用来变量私有闭包实现防抖,节流闭包的优势就体现出来了,保护全局作用域不被污染,又能做到函数复用需求: 定义一个计数器方法, 每次执行一次函数, 就调用一次进行计数闭包实例:function fn () { let count = 0 function add () { count++ console.log('fn函数被调用了' + cou
2021-06-22 15:40:18 129
原创 模板引擎 -- art-template
模板引擎 – art-template特点art-template是一个简单且超快速的模板引擎,可通过范围内预先声明的技术优化模板渲染速度,从而实现接近JavaScript极限的运行时性能。支持Express,Koa,Webpack,同时,它支持NodeJS和浏览器。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport
2020-09-13 17:35:07 202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人