自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

赵泽清的博客

一个追逐阳光的程序猿~

原创 文件上传之验证后缀与内容是否一致

在上传前验证,开发者们往往喜欢通过后缀或者File.type()去判断一个文件类型来决定是否符合上传要求。但这显然是不可靠的,当被别有用心的人利用后,就可能在服务器被执行。今天就来解决如何在前端验证文件内容跟后缀是否一致。 1. Magic number 既然要解析文件内容那这个 Magic N...

2020-01-04 17:31:10

阅读数 16

评论数 0

原创 AST--使用编译的方式修改代码

AST–使用编译的方式修改代码 最近有一个面板搭建的需求,环境为react,而现有面板组件为vue。 就有了现在这个转换需求~ AST(抽象语法树):顾名思义,它把代码拆解成了树的形式。 接下来我会以代码增删改查的形式带大家初步了解"代码编辑"! 查:先看再用!(为什么加...

2019-12-13 20:37:07

阅读数 94

评论数 0

原创 使用Proxy实现双向绑定

前言 技术从来不会受限于语言,受限你的,永远只是思想。(博主发现了一个有意思的机器学习库,TensorFlow的js版本,有兴趣的同学可以看一下https://www.tensorflow.org/api_docs) => 这里以Proxy为例来进行编码,当然,我们需要事先了解一下Pro...

2019-08-12 14:30:45

阅读数 33

评论数 0

原创 滚动加载--优化滚动性能

亲爱的儿子,我还没有追到你娘,提前祝你新年快乐!爸爸明年会努力的~ 背景 最近有用阿里云 sdk 中的日志服务,在它的 api 里发现它并不支持分页查询,倒是有个 offset 指定日志起点,所以需要配合鼠标滚动做一个懒加载。 思路 最容易想到的就是做一个底部检测,当用户滚动到底部时...

2019-01-22 19:35:56

阅读数 349

评论数 0

原创 解决 removeEventListener 无法清除监听

1. 原因 许多入前端不久的人都会遇到 removeEventListener 无法清除监听的情况,这是由于 要移除事件句柄,addEventListener() 的执行函数必须使用外部函数,如上实例所示 (myFunction)。 匿名函数,类似 “document.removeEventLi...

2019-01-12 22:52:34

阅读数 6084

评论数 0

原创 canvas 基础以及2048游戏实践

canvas(画布):顾名思义用来画画的容器 1. 点 context.moveTo(x,y)。这句代码的意思是 移动画笔至(x,y)这个点(单位是px)。这里是以 canvas 画布的左上角为笛卡尔坐标系的原点,且y轴的正方向向下,x轴的正方向向右。 2. 线 起点:contex...

2018-11-20 23:37:31

阅读数 166

评论数 0

原创 node fs系统

node fs系统 引入fs模块 const fs = require("fs") 1. fs.access 检测 path 指定的文件或目录的用户权限 //- path //- mode 默认fs.constants.F_OK /...

2018-11-17 18:52:41

阅读数 347

评论数 0

原创 使用transform-origin 实现loading效果

使用transform-origin 实现loading效果 没啥意思 突然想到的~ <!DOCTYPE html> <html lang="en"> &...

2018-10-16 18:57:11

阅读数 91

评论数 0

原创 ES6

ES6 ES6 一、 变量赋值与解构 二、- 字符串拓展 三、- 正则拓展 四、- 数值的拓展 五、- 函数的扩展 五、- 数组的扩展 六、- 对象的扩展 七、- Symbol类型:表示独一无二的值 八、 Set 和 Map 数据结构 九、 Proxy 十、...

2018-09-04 17:03:39

阅读数 1563

评论数 0

原创 HTML5用scrollIntoView()方法来规范滚动页面

HTML5用scrollIntoView()方法来规范滚动页面 <!DOCTYPE html> <html lang="en"> <head&...

2018-08-06 20:06:38

阅读数 1490

评论数 0

原创 Redux实践——减少样板代码

Redux实践——减少样板代码 在编写Redux代码时,可能最令人感到厌烦的是必须写一大堆样板代码。在编写同步action时还能忍受,但在编写异步action时,大量的样板代码不仅使代码量陡增,而且难以维护。接下来我们就来探究如何使用高阶函数(High-order Function)和中间件(m...

2018-07-09 14:52:25

阅读数 541

评论数 0

原创 Webpack配置由简至全(二)

4 . 为了开发-开发工具 官网https://webpack.js.org有介绍三种开发工具 webpack’s Watch Mode webpack-dev-server webpack-dev-middleware 这里选用一个较为常用的—webpack-dev-server 首先...

2018-06-20 11:09:21

阅读数 170

评论数 0

原创 Webpack配置由简至全(一)

Webpack4配置由简至全(一) 标签(空格分隔): webpack4 react 一、基本安装 第一步 $ mkdir project-name && cd project-name $ npm init -y //-y:...

2018-06-20 11:07:13

阅读数 93

评论数 0

原创 《高级程序设计》整理(三)- - -JS对象(1)

JS对象 一、属性类型 数据属性 [[Configurable]] 表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问器属性。直接在对象上定义的属性,默认值为true。 [[Enumerable]] 表示能否通过for-in循环返回属性。直接在对...

2018-03-28 09:29:03

阅读数 66

评论数 0

原创 《高级程序设计》整理(二)- - -正则与函数篇

《高级程序设计》整理(二)- - -正则与函数篇 一、正则(RegExp)     - - -| let pattern = / patern / ( i | g | m ) i:忽略大小写 g:全局匹配 m:多行匹配 &nbsp...

2018-03-20 11:21:34

阅读数 64

评论数 0

原创 日期对象之时间比较

日期对象之时间比较 17:35:00 、 19:20:11 当你拿到这两个字符串要去比大小的时候,你会怎么做? 反正我一拿到二话没说直接去写了一个转秒的函数,血亏…(感觉自己在说废话) 其实时间的比较有现成方法的,只要将字符串转成日期对象是直接可以比较大小的 t1 = new Dat...

2018-03-19 14:58:00

阅读数 374

评论数 0

原创 《高级程序设计》整理(一)---数据类型和数组篇

《高级程序设计》整理(一)- - -数据类型和数组篇 一、JavaScript六种数据类型 Undefined == Boolean ==》等于true Null:表示一个空指针对象 typeof(null)==="object" Boolean...

2018-03-16 16:58:43

阅读数 93

评论数 0

原创 Date() 时间的一个 format 格式化函数

formatDate(date, fmt) { if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.len...

2017-11-07 22:31:13

阅读数 709

评论数 0

原创 Vue +Node +Mysql 从简至全(二)

从数据库取出数据并显示到前端 –这一部分是实现数据库连接以及前后端的交互。 后端: vue-cli脚手架搭建 还需要 npm install axios用作ajax访问 修改之前的那个路由文件:代码很简单,先建立一个数据库连接,然后在调用路由的时候对数据库进行操作,并把结果send()出去。 ...

2017-10-11 13:10:40

阅读数 1541

评论数 0

原创 Vue +Node +Mysql 从简至全(一)

简单的后端接口连接的实现 –这一部分是实现后端的接口,接下来会依次实现数据库操作和前后端数据交互过程。 后端: npm install express mysql -S 编写后端入口文件(app.js): 编写路由文件: node app.js 这个时候最简单的后台接口就启动了,可以http:...

2017-10-11 10:48:02

阅读数 4278

评论数 0

原创 fullPage代码从基层往上爬(一)

fullPage代码从基层往上爬(一)自己打算通过fullPage.js来好好巩固滚轮事件、兼容性实现、jquery、函数封装等等…. 这一部分先完成fullPage的基础功能,接下来就会进行封装、优雅降级、添加功能等… html代码结构 css布局 jquery实现基础功能 html代码结构最...

2017-09-12 12:53:05

阅读数 345

评论数 0

原创 SVG路径描边动画效果的实现

SVG路径描边动画效果 理解SVG坐标系和变换:视窗,viewBox和preserveAspectRatio部分 参考自: http://www.w3cplus.com/html5/svg-coordinate-systems.html © w3cplus.com 先来放一个自己...

2017-09-09 14:04:38

阅读数 772

评论数 0

原创 px | em | rem =>字体单位的进化史

px | em | rem =>字体单位的进化史PX在刚刚接触前端的时候,我们都是使用“px”来设置我们的字体大小,因为它兼容性好而且精确。但是这种方法当用户在浏览器中浏览页面时,他人为的改变了浏览器的字体大小,这时会使用我们的页面布局被打破。因此,这时就提出了使用相对单位“em”来定义We...

2017-09-09 13:06:09

阅读数 215

评论数 0

原创 3.jQuery拓展方法extend();

1.当只写一个对象自变量的时候,JQ中扩展插件的形式$.extend({ //扩展工具方法 fun1 : function(){ ... }, fun2 : function(){ ... } }); //调用: $.fun...

2017-09-07 20:51:13

阅读数 147

评论数 0

原创 2.理解merge和pushStack可以更好的了解jQuery源码

    我就想看看自己JS学到什么程度然后让自己对jquery方法有更深的印象就“作死着”去看了看jquery源码,毕竟都说其编码结构很NB…     ...

2017-09-07 20:24:12

阅读数 143

评论数 0

原创 1.jQuery()和$()的由来

jQuery = function jQuery(a){ alert(a); } $=window.jQuery = jQuery; $(a); jQuery(a);嗯 好像是这么回事 哈哈~~

2017-09-07 17:03:04

阅读数 267

评论数 0

原创 原生Js完美运动框架(缓冲运动和弹性运动)

/** * 完美运动原生JS */ function getStyle(obj, attr) { if(obj.currentStyle)//IE { return obj.currentStyle[attr]; } else { return ...

2017-09-07 16:38:52

阅读数 843

评论数 0

原创 Vue:Avoid mutating a prop directly since the value will be overwritten ...警告解决方法

这个报错的原因就是props值不能被改变 这个问题的本质还是组建通信的双向绑定问题 在vue2.0文档中有这么一段话:    在一些情况下,我们可能会需要对一个 prop 进行『双向绑定』。事实上,这正是 Vue 1.x 中的 .sync修饰符所提供的功能。当一个子组件改变了一...

2017-09-02 14:40:29

阅读数 1110

评论数 1

原创 鼠标和滚轮方向判断

鼠标和滚轮方向判断1.鼠标进入方向判断:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Docu...

2017-08-26 20:56:45

阅读数 475

评论数 0

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