莱恩-哈特
码龄8年
求更新 关注
提问 私信
  • 博客:84,616
    84,616
    总访问量
  • 92
    原创
  • 13
    粉丝
  • 4
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
加入CSDN时间: 2017-04-21

个人简介:Pointfree 倡导者

博客简介:

wangongda的博客

博客描述:
我的生涯
查看详细资料
个人成就
  • 获得40次点赞
  • 内容获得12次评论
  • 获得36次收藏
  • 博客总排名2,384,765名
创作历程
  • 1篇
    2021年
  • 4篇
    2020年
  • 13篇
    2019年
  • 19篇
    2018年
  • 55篇
    2017年
成就勋章
TA的专栏
  • 设计模式
    3篇
  • 生活小叙
  • 前端技术
    89篇
  • 其他技术
    3篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 1

TA参与的活动 0

兴趣领域 设置
  • 前端
    javascriptcssvue.jsreact.jses6webpack前端框架
  • 后端
    node.js
  • 移动开发
    flutter
  • 网络与通信
    https
  • 微软技术
    typescript
  • 学习和成长
    面试
创作活动更多

新星杯·14天创作挑战营·第13期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛!注: 1、参赛者可以进入活动群进行交流、互相鼓励与支持(开卷),虚竹哥会分享创作心得和涨粉心得,答疑及活动群请见:https://bbs.csdn.net/topics/619781944 【进活动群,得奖概率会更大,因为有辅导】 2、文章质量分查询:https://www.csdn.net/qc

90人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

移动端适配之vw+rem

前置概念:rem: 相对于根元素(html)的字体大小的单位, 例如html font-size: 14px 则 1rem = 14px。vw: 当前视窗(指浏览器的可视区域)的宽度为100vw, 1vw指当前视窗宽度的百分之一。物理像素: 一个物理像素是显示器(手机屏幕)上最小的物理显示单元。设备独立像素: 设备独立像素(也叫密度无关像素),可以认为是计算机坐标系统中得一个点,这个点代表一个可以由程序使用的虚拟像素 (前端中可理解为 => css像素)。设备像素比(dpr): 设备像..
原创
博文更新于 2021.12.25 ·
878 阅读 ·
1 点赞 ·
10 评论 ·
0 收藏

函数记忆.

函数记忆是一种编程技巧,通过牺牲算法的空间复杂度以换取更优的时间复杂度定义: 若传递的参数一致,则通过缓存读取存取计算结果的一种编程技巧实现: 借助map对象、JSON.stringify()、闭包包装传递的函数,使其具有函数记忆的特性const memorize = (cb) => { const cache = new Map(); const search = (...
原创
博文更新于 2021.12.25 ·
789 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

显性的调用构造函数(感觉没太大用处)

 利用构造函数原型对象下的constructor指向构造函数自身;<script type="text/javascript">function Gz(){alert('success')}Gz.prototype.constructor();//success</script>     ...
原创
博文更新于 2018.10.12 ·
554 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用原生js实现无缝轮播

首先 原生js实现起来 如果需要动画效果 就有些麻烦了 所以这里引入了自己封装的一个简易运动框架 这个运动框架网上很常见 大家可以自己找找 试着写写;这里提供js代码 以供参考:/sport.js">window.onload=function(){var tp=document.getElementById("tp");var lis=document.getElemen
原创
博文更新于 2018.07.05 ·
358 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

两个小效果(美女系列..)1.纯css和css3实现;2.jquery实现.

恩 录出来有些卡...下面跟上代码: *{margin:0;padding:0} body{background: #272727;} #box #uu li a img{width:200px;height:200px;float: left;box-shadow: 2px 2px 5px;} #box #uu li{list-st
原创
博文更新于 2018.07.05 ·
711 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

用面向对象写程序之“完美”拖拽

面向对象写“完美”拖拽* {margin: 0;padding: 0}#box {width: 200px;height: 200px;background: red;position: absolute;}#shadowBox {width: 200px;height: 200px;border: 1px black dashe
原创
博文更新于 2018.07.05 ·
403 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

前端中的设计模式——单例模式

什么是单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点.为什么需要单例模式:为了将“描述同一件事务的属性或者特征归纳汇总在一起”,同时避免全局变量污染.模块化开发之间数据的共享.(状态管理)单例模式的优点:对于频繁使用的对象,可以省略创建对象所花费的时间.由于 new 操作的次数减少,对系统内存的使用频率也会降低.全局唯一性,可以保证全局数据和功能的...
原创
博文更新于 2020.12.11 ·
1705 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

前端中的设计模式——发布订阅模式

在前端中观察者通常抽象为事件更具实用性,但这种模式会有一个问题.假设想在登陆成功后通知组件A、B、C更新view(A、B、C未登录时view处于缺省状态).用观察者模式的话const ob = new Observable()// A、B、C进行一波订阅ob.add('update1', () => { console.log('login successful!')...
原创
博文更新于 2020.12.11 ·
1825 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

前端中的设计模式——观察者模式

在实现js中的观察者模式前,先了解两个js中的概念1. hidden class解释: 由于 JavaScript 是一种动态编程语言,属性可进行动态的添加和删除,这意味着一个对象的属性是可变的,大多数的 JavaScript 引擎(V8)为了跟踪对象和变量的类型引入了隐藏类的概念。在运行时 V8 会创建隐藏类,这些类附加到每个对象上,以跟踪其形状/布局。这样可以优化属性访问时间。2. ...
原创
博文更新于 2020.12.11 ·
931 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

liunx端常用命令

应用安装centos// 安装yum install xxx // 更新yum-update ubuntu// 安装apt install xxx / apt-get install xxx // 更新apt update / apt-get update liunx文件基础操作// 清屏clear// 查看文件ls// 查看所有文...
原创
博文更新于 2020.03.06 ·
478 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

防抖与节流

防抖和节流在很多场景下都可以有效的提升程序的性能和减轻服务器的压力.估计大多数人都使用过这两个工具函数(例如在lodash中以函数或装饰器的模式to use)那么如何实现自己的防抖和节流函数呢?定义防抖: 在n秒后不被重复触发才会执行节流: 在规定的n秒内有且只执行一次实现(具体思路的在注释中体现,因为并不复杂)防抖/** * 函数防抖 * @p...
原创
博文更新于 2020.01.20 ·
227 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

实现类似redux的状态管理库

文章目录基本实现处理多个reducerreducer和state的模块化中间件的开发 =>日志系统多日志支持中间件模块化封装新的createStore优化实现支持替换Reducer基本实现实现梳理:createStore: 创建一个store来存储监听statereducer: 规定一个处理state的映射方案(纯函数),修改statecreateStore具备的功能s...
原创
博文更新于 2019.12.14 ·
473 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

对象监听器

如何实现一个对象监听器知识点拆解:Event: Event对象dispatchEvent: dispatchEvent方法Proxy对象: 本文会对此对象做一定程度上的讲解Proxy对象:语法:new Proxy(target, handle);参数:target: 需要被代理的对象handle: 一个对象,其属性是当执行一个操作时定义代理的行为的函数.本次涉及g...
原创
博文更新于 2019.09.23 ·
641 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深、浅拷贝系列

数组的浅拷贝arr.slice()arr.concat()JSON.stringify(arr)简单的深拷贝const cloneDeep = obj => JSON.parse( JSON.stringify(obj) )// 缺点: 无法拷贝函数function cloneDeep (obj) { if (obj === null || typeof obj...
原创
博文更新于 2019.06.13 ·
292 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

学习消除循环引用

创建循环引用对象// 创建一个循环引用的对象let a = {};let b = {};a.b = b;b.a = a;打印上述对象a或b,会得到一个无限嵌套互相引用的对象结束(解除)多余的引用嵌套(具体思路请看超详细注释) /** * 解除循环引用 * @param object 循环引用对象 * @param replacer...
原创
博文更新于 2019.06.13 ·
683 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

让ng-model支持angular内置的filter date功能

背景:angular filter 常见于和ng-bind、差值表达式、ng-repeat 配合转换后端 unix 时间戳. 但 filter 不支持和 ng-model 一起使用.解决思路:通过angular directive 结合 $filter服务封装一个支持转换 ng-model中 时间戳为指定格式的指令.代码如下:app.directive('dateFormat',...
原创
博文更新于 2019.04.12 ·
1046 阅读 ·
1 点赞 ·
2 评论 ·
1 收藏

移动端软键盘问题兼容(安卓、IOS)

解决软键盘顶起fixed元素 (IOS下fixed元素会变成absolute)// angular.js中 通过封装指令解决 主要思路是通过scrollHeight的前后差值 判断是否弹出软键盘 然后显示或隐藏被顶起的元素即可// 指令配置如下:{ restrict: 'A', link: function (scope, element) { ...
原创
博文更新于 2019.04.12 ·
743 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

异步函数的串行与并行

通过返回一个对象的形式,实现对异步函数进行串行、并行、全执行完毕的操作实现如下:const queue = () => { const list = []; // 队列 let index = 0; // 索引 let task = 0; let cache; // next 方法控制索引 const next = () =>...
原创
博文更新于 2019.03.28 ·
323 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用some和every来美化你的判断

今天关于some和every又引发了我新的思考,还记得前面的判断优化吗?多或判断const a = '23333';if (a === '23333' || a === '33333' || a === '43333' || a === '53333') { console.log(1);}之前说过关于这样的判断,可以通过includes来简化,如下:const a...
原创
博文更新于 2019.03.14 ·
234 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

map函数实现

写成这样主要为了减少多余的中间变量,尽可能遵循函数式编程的思想.(好吧,我承认可能看起来有些奇怪…)Array.prototype._map = function (fn, arg, result = []) { for(let i = 0; i < this.length; i++) { result.push(fn.apply(arg, [this[i], i...
原创
博文更新于 2019.03.14 ·
805 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多