12 2017 档案
摘要:let 1. let有变量提升,但是有约束 2. 会形成暂时性死区(TDZ) 3. 同一个块级作用域内不允许声明相同变量 4. 块级变量 5. let声明的全局变量不是全局对象的属性,var会 6. 从块顶部到该变量的初始化语句,这块区域叫做 TDZ(临时死区),如果你在 TDZ 内使用该变量,JS
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>深度遍历和广度遍历测试</title> <style type="text/css"> </style> </head> <body> <div class="
阅读全文
摘要://浅拷贝 function shallowCopy(src){ if(typeof src != 'object'){ return src; } var dest = Array.isArray(src) ? [] : {}; for(var p in src){ if(src.hasOwnProperty(p)){ ...
阅读全文
摘要:数组扁平化 //ES5写法 function flatten(arr){ return arr.reduce(funcion(pre,cur,index){ return pre.concat(Array.isArray(cur) ? flatten(cur) : cur); },[]); } //
阅读全文
摘要:如上图,在积分的数字元素上,使用了transform perspective,其层级就穿透了上面的遮罩层,关键代码如下: 具体解决方法: 1. 在有perspective的元素的任意父级添加overflow:hidden; 2. 在layer元素上添加transform:translateZ(500
阅读全文
摘要:pub/sub即观察者模式,有多重表现形式 1. Publisher/Subscriber2. Observer/Observable3. Listener(例如EventListener)4. EventBus5. EventEmitter EventBus这种不只是观察者模式,还包含了中介者模式
阅读全文
摘要:思路1,文字两端对齐使用text-align:justify,容器添加after伪元素,充当末行就行了。 text-align: justify可以实现文字的两端对齐布局,注意点如下: 1. 两端对齐后,若文字间距太大,可以使用letter-spacing收缩字符间距 2. text-align:j
阅读全文
摘要:FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。FC一共包含BFC、IFC、GFC 、FFC四种类型。CSS2.1规范中只有BFC、IFC。CSS3
阅读全文
摘要:/* 1.直接设置style属性 */ element.style.height = '100px'; /* 2.直接设置属性 */ element.setAttribute('height', '100px'); /* 3.使用setAttribute设置style属性 */ element.se
阅读全文
摘要:1.TTFB (Time To First Byte) 是最初的网络请求被发起到从服务器接收到第一个字节这段时间,它包含了 TCP连接时间,发送HTTP请求时间和获得响应消息第一个字节的时间。 注意:网页重定向越多,TTFB越高,所以要减少重定向 TTFB优化的方法有:1.减少DNS查询2.使用CD
阅读全文
摘要:var cur = new Date(), unitDay = 24 * 60 * 60 * 1000; //月初 var sFirstDay = cur.getFullYear() + '/' + (cur.getMonth()+1) + '/01 00:00:00'; var firstDay = new Date(sFirstDay); //月末 var lastDay = new...
阅读全文
摘要:1. async, script的加载和执行是异步的,且与后续元素的加载和渲染并行进行2. defer, script的加载是异步的,且与后续元素的加载并行进行,但是script的执行在所有元素解析完成之后,DOMContentLoaded事件之前。3. async类型的脚本自己加载,自己执行,不顾
阅读全文
摘要:if (!window.location.origin) { window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: ''); }
阅读全文
摘要:1. background之后使用 !important background:url('../images/activity_redrain/coupon12.png') no-repeat center!important; 不能再background多个属性之后使用!important,bac
阅读全文
摘要:1.千分位分割,手机号码分割 2.获取url参数 3.replace的正则形式
阅读全文
摘要:要实现如下图的列表数字布局,数字在左侧对齐,文字在右侧对齐: 有如下使用负margin的简单方法,用负margin将数字往前拉一下即可,特殊行不能对齐的可以单独微调:
阅读全文
摘要:如果已知A类对象生成概率为P(A),B类对象生成概率为P(B),C类对象···,K类对象,他们的概率总和为1,问如何在A~K中随机生成一个对象 正如下面的轮盘中奖项 所有奖项的概率和为1,转一次轮盘总会抽中其中的一个奖项,问一次轮盘转动产生的奖项是哪个 javascript实现 参考:http://
阅读全文
摘要:数组洗牌,最近直接的想法是从数组随机取出一个元素,放到另一个数组中,但是这样取出的元素会有重复,必须采取一定的方法保证: 1. 元素不能重复2. 元素被抽取的概率相等,即随机性 数组洗牌经典算法有两种: 1. Fisher-Yates Shuffle(复杂度(n^2)) 数组的删除以及新的copy数
阅读全文
摘要:css中按钮有四种状态 1. 普通状态2. hover 鼠标悬停状态3. active 点击状态4. focus 取得焦点状态 .btn:focus{outline:0;} 可以去除按钮或a标签点击后的蓝色边框 下面的例子中.btn1用focus按钮会按下,不弹起 .btn2用active按钮点击按
阅读全文
摘要:移动端的页面在控制台报出一个script error,通常的原因有一下几点: 1. 脚本引入错误 可能是脚本的地址不对,协议不对(http或https问题),本地host文件绑定的地址不对 2. 方法名采用了ES6写法 ES6方法名不用加function,在PC的chrome上不会报错,但是在手机的
阅读全文