随笔分类 -  JS/ES6

摘要:如何渲染几万条数据并不卡住界面? 如何在不卡住页面的情况下渲染数据,也就是说不能一次性将几万条 都渲染出来,而应该一次渲染部分 DOM,那么就可以通过 requestAnimationFrame 来 每 16 ms 刷新一次。 <!DOCTYPE html> <html lang="en"> <he 阅读全文
posted @ 2019-12-11 09:27 edgar-li 阅读(961) 评论(0) 推荐(1)
摘要:基于ES6语法手写promise A+ 规范,源码实现 class Promise { constructor(excutorCallBack) { this.status = 'pending'; this.value = undefined; this.fulfilledAry = []; th 阅读全文
posted @ 2019-12-05 17:42 edgar-li 阅读(869) 评论(3) 推荐(0)
摘要:当我们执行 JS 代码的时候其实就是往执行栈中放入函数,那么遇到异步代码的时候该怎么办?其实当遇到异步的代码时,会被挂起并在需要执行的时候加入到 Task(有多种 Task) 队列中。一旦执行栈为空,Event Loop 就会从 Task 队列中拿出需要执行的代码并放入执行栈中执行,所以本质上来说 阅读全文
posted @ 2019-12-05 16:33 edgar-li 阅读(2288) 评论(0) 推荐(0)
摘要:本地存储:把一些信息存储到客户端本地(主要目的有很多,其中有一个就是实现多页面之间的信息共享) 1. 离线缓存(xxx.manifest) H5处理离线缓存还是存在一些硬伤的,所以真实项目中一般还是传统的NATIVE APP来完成这件事情 2. localStorage / sessionStora 阅读全文
posted @ 2019-12-04 10:26 edgar-li 阅读(2231) 评论(0) 推荐(0)
摘要:首先我们先看看同步与异步的定义,及浏览器的执行机制,方便我们更好地理解同步异步编程。 浏览器是多线程的,JS是单线程的(浏览器只分配一个线程来执行JS) 进程大线程小:一个进程中包含多个线程,例如在浏览器中打开一个HTML页面就占用了一个进程,加载页面的时候,浏览器分配一个线程去计算DOM树,分配其 阅读全文
posted @ 2019-12-03 18:23 edgar-li 阅读(10796) 评论(0) 推荐(0)
摘要:在学习ssh时,一定有不少人对公钥和私钥产生过不解。在搜索公钥跟私钥的理解时,发现了这篇有趣的图解小文章,与大家共享。 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 2. 鲍勃把公钥送给他的朋友们 帕蒂、道格、苏珊 每人一把。 3. 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达 阅读全文
posted @ 2019-11-07 10:50 edgar-li 阅读(1084) 评论(0) 推荐(1)
摘要:async:可选。表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或 等待加载其他脚本。只对外部脚本文件有效。 defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有 效。IE7 及更早版本对嵌入脚本也支持这个属性。 延迟脚本defer HTML 4 阅读全文
posted @ 2019-11-06 15:27 edgar-li 阅读(882) 评论(0) 推荐(1)
摘要:封装一个保留千分位的函数,并且保留两位小数(输入:123456,输出:123,456.00) 封装一个保留千分位的函数,不保留小数位(输入:123456,输出:123,456) 阅读全文
posted @ 2019-10-31 15:49 edgar-li 阅读(866) 评论(0) 推荐(0)
摘要:js中clientWidth, scrollWidth, innerWidth, outerWidth,offsetWidth的属性汇总,测试浏览器:ie7~ie11、chrome 和 firefox等。 一、测试1:无滚动条时,dom对象的offsetWidth、clientWidth和scrol 阅读全文
posted @ 2019-10-29 14:52 edgar-li 阅读(1239) 评论(0) 推荐(0)
摘要:sort方法接收一个函数作为参数,这里嵌套一层函数用来接收对象属性名,其他部分代码与正常使用sort方法相同. 如何根据参数不同,来确定是升序排列,还是降序排序呢? 转载:https://www.cnblogs.com/yuwenjing0727/p/6856991.html 阅读全文
posted @ 2019-10-11 17:05 edgar-li 阅读(4140) 评论(0) 推荐(0)
摘要:JS中数据类型转换汇总 JS中的数据类型分为 【基本数据类型】 数字 number 字符串 string 布尔 boolean 空 null 未定义 undefined 【引用数据类型】 对象 object 普通对象 数组对象 (Array) 正则对象 (RegExp) 日期对象 (Date) 数学 阅读全文
posted @ 2019-09-30 11:31 edgar-li 阅读(2351) 评论(0) 推荐(0)
摘要:JS盒子模型属性 在JS中通过相关的属性可以获取(设置)元素的样式信息,这些属性就是盒子模型属性(基本上都是有关于样式的) |属性|值| |: |: | |client |top/left/width/height| |offset |top/left/width/height/parent| |s 阅读全文
posted @ 2019-09-20 17:06 edgar-li 阅读(703) 评论(0) 推荐(0)
摘要:一、使用 slice() 截取 1,函数说明 slice() 方法可通过指定的开始和结束位置,提取字符串的某个部分,并以新的字符串返回被提取的部分。语法如下: stringObject.slice(start, end) stringObject.slice(start, end) 参数说明: st 阅读全文
posted @ 2019-08-20 14:49 edgar-li 阅读(45254) 评论(0) 推荐(1)
摘要:1.实现浅拷贝 2. 实现深拷贝 阅读全文
posted @ 2019-08-02 14:16 edgar-li 阅读(2641) 评论(0) 推荐(0)
摘要:首先我们来看一下实例化一个对象做了浏览器做了什么事情 new的四步操作: 1. 创建一个空对象 2. 设置空对象的__proto__属性继承构造函数的prototype属性,也就是继承构造函数的原型对象上的公有属性和方法 3. 调用构造函数,将构造函数中的this替换为空对象的this,继承构造函数 阅读全文
posted @ 2019-08-02 14:10 edgar-li 阅读(1085) 评论(0) 推荐(0)
摘要:偶然在网上浏览页面时发现了这个小特效,感觉很不错,就找到了源码分享给大家,代码放在博客园设置中,JS代码页面尾部HTML中,加上script 阅读全文
posted @ 2019-08-01 18:21 edgar-li 阅读(1178) 评论(10) 推荐(1)
摘要:1.将json对象转化为json字符串,再判断该字符串是否为"{}"var data = {};var b = (JSON.stringify(data) == "{}");alert(b);//true2.for in 循环判断var obj = {};var b = function() {fo 阅读全文
posted @ 2019-08-01 15:12 edgar-li 阅读(658) 评论(0) 推荐(0)
摘要:break 输出: 012 break: 直接跳出 当前 的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。它只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出。 continue 输出: 0124 continue: 终止当前的一次 阅读全文
posted @ 2019-07-23 14:43 edgar-li 阅读(817) 评论(0) 推荐(0)
摘要:阿里的一道经典的考察原型、函数声明提前、运算符优先级等知识点的题目,分享给童鞋们,可以先不看答案,题尾附答案及解析。 function Foo() { getName = function () { console.log(1); }; return this; } Foo.getName = fu 阅读全文
posted @ 2019-07-18 15:32 edgar-li 阅读(563) 评论(0) 推荐(0)
摘要:一、简单的去重方法,利用数组indexOf方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ let ary = [1, 2, 3, 2, 2, 3, 4, 3, 4, 5]; // 数组去重 阅读全文
posted @ 2019-06-12 11:54 edgar-li 阅读(3541) 评论(0) 推荐(1)