Song

生活的压力不是换个地方就能逃避的了的

bind/call/apply

call() 方法调用一个函数, 其具有一个指定的this值和分别地提供的参数(参数的列表)。 apply() 方法调用一个具有给定this值的函数,以及作为一个数组(或类似数组对象)提供的参数。 bind() 方法创建一个新的函数,在调用时设置this关键字为提供的值。并在调用新函数时, 将给定参数列表作为原函数的参数序列的前若干项。 bind() 函数会创建一个新绑定函数(bound f...

npm 发布 module

注册npm账号 本地新建目录,npm init 初始化项目 添加模块代码 以管理员权限开启命令行 登录npm 执行 npm login 命令 发布module cd到上级目录,执行 npm publish moduleName 命令,moduleName为模块名称 更新版本 执行 npm version edition,更新package.json中的版本号,其中 edition 为版本号 ...

HTTP HEAD

Request Header Accept 浏览器端接受的格式 Accept-Encoding 浏览器端接受的编码方式 Accept-Language 浏览器端接受的语言,用于服务端判断多语言 Cache-Control 控制缓存时效性 Connection 连接方式,如果是keep-alive,且服务端支持,则会复用连接 Host HTTP访问使用的域名 If-M...

闭包、立即执行函数

闭包的作用 实现共有变量(函数累加器) 可以做缓存(存储结构) 实现封装,属性私有化 模块化开发,防止污染全局变量 立即执行函数 针对初始化功能的函数,执行后即销毁 函数声明不能立即执行,函数表达式可以立即执行 (function(){}()) (function(){})() 一个典型的例子 function test() { var arr = []; for(var i=0...

移动端字号rem应用

在移动端不同dpr下,根据屏幕封边率自动调整字体大小可采用rem单位,rem是以页面根元素fontsize为基准。 通常移动端设计以750px宽度为基准,为了使设计尺寸和实际开发时尺寸相等,可以将页面根元素fontsize设置为0.5px; fontsize = document.documentElement.clientWidth/750; 以物理像素750px的iPhone6为例,其逻...

函数执行预编译过程

函数执行预编译过程: 1. 创建AO(activation object 活动对象/执行上下文); {} 2. 找形参和变量声明,将变量和形参名作为AO属性名,值为undefined; { a: undefined, b: undefined, fun: undef...

使用gulp-rev-append过程中遇到的问题

对于采用scss等预处理语言开发的项目来说,如在页面引用css文件,因为css文件在开发时是不存在,所以无法用gulp-rev-append对引用的css文件添加hash格式的版本号,gulp-rev-append添加文件版本号的原理是通过读取文件内容生成相应的md5值,这样在文件内容有变化时就会生成新的md5值,而未修改的文件其生成的md5值不变,从而实现自动给文件添加版本号。 解决方法是...

gulp-uglify压缩混淆遇到的问题

在使用gulp-uglify进行js代码的压缩时有时会遇到报错导致压缩程序运行失败的问题,我在项目中遇到的报错原因主要有两个:1. js语法错误,导致在运行压缩时报错;2. 由于使用ES6语法而未做ES5转换,导致压缩报错。 对于无法理解的报错,可以使用gulp-util工具打印报错信息 var gutil = require('gulp-util'); gulp.src().pipe...

display与transition冲突的处理方法

在使用display:block 与transition实现动画显示与隐藏时,如果dispaly:block与transition同时执行,会导致transition过渡动画无法执行,解决方法是在display:block后延迟执行transition动画,一般20ms即可。

实现一个vue-toast组件

通过Vue.extend实现一个toast组件 首先定义一个普通的vue组件 toast.vue <template> <div class="bg" v-if="show"> <div class="wrap" :class="fadeIn?'fade-in':'fade-out'"></div> </div> ...