- 博客(23)
- 收藏
- 关注
原创 localStorage 跨域存储
通过postMessage来实现跨源通信;可以实现一个公共的iframe部署在某个域名中,作为共享域;将需要实现localStorage跨域通信的页面嵌入这个iframe;接入对应的SDK操作共享域,从而实现localStorage的跨域存储。
2022-04-12 15:35:55
3177
原创 JavaScript二叉树(先序、中序、后序遍历)
先序遍历的顺序:NLR(根节点->左结点->右结点)中序遍历的顺序:LNR(左节点->根结点->右结点)后序遍历的顺序:LRN(左结点->右结点->根节点)
2022-04-01 17:14:52
1813
原创 JavaScript二分法查找
1.确定查找范围front=0,end=N-1,计算中项mid=(front+end)/2。2.若a[mid]=x或front>=end,则结束查找;否则,向下继续。3.若a[mid]<x,说明待查找的元素值只可能在比中项元素大的范围内,则把mid+1的值赋给front,并重新计算mid,转去执行步骤2;若a[mid]>x,说明待查找的元素值只可能在比中项元素小的范围内,则把mid-1的值赋给end,并重新计算mid,转去执行步骤2。
2022-04-01 14:51:10
875
原创 JavaScript观察者模式
核心步骤被观察者构造函数声明三个属性分别为"name"用于保存被观察者姓名、"state"用于保存被观察者状态、"observers"用于保存观察者们。被观察者创建"setObserver"函数,该函数通过数组的push函数将观察者参数传入"observers"数组中。被观察者创建"setState"函数,该函数首先通过参数修改被观察者的"state"属性,然后通过遍历"observers"数组分别调用各个观察者的"update"函数并且将该被观察者作为参数传入。...
2022-03-31 11:03:23
118
原创 JavaScript订阅模式
核心步骤:构造函数中创建”events“对象变量用于存放所有的事件。添加”on“函数,用于订阅事件。当总事件中不存在此事件时创建新的事件数组,当存在时将”fn“函数添加在该事件对应数组中。添加”emit“函数,用于发布事件,遍历该事件下的函数数组并全部执行。
2022-03-31 10:58:50
228
原创 JavaScript深拷贝
核心步骤:首先判断对象参数是否为“null”,是则返回“null”。判断对象参数数据类型是否为“object”,不是则返回该参数。获取到对象参数的构造函数名,判断是否为函数、正则、日期、ES6新对象其中之一,如果是则直接返回通过该参数对象对应的构造函数生成的新实例对象。当以上条件判断之后函数依然没有结束时继续进行以下操作。在Map对象中获取当前参数对象,如果能获取到,则说明这里为循环引用并返回Map对象中该参数对象的值。如果在Map对象中没有获取到对应的值,则保存该参数对象到Map中,作为标记.
2022-03-31 10:52:52
448
原创 JavaScript浅拷贝
核心步骤:如果对象参数的数据类型不为"object"或为"null",则直接返回该参数。如果是"object",就获取该参数的构造函数名,通过正则表达式判断该对象是否为函数、正则、日期、ES6新对象等,如果返回true,则直接返回该参数。当以上条件判断之后函数依然没有结束时,此时通过数组的原型方法判断该参数为普通对象或数组并创建相应数据类型的新变量。进入遍历体,将对象参数的每一项赋值给新变量。最终返回该新变量。
2022-03-31 10:51:08
214
原创 JavaScript判断斐波那契数组
斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
2022-03-30 10:29:31
1357
原创 postcss-px-to-viewport,将px单位自动转换成viewport单位
postcss-px-to-viewport将px转换成视口单位vw/vh
2022-03-24 18:44:46
583
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人