David Zhang

Results 8 issues of David Zhang

目前的转化流程图: ![流程图](https://user-gold-cdn.xitu.io/2019/2/12/168e107f524b1b76?w=441&h=163&f=png&s=7848) # 一、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,有需要的可以看一下。 目录 ![](https://user-gold-cdn.xitu.io/2018/11/24/16745d08812adae7?w=1121&h=319&f=png&s=53826) 工欲善其事,必先利其器。在判断元素是否进入可视区域以及实现简单的原生懒加载前,我们先简单回顾下以下几个关键的概念。 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' }, {...