
前端技术知识
文章平均质量分 60
GrowthHacker
这个作者很懒,什么都没留下…
展开
-
防抖Vs节流
防抖动(停止触发时间超过设定的等待时间,再触发,第一次需要立即触发)// 将会包装事件的 debounce 函数function debounce(fn, delay, immediate) { // 维护一个 timer let timer = null; return function() { // 通过 ‘this’ 和 ‘arguments’ 获取函数...原创 2020-02-27 15:34:35 · 208 阅读 · 0 评论 -
HTTP缓存那些事
现如今,作为一个前端工程师,无论你去哪家公司面试都会被问到 cache controll , 304等相关的面试题,今天小编就带着你一起来系统梳理下浏览器缓存里的那些事。废话不多说,先给大家上图:相信大家看到这张图,有种豁然开朗的感觉。既然我们是来梳理浏览器读取缓存的机制,首要的是,我们得先搞清楚浏览器是怎么读取缓存的:无请求读取缓存:浏览器从服务器返回的过期时间(cache-contro...原创 2019-11-19 13:14:00 · 288 阅读 · 0 评论 -
css3立方体制作
<html> <head> <meta charset="utf-8"> <title>cube3D立方体</title> <style>原创 2018-11-07 09:49:25 · 2065 阅读 · 0 评论 -
浅谈 Vue 指令
谈到 Vue 指令,我们脑海里浮现的第一个疑问便是 指令 是什么:指令是告诉计算机从事某一特殊运算的代码。如:数据传送指令、算术运算指令、位运算指令、程序流程控制指令、串操作指令、处理器控制指令。那么 Vue 指令又是什么呢?是用来干什么的?作为一名攻城狮的我们又如何去使用它?Vue 内置指令1. 内置指令的使用v-if:根据其后表达式的 bool 值进行判断是否渲染该元素v-sho...原创 2018-11-07 15:41:26 · 3167 阅读 · 1 评论 -
css 布局相关
css 实现两列布局(一列固定宽度一列自适应)左边自适应,右边定宽的几种方案html代码:<div id="wrap"> <div id="sidebar" style="height:500px;background:red;color:#fff;">固定宽度区</div> <div id="content" sty转载 2018-11-27 09:52:13 · 169 阅读 · 0 评论 -
预检请求
前端项目中通过 POST 方式访问后端的 REST 接口原创 2018-12-20 16:46:17 · 1718 阅读 · 0 评论 -
深拷贝 VS 浅拷贝 VS 对象赋值
数据类型基本数据类型:string,Number,Boolean,Null,Undefined,Symbol特点:直接存储在栈(stack)中引用数据类型:Array,Obeject特点:存储的是该对象在栈中的引用,真实数据存放在堆内存里深拷贝 && 浅拷贝深拷贝和浅拷贝只是针对于引用数据类型的,浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对...转载 2018-12-27 10:34:25 · 329 阅读 · 0 评论 -
关于移动端开发的一些处理方案
以下js是屏蔽ios原生双击时间的代码,亲测可用(function () { var agent = navigator.userAgent.toLowerCase(); var iLastTouch = null; //缓存上一次tap的时间 if (agent.indexOf('iphone') &gt;= 0 || agent.indexOf('ipad') &gt;= ...原创 2018-12-17 17:57:33 · 388 阅读 · 0 评论 -
数组去重小记
双重循环去重这种方法是常规思维下的产物,其易理解,思路顺,但是其时间复杂度高,不建议使用function unique(arr) { if(!Array.isArray(arr)) { return; } var result = [arr[0]]; for(var i = 1, l = arr.length; i < l; i += 1) { for(var j = 1...原创 2019-04-22 21:44:36 · 277 阅读 · 0 评论 -
XMLHttpRequest 简单封装
很多时候我们只需要开发一个简单地页面,不需要引入任何js库,这时接口请求用到 XMLHttpRequest 对象必不可少,那么封装一个好用的请求方法是理所应当的了。以下是我们比较习惯的请求方式,我们一起来封装一个吧!ajaxRequest({ url: '', method: 'POST', type: 'JSON' data: {}, success: function(res) {...原创 2019-05-15 10:48:21 · 2801 阅读 · 1 评论 -
JS 引擎运行机制讲解
SpiderMonkey Brendan Eich 网景主流浏览器内核js引擎IE -&gt; Edgetrident-&gt;EdgeHTMLJScript(IE3.0-IE8.0) / Chakra(IE9+之后,查克拉,微软也看火影么…)Chromewebkit-&gt;blinkV8(大名鼎鼎)FirefoxGeckoSpiderMonke...原创 2018-11-07 09:31:33 · 854 阅读 · 0 评论 -
关于移动端滑动卡顿现象的解决方案
-webkit-overflow-scrolling: touchIOS 端特属属性,手指离开屏幕会保持滚动一段距离,继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。overflow: scroll; //该属性随着手指离开立即停止-webkit-overflow-scrolling: touch;//该属性随着手指离开还会保持滚动-webkit-transform: ...原创 2018-03-12 09:49:40 · 25594 阅读 · 0 评论 -
fetch发起promise异步网络请求的个人小记
fetch发起异步网络请求//fetch请求链接立即返回一个promise对象;promise被通过,返回response对象,再通过response.json()返回的也是一个promise对象,response.json().then()<==>fetchProduct().then();//具体写法exports.fetchProduct = () => { return fet原创 2017-12-28 21:15:50 · 727 阅读 · 0 评论 -
原生js开发图片瀑布流布局的懒加载效果
该效果分一下步骤去做:1.图片简单布局,要根据浏览器的宽度和图片的宽度改变图片的列数;2.图片动态填充相应的位置,需要找出图片流里边最低图片的高度和其索引值,然后将图片流的数据填充到相应位置;3.滚轮事件获取加载数据;4.设置加载动画,并且对动画设定延时器原创 2017-08-08 15:59:57 · 1435 阅读 · 0 评论 -
json对象转换成数组的数组操作方法
思路:1.获取对象的里元素的属性名for(i in data)中的i就是键值;2.循环创建对象(对象需要循环创建);3.设定需要对象的属性值,并push到新的数组arr里边去;4.截取该数组的需要的部分并拼接到新的数组里边去打印即可。一朋友看到的面试题,算是给他讲明白了,不喜勿喷!再具体的请看注释。原创 2017-08-10 15:58:50 · 3405 阅读 · 0 评论 -
css清除浮动的八种方式你知道多少呢?
float zoom clear原创 2017-09-23 10:13:52 · 286 阅读 · 0 评论 -
Jquery中attr()和prop()之间的那点事
prop attr true false原创 2017-09-22 09:00:54 · 234 阅读 · 0 评论 -
JS无法进行数值精确计算的问题
在做js浮点型数值计算的时候,出现的了数据计算不准确的原因:原创 2017-09-04 19:46:21 · 4637 阅读 · 0 评论 -
js数值四舍五入的方法以及其中潜在bug的解决方案
1.toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。NumberObject.toFixed(num)num必需写,规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。当num超过20的时候,js会出错,这东西好像只能传一个数字进去,字符串会爆不是一个方法方法原创 2017-09-08 10:46:53 · 3531 阅读 · 0 评论 -
Jquery事件绑定函数:on和bind的区别
on() bind()原创 2017-09-21 13:11:10 · 411 阅读 · 0 评论 -
eval()和json.parse()的区别
eval json.parse原创 2017-09-21 16:48:17 · 1303 阅读 · 0 评论 -
Fetch网络请求简单封装
Fetch网络请求简单封装标签(空格分隔): fetch promise//fetch网络请求简单封装,支持超时入口class FetchUtil { //初始化工具类 init(){ this.url = ''; this.method = 'GET'; this.headers = {}; this.body原创 2017-12-27 09:42:25 · 2121 阅读 · 0 评论