
前端
前端开发
wx479
这个作者很懒,什么都没留下…
展开
-
js数组插入任意元素
js数组插入任意元素原创 2022-03-04 09:11:31 · 47 阅读 · 0 评论 -
vue3 render()函数与 h()函数联合使用
先把源码放出来,result是上一篇文章生成的虚拟节点const render = ((...args) => { ensureRenderer().render(...args);})let renderer;const extend = Object.assignfunction ensureRenderer() { return (renderer ||(renderer = createRenderer(rendererOptions)));}funct原创 2021-11-01 12:38:47 · 2745 阅读 · 0 评论 -
javascript运算符以及js中的数据类型(上)
javascript中的数据类型有number(这个容易和integer混淆起来),null,undefined,string,boolean,object,以及es6新增加的symbol类型数据我们首先来看这些数据之间的转换运算首先是number和string我们让一个数字和一个字符相加得到的结果是一个字符串使用一个数字和一个字符串相加我们得到的任然是一个字符串那么问题来了,number类型的数据和string类型的数据相减会得到什么结果呢?从控制台输出可以看到,num原创 2021-10-09 12:37:45 · 334 阅读 · 0 评论 -
js实现数组去重
1.利用es6set集合元素不重复特性2.可以通过数组filter函数配合indexOf函数来进行数组的去重操作3.利用键值对的形式达到去重的目的原创 2021-10-20 13:59:15 · 103 阅读 · 0 评论 -
js 中的instanceof运算符
target instanceof constructor代码表示的是构造函数constructor()的prototype属性是否出现在target对象的原型链中,说得通俗一点就是,判断target对象是不是构造函数constructor()的实例。1.常规用法定义一个函数,然后new实例化一个对象,instanceof运算符判断是否是它的原型,是的话返回true,否则就是false2.instanceof运算符可以用于继承判断通过修改prototype属性可以修改原型..原创 2021-10-28 13:03:21 · 148 阅读 · 0 评论 -
ref属性
重写了vue3 ref函数 实现功能首先vue3用的es6 module语法,导出ref,和shallowRef函数function ref(value) { return createRef(value, false);}function shallowRef(value) { return createRef(value, true);}此函数可以判断传入的值是否是ref响应值function isRef(r) { return Boo...原创 2021-10-27 16:59:39 · 2426 阅读 · 0 评论 -
vue reactive基本obj类和shallowReactive类传入实现
function createReactiveObject(target, isReadonly, baseHandlers, proxyMap) { //传入isReadonly 值为true,判断传入的值是否为除Null 以外的Object对象,如果不是的话就会弹出错误, if (!isObject(target)) { { console.warn(`value cannot be made reactive: ${String(target).原创 2021-10-28 12:34:46 · 402 阅读 · 0 评论 -
SET数据结构与MAP数据结构(下)
Map数据结构作为es6新增加的数据结构,与传统的对象字面量相似,但不同的是传统对象的键只能是string字符串类型,而map数据结构的键可以是各种类型的值。与set数据结构相似map也有一系列属性和函数.size 返回map结构的成员总数.set(key,value) 设置键名以及对应的值.get(key) 获取键对应的值.delete(key) 删除某个键.clear() 清除map中的所有数据...原创 2021-10-15 12:47:11 · 73 阅读 · 0 评论 -
js对象克隆
js 对象克隆可以分为浅克隆和深克隆两种方式。基本数据类型不管是浅克隆还是深克隆都是对值本身的克隆,对克隆后值的修改不会影响到原始值。引用数据类型如果执行的是浅克隆,对克隆后值的修改会影响到原始值;如果执行的是深克隆,则克隆的对象和原始对象相互独立,不会彼此影响。首先来说浅克隆1.简单的引用复制2.ES6新发布的Object.assign() 函数来实现浅克隆js对象深克隆的有多种实现方法1.JSON序列化和反序列化当我们修改obj的键值对时不会影响result..原创 2021-10-25 12:54:08 · 1085 阅读 · 0 评论 -
js中onload与jQuery中ready事件区别
ready事件的触发表示文档结构已经加载完成,不包含图片、flash等非文字媒体内容。onload事件的触发表示页面中包含的图片、flash等所有元素都加载完成。原创 2021-10-22 13:14:35 · 582 阅读 · 0 评论 -
javascript中的Symbol类型数据
symbol类型数据作为es6新增加的特性,它的功能类似于一种唯一的标识性ID,Symbol值的唯一性,任何通过Symbol()函数创建的值都是不相同的,Symbol函数不是构造函数,不能通过new操作符构建Symbol值不能参与类型运算可以使用同一个Symbol值,通过Symbol.for来进行创建,...原创 2021-10-11 12:51:00 · 193 阅读 · 0 评论 -
vue computed方法
//类型判断函数const isFunction = (val) => typeof val === 'function';function computed(getterOrOptions, debugOptions) { let getter; let setter; if (isFunction(getterOrOptions)) { getter = getterOrOptions; //computed不能执行设置值的操作 .原创 2021-10-29 16:18:50 · 499 阅读 · 0 评论 -
SET数据结构与MAP数据结构(上)
SET和MAP数据结构属于ES6新增的特性SET本身是一个构造函数,因此可以用new运算符来实例化一个对象,SET数据结构具有四种实例方法.add()往集合里面添加数据,由于SET的成员值都是唯一的,所以我们不能重复的添加一个元素只有严格相等(===)的两个值才能不被重复添加,比如1和'1'在严格相等的情况下bool值为false,所以我们可以添加这个两个元素,但是也有特例 NaN同时我们可以运用这个特性进行数组的去重操作,从上面所写的方法我们可以很容易的就达到.原创 2021-10-13 12:58:24 · 74 阅读 · 0 评论 -
实现vue3 readonly 操作
//主入口函数const readonlyMap = new WeakMap();const objectToString = Object.prototype.toString;const readonlyGet = createGetter(true);function createGetter(isReadonly = false, shallow = false) { return function get(target, key, receiver) { .原创 2021-10-27 19:09:17 · 1325 阅读 · 0 评论 -
js实现字符串逆序输出的算法
1.借助数组的reverse() 函数2.借助字符串本身的charAt()函数原创 2021-10-19 12:56:07 · 805 阅读 · 0 评论 -
es6新特性 proxy
ES6中新增了Proxy对象,从字面上看可以理解为代理器,主要用于改变对象的默认访问行为,实际表现是在访问对象之前增加一层拦截,任何对对象的访问行为都会通过这层拦截。在拦截中,我们可以增加自定义的行为。Proxy实际是一个构造函数,接收两个参数,一个是目标对象target;另一个是配置对象handler,用来定义拦截的行为。通过Proxy构造函数可以生成实例proxy,任何对proxy实例的属性的访问都会自动转发至target对象上,我们可以针对访问的行为配置自定义的handler对象,因此外界通过原创 2021-10-30 12:48:46 · 268 阅读 · 0 评论 -
javascript运算符以及js中的数据类型(下)
重点 null与undefined区别1.null是javascript关键字,而undefined只是javascript中的一个全局变量,并不是关键字。2.使用typeof运算符检测时,undefined类型的值会返回"undefined",而Null类型的值则会返回"object"3.在通过call调用toString()函数时,undefined类型的值会返回 "[object undefined]" 而Null类型的值会返回"[object null]"。4.转换成字符串.原创 2021-10-09 13:07:16 · 99 阅读 · 0 评论 -
vue3 toRef() 函数
// 可以用来为源响应式对象上的某个 property 新创建一个 ref。然后,ref 可以被传递,它会保持对其源 property 的响应式连接。/*官方deMo const state = reactive({ foo: 1, bar: 2 }) const fooRef = toRef(state, 'foo') fooRef.value++ console.log(state.foo) // 2 state.foo++..原创 2021-11-01 19:00:52 · 840 阅读 · 0 评论 -
vue3中 h()函数
先看结果//类型判断函数const isObject = (val) => val !==null && typeof val === 'object'const isString = (val) => typeof val === 'string'const isFunction = (val) => typeof val === 'function';const isArray = Array.isArrayconst InternalObj.原创 2021-10-30 17:42:04 · 4196 阅读 · 0 评论 -
let,var,const区别
let和const属于es6引入的的块级作用域在函数作用域中用var定义的变量,无论实际上是在哪里声明的,都会被当成当前作用域顶部声明的变量。这就是我们所说的变量提升机制。const作为es6引入的新特性,作为块级标识符,只在声明的块级作用域中生效,无论在严格模式还是非严格模式const 定义的值无法被修改,而const定义的对象里面的值可以被修改,这是因为const指针指向的地址不能被改变,而const指针指向的内容可以被修改。得到的结果也正符合我们的预期...原创 2021-10-08 13:11:54 · 77 阅读 · 0 评论