自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 深度剖析互联网一线大厂Vue面试题
原力计划

熟练使用框架的必要性 说到使用前端框架,已经不是什么新鲜事了,目前大部分公司都会要求你熟练使用Vue或React框架,这也成了前端工程师面试的家常便饭。 所以这也是我们的必备技巧,同时也经历了一波发展变化,不得不防。那么,现在我去面试,面试官会问哪些关于Vue的问题呢?不要慌,客...

2020-05-31 13:15:28 61 0

原创 四面腾讯与华为,大厂前端面试都问些什么问题?

今年算是经历颇多的一年了,腾讯和华为都走了几趟(一共面试了四个部门),拿了两个offer。(开心.png),但还是挂了两次,有点遗憾。 面试题总结 面试完之后,赶紧总结了一波,前端这个岗位,这两家大厂的面试思路和面试问题其实都差不多: 1. JS底层: 说一说js...

2020-05-21 18:51:09 183 1

原创 2020年了,前端还有的搞么?要怎么学?
原力计划

前言 首先简单介绍下自己,目前七年前端实际项目经验,有一线大厂经验,也去过国外。算的上是前端老鸟了,这篇文章是个人的经验和心得,不吹不黑,中肯的态度来说,希望能够帮到大家。 都2020年了,我现在学前端还来的及么? 这是很多前端新人经常问我的一个问题,有学弟学妹,也有...

2020-05-18 22:32:37 7536 24

原创 Vue3.0来了,一起来看看尤大大说了啥
原力计划

说在前面 前端的技术一直更新特别快,特别是框架这块。4月21晚,Vue作者尤雨溪在B站直播分享了Vue.js 3.0 Beta最新进展。赶紧拿出小本本做笔记,一起来看看尤大大说了些什么。 Performance 当我们项目功能越来越多、模块规模一步步扩大,这个时候性能考量是非常重要...

2020-05-13 11:15:49 8232 17

原创 原生js模拟vue实现双向数据绑定

原生js模拟vue实现双向数据绑定 写在前面 vue.js是mvvm模式的框架,如图: 通过和传统mvc模式的对比,我们发现多了个ViewModel,没有控制器(controller)了。ViewModel是mvvm模式的精髓所在它连接了view(视图层)与model(数据模型),view或m...

2019-09-05 14:48:53 219 2

原创 深入了解js原型与原型链——继承

导语 说到 js原型、原型链、继承,是个令人头疼的问题,说懂吧,只懂一点,说不懂,倒是知道一点。 看到网上很多关于这几个知识点的文章,不过大都会把人讲懵,今天你刷到我,那么你就舒服了。 js 原型 话不多说,先上代码: function Person(){ } Person.proto...

2020-04-26 19:02:49 392 0

原创 js经典面试题之 Object.create(null)

说在前面 之前腾讯面试的时候,问了这个问题:对象字面量创建对象与 Object.create(null)创建对象有什么区别?一开始是有点懵的,不都是创建对象么,能有啥不同,后面我去试了一下,结果发现还蛮有意思: 不同点 var obj = {}; var obj2 = Obj...

2019-12-30 18:55:29 347 1

原创 cssTransform.js 优化版三

终极版,减少参数传递,降低耦合度 function Transform(element) { var transform = {}; var transformValue = ''; var props = ['scaleX', &...

2019-12-29 23:52:58 325 1

原创 cssTransform.js 优化版二

说在前面 上一篇文章对获取、设置transfrom相关属性做了一个简单的封装(上一篇文章 链接:cssTransform.js1.0 方案) 代码还是比较 low 的,所以优化一个版本。 HTMLElement.prototype.cssTransform = function (prop, v...

2019-12-29 23:36:38 241 1

原创 获取、设置transfrom相关属性: 封装函数 cssTransform.js 系列篇一

概述 传统的使用transfrom,直接设置值,未免太过粗暴,且代码冗长复杂,例 : var rotate = document.querySelector(".rotate"); rotate.addEventListener("touchstart",...

2019-12-20 15:52:01 78 2

原创 js闭包的实用性----应用场景

上篇文章说了闭包的形成以及原理。 这篇说一说闭包的实用性。 应用场景一:事件节流与事件防抖 这里讲一个事件防抖的例子,在监听input值发生变化的时候,定时发送请求,预防请求过多,服务器性能过载。 function antiShake(fn, wait) { let timeOut ...

2019-11-26 17:54:41 70 1

原创 深度了解js闭包形成及其原理

闭包 一说到这个问题,很多人第一印象就是函数里返回一个函数,就是闭包。闭包也是被大家广泛讨论的一个问题,但是很多人都是只知其然,不知其所以然。 那么闭包到底是什么?我们放到后面来回答。 作用域与作用域链 作用域 // 案例1 // 全局作用域 函数向上找 var name= ...

2019-11-25 17:43:32 56 1

原创 js内存管理系列篇三:垃圾回收机制

js作为一门高级程序语言,具有自动的垃圾回收机制,那我们来探究一下它的原理及机制。 引用计数垃圾收集 这是最初级的垃圾收集算法。此算法把“对象是否不再需要”简化定义为“对象有没有其他对象引用到它”。如果没有引用指向该对象(零引用),对象将被垃圾回收机制回收。 举个例子: let o = { ...

2019-11-24 12:58:13 58 1

原创 js内存管理系列篇二:内存泄漏,内存管理

内存泄漏 上篇文章讲到 js 内存泄漏存在的各种表现以及问题。现在来说说常见代码中的内存泄漏。 关于全局变量 function fn(){ demo = '我很帅'; } fn(); function fn2(){ this.demo2 = 1...

2019-11-24 12:49:20 67 0

原创 js内存管理系列篇一:内存分析

说在前面 在js里面,内存的概念大都被忽略了,大家都知道js是门高级语言,有自动的垃圾回收机制,所以很多人理所当然的觉得这个事情是不需要我们管的,那么你就大错特错了。 像C语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。相反,java,JavaScript是在...

2019-11-24 11:16:07 52 0

原创 移动端多指操作二 安卓篇 (兼容性处理)

说在前面 上篇文章说了ios上的多指操作,那为什么不放在一起,把安卓的也一起讲了,因为安卓的存在兼容问题,gesturestart,gesturechange等事件安卓上都是没有的,这些只存在于ios设备上,所以这些事件安卓设备上无效,需要自己封装。 第一步:定义一个匿名自执行函数 匿名自执行函...

2019-11-20 15:48:45 62 0

原创 移动端多指操作一 ios篇

说在前面 移动端常用的事件上篇文章说了,可是

2019-11-20 15:35:46 61 0

原创 自定义封装移动端事件库

封装移动端事件库的意义 移动端使用click事件会有延迟 有许多左滑或者右滑的操作,原生js没有 有时业务会需要长按事件,原生js没有 开始封装 思路分析 既然是库,那么可以先写一个匿名自执行函数(保护内部变量不受污染,定义和调用合为一体) 内部结构分析 (a) 是需要外部调用,所以需...

2019-11-18 14:41:05 33 0

原创 移动端常用事件

touchstart 与 click touchstart : 触摸开始事件,当手指接触屏幕上的一刹那,触发该事件。 click: PC端点击事件,在移动端也可以使用,不过会有200ms延迟,一般不建议使用。 var box = document.getElementById("to...

2019-11-18 11:30:11 54 0

原创 深入浅出js函数防抖与节流

函数防抖概念简述 **函数防抖:**当持续触发事件时,一段时间内只能触发一次。将几次操作合并为一此操作进行。比如说有一条赛车通道,赛车通过的时间为5s,5s之后到达终点,执行领奖操作。 这5s之内只允许一辆赛车在通道内,如果第一辆赛车还在通道内,此时第二辆赛车已经进来了,那么销毁第一辆赛车,从...

2019-11-17 22:31:23 171 2

原创 移动端滚动神器 better-scroll 系列篇四 原生js+BS 实现 城市列表,锚点定位

需求分析 思路分析 先做布局 通过监听右侧导航的滑动或点击,获取当前Y轴位置,赋予列表相同的位置,实现列表的滚动 列表的滚动,获取位置范围,完成右侧导航定位 一,页面布局 <!DOCTYPE html> <html lang="en"> <...

2019-11-15 15:31:57 79 0

原创 移动端滚动神器 better-scroll 系列篇三 原生js+BS上滑加载,下拉刷新

第一步 基础布局及引入JS <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="...

2019-11-13 22:56:47 66 0

原创 移动端滚动神器 better-scroll 系列篇二 原生js+BS制作幻灯片

话不多说,上代码 初始html结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name=...

2019-11-12 10:52:40 67 0

原创 移动端滚动神器 better-scroll 系列篇一 初探BS

better-scroll是什么 1.BetterScroll 是一款重点解决移动端各种滚动场景需求的开源插件,适用于滚动列表、选择器、轮播图、索引列表、开屏引导等应用场景。简而言之,移动端滚动神器。以下简称BS。 2.基于原生js开发,不依赖任何插件,所以既可以原生 JavaScript 引用,...

2019-11-12 10:37:31 76 0

原创 原生js实现上滑加载,下拉刷新

这是手机端常见的一个功能,可能很多人都是用框架或者插件实现。 这里,我试着用原生js实现。 这样能更明白原理与底层实现 首先,布局,模拟初始数据 <!DOCTYPE html> <html lang="en"> <head> <...

2019-11-06 12:13:18 361 0

原创 一文看懂响应式布局

响应式布局概念 响应式布局(Responsive design),意在实现不同屏幕分辨率的终端上浏览网页的不同展示方式。通过响应式设计能使网站在手机和平板电脑上有更好的浏览阅读体验。 响应式布局一 : Meta 标签 兼容性:IE9以及以上,其它浏览器没问题 主要通过设置以下几个值实现响应式 de...

2019-11-06 11:38:10 118 1

原创 原生js实现响应式,数据驱动

mvvm

2019-11-03 01:39:54 199 0

原创 手把手带你实现一个mini版jquery

手写一个mini版jquery 我们要实现的功能如下 1.执行结构 2.amd,cmd模块检测 3.整体架构搭建 4.全局方法添加 5.原型方法添加 首先是执行结构与amd,cmd模块检测 (function (global,factory){ if (typeof define === &#...

2019-11-02 14:44:32 113 0

原创 深度探秘web前端性能优化

性能优化总论 1.性能优化的必要性 性能优化一直是我们在讨论的一个话题,也是很重要的知识点,当项目功能越来越多,模块规模一步步扩大,就会发生一系列的性能问题,比如说vue首屏加载会变得非常慢,编译会延迟,打包也要等半天。必须明确性能优化的重要性,任何一个项目的生命历程都会走向性能优化这个阶段 ...

2019-11-02 14:20:41 132 2

原创 js经典设计模式--发布订阅模式

什么是发布-订阅模式 发布—订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。 举个例子,售楼处卖房,那么售楼处要发布房型信息,那么它是发布者,中介关注房型,所以中介是订阅者,当售楼处发布消息之后或者房型信息更新之后,中介就会收...

2019-08-18 11:13:12 63 0

原创 vue 路由懒加载 总路由配置动态引入

一般的方式 import shopRoutes from ‘./shop/index.routes.js’; import storeRoutes from ‘./store/index.routes.js’; import priceRoutes from ‘./price/index.rout...

2019-08-12 14:47:59 172 1

原创 一文看懂vue 路由拦截

为什么要设置路由拦截 1.有些页面组件页面需要登录才能操作,不然会发生不可预知的错误 2.根据用户权限配置页面,若没有这个权限,则你无法进入,进行拦截 1.路由设置:router/index.js export default new Router({ routes: [ { path: ‘/in...

2019-08-12 12:30:54 115 0

原创 vue 全局权限控制

说在前面 权限控制一直是一个很烦人的事情,无论是前端还是后台。 在平常的项目里,可能大家都是通过后台传来的字段来控制元素的display属性。 其实这么做是很不严谨的。 因为可以通过F12查看元素,也可以进行更改,这个时候如果把display改为block,就可以操作它了,那你的权限控制就白做了。...

2019-08-01 15:14:04 224 0

原创 vue api层封装 axios封装(大厂案例)

为什么要封装axios 有一定设计思想的同学,应该会有个意识,我们前端的api层与业务层应该是分离的。 否则业务层会特别混乱,我们要实现的目标是业务层只调用方法,返回接口数据。其余的都交给api层来做。那我们具体应该怎么设计呢? 设计思路 api层:联通后台接口,进行错误统一处理(根据不同的状态...

2019-08-01 00:55:01 867 0

原创 手把手教你写vue插件

组件与插件的区别 组件: 对某功能或某模块的封装(例如 我们写的弹窗,loading) 插件: 对一系列组件的封装(例如 vuex,vue-router) 关系: 插件可以封装组件,组件暴露数据给插件 插件的优点 1.开箱即用 2.功能比组件更强大,更丰富 3.一次引入,终生收益 4.打包带走,随...

2019-07-27 12:08:19 67 0

原创 vue-cli3打包优化

vue-cli3.0相对于2.0,已经给我们优化了很多了,大家可以打开项目里的node_modules,找到@vue/cli-serve, 这里也说一点,如果你想更深入的了解vue而不仅仅是停留在应用层是一定要去看这些node_modules的。看它里面是怎么配置以及怎么封装的,学习它的思想。 ...

2019-07-26 17:38:57 341 0

原创 浅析vue项目优化

vue用了半年多了,一路踩坑过来,也算是收获不少。不错呢,踩坑的文章很多,我就不写了,主要来写一写怎么去优化vue项目 注意 : 适用于vue-cli 初始化、webpack 打包的单页应用。 组件化 组件化(也叫模块化)是前端的一个新的趋势,vue的核心之一 也是组件化。 项目里公共的地方都...

2018-11-02 18:34:26 182 0

原创 jQuery时间计算(转时间戳)

前段时间总是碰到时间间隔计算的问题,于是自己在网上找了一些计算方法,试了下,很多都是有问题的。本篇博客是根据网上的方法自己探索出来的,亲测没问题。有问题直接找我,QQ:2567040816。 话不多说,直接上代码: <!DOCTYPE html> <html>...

2017-10-03 08:14:30 680 2

原创 PHP操作Mysql数据库

项目名称:php连接数据库实现表单注册 1.PHP连接数据库的三种方式 a.Mysql扩展(版本相对较老,现在一般做学习使用,其它地方不建议使用) b.Mysql I 扩展 (推荐使用) c.pbo扩展 (推荐使用,版本较新) 2.今天给大家讲的是Mysql扩展,做学习使用 3.不...

2016-12-01 20:27:34 242 0

原创 深度了解Ajax技术

1.什么是Ajax? Ajax技术是使浏览器可以为用户提供更为自然的浏览体验 2.Ajax核心 Ajax的核心是JavaScript对象XmlHttpRequest。 该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpReques...

2016-10-19 20:14:41 266 1

提示
确定要删除当前文章?
取消 删除