David Zhang
David Zhang
目前的转化流程图:  # 一、url 转 base64 url to base64的方法封装 ```JS // 利用canvas.toDataURL的API转化成base64 urlToBase64(url) { return new Promise ((resolve,reject) => { let image = new Image(); image.onload = function() { let...
面试题整理
常见面试题: 守候:https://juejin.im/post/5ab4ab126fb9a028d4448365 前端妹子: https://juejin.im/post/5af99678f265da0b8e7f881e 掘金春招技术征文:https://juejin.im/post/5ab8bc35f265da23793c27e0
## 2018 三 - [x] 编写可维护的JavaScript 2018.3.6 -- 2018.3.26 - [x] JavaScript API文档 2018.3.27 四 - [x] 常用数组对象的处理 2018.4.27 - [x] JavaScript 代码库的封装 2018.4.27 - [x] JavaScript 代码库的包装 2018.4.27 -...
个性签名: 生如夏花,逝如冬雪;人生如此,何悔何怨。 > 前言: 经常需要计算元素的大小或者所在页面的位置,offsetWidth,clientWidth,scrollWidth,scrollTop这几个关键字出现的频率更是家常便饭,每次碰到都需要事先实验一番。为了下次开发提高效率。在这里一次性做个总结,**以用来判断元素是否在可视区域以及用原生js简单实现懒加载**。文末有个简单的懒加载实现的demo,有需要的可以看一下。 目录  工欲善其事,必先利其器。在判断元素是否进入可视区域以及实现简单的原生懒加载前,我们先简单回顾下以下几个关键的概念。 ps: 如果你对这些概念已经比较熟悉了,可以直接跳到第五点查看关键代码示例。 # 1. 偏移量 偏移量(offset dimension),元素的可见大小由其高度、宽度决定,包括所有内边距、滚动条和边框大小(**注意,不包括外边距**)。通过下列4个属性可以取得元素的偏移量。 | 偏移量 | 概念| 公式| | ------- | ---------------- | ---------------- | | offsetHeight |...
前言: 数组对象去重与数组去重的不同点在于,数组对象需要指定一个属性(key值)再进行去重。 # 1.数组对象的自定义去重 条件为单个数组对象,**遇到重复的id,可自定义覆盖原先的数组对象**(比如下面代码案例模拟中的指定pic覆盖),遇到不重复的,添加入数组。输出格式如下: 案例模拟 ```JS const list = [{ id: 1, pic: 'a', adress: 'a1' }, { id: 2, pic: 'b', adress: 'b1' }, { id: 3, pic:...
# 1.获得数组对象中子孙的值 ```JS const arr = [{ id: 1, sub: [{ id: 2, sub: [{ id: 3, sub: null }] }] }, { id: 4, sub: null }] /* *...
# 1. 参数赋值 ```JS let obj1 = { cat_id: NaN, name: null } let obj2 = { cat_id: 1, name: 'John', hobby: 'playfootball' } // 封装一个函数,传递obj1与obj2参数, return以下数据 /* * 思路:...
# Welcome to Array Object ## 1.全部遍历完数组对象后 ,再进行判断执行相应操作 案例模拟 ```js let list = [{ id: 1, pic: 'a', adress: 'a1' }, { id: 2, pic: 'b', adress: 'b1' }, {...