1、类与实例
1 | /** |
故事我有,我不喝酒。
1 | /** |
1 | element.onclick = function(){} |
1 | element.addEventListener('click', function(){}, false) |
1 | element.addEventListener('keyup', function(){}, false) |
高倍屏中小于 1px 的边框/直线,例如,某手机为三倍屏,CSS 中写 1px,对应设备像素为 3px。而我们希望实现的效果为 CSS 中的 2/3px,即设备像素 2px。
而通常浏览器会采取「四舍五入」或「下取整」等方式进行解析,因此,无法直接在 CSS 中使用小数作为属性值。
可以使用伪元素 + transform 解决这一问题。
Angular2 中父子组件之间通讯分别通过 @Input 和 @Output 实现。假设父子组件结构如下:
1 | <parent> |
@Input
装饰器接收父组件传入的变量。Grid Layout,即网格布局是 CSS3 新属性,可以轻松实现二维布局。随着近一年各大浏览器对该属性的支持,Grid 布局的呼声也越来越高。
最开始了解到 Grid 我是无感的,我无脑地把二维网格联想为 excel 表格,一个 excel 能玩儿出多大的花样?
直到有一天看到这个:
获取 url 参数最便捷的方法当然是用正则表达式,废话不多说,直接上码:
1 | function getUrlParam(par){ |
预计2个月完事儿的项目做了半年,终于,要烂尾了,哦不,是收尾。
有一整月的时间都在做性能优化。网页里有大量的图片和视频,每次视频缓冲出现 loading 图标的时候,我都要跟着爆炸了,因为产品总会说“这种体验是上不了线的”。
前前后后尝试了很多种加载图片和视频的策略,无非就是哪些做预加载,把资源放在哪里的问题。
把一个视频网站做烂真的是轻而易举。
浅复制,只是拷贝了基本类型的数据,而引用类型数据,复制后也是会发生引用,我们把这种拷贝叫做“浅拷贝(浅复制)”。
深复制和浅复制最根本的区别在于是否是真正获取了一个对象的复制实体,而不是引用。
记得去年毕业面试的时候,有个面试官问我怎么优化网页性能,我提到了图片懒加载可以提升用户体验。后来人家问我怎么实现的,我懵逼脸,然后就没有然后了。
学前端过程中遇到很多技术点都没有深入研究,只是大概知道有那么个名词。最近做项目又想起这个问题,趁机做个总结吧。
懒加载的实现原理还是很简单的嘛。
图片资源在网站当中的占比是很高的,对于一个以设计驱动型的公司来讲,图片大小可能超过所有请求资源的50%,大大影响了网站的性能。
图片懒加载的意义就在于此,当图片进入视窗时再进行加载,从一定程度上减轻初始请求压力,加快页面呈现速度,提高用户体验。