自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 [javascript] 原型和原型链

原型和原型链原型是什么原型是一个对象,是函数对象的一个实例,只有在函数对象上才会有指向原型的属性prototype。函数对象是什么在javascript中,对象分为两种,一种是普通对象,一种是函数对象。函数对象总共有12个内置对象,除了下面的9个还有:Math和JSON是对象形式,Arguments仅在调用时由js创建。包括javascript内置的9个内置对象:Number、Str...

2018-09-28 14:43:02 288

原创 https与http的区别

http超文本传输协议, 无状态,明文传输无加密httpshttp基础上添加了一层ssl层,用来加密传输和身份验证https相比http端口号不同(https使用443,http使用80),https需要申请证书,https更安全(加密传输,身份验证),https会验证数据完整性https需要申请证书ssl安全传输套层,位于应用层和tcp之间,会验证https证书的有效性,...

2018-09-20 11:39:03 305

原创 postcss插件 -- cssnano V4版本配置

随着cssnano 的版本升级,之前的版本的配置已经对当前版本不兼容, 所以在升级cssnano版本时需要注意一些问题由于v4版本会默认加载高级配置,而高级配置中有一些选项又可以我们不需要,所以我们需要去掉继续使用高级配置"cssnano": { "cssnano-preset-advanced": { zindex: false, au...

2018-09-13 16:09:13 6283

原创 React--jsx

jsx 介绍jsx 是javascript的语法扩展,虽然看起来像是模板语法,其实内部完全是javascript实现的react认为渲染逻辑的本质与ui逻辑是一致的: 如何处理事件、如何显示数据与页面如何布局、如何展示页面是同一等级的问题react不是将标记和逻辑通过拆分文件来解耦合,而是将问题拆分成组件来解耦合react不是必须使用jsx,但是通过jsx可以更好的获得视觉辅助,以...

2018-08-23 02:11:29 185

原创 前端cnpm私库搭建

前端的包管理系统 – npm,可以免费下载和上传公开的包,但是如果需要管理公司内部的包,就需要付费。 npm的镜像系统 – cnpm:淘宝npm镜像,不仅提供了包的国内镜像,也提出了一种解决搭建私有包的方案cnpmjs。环境:nodejs >= 4.3.1npm *mysql >= 0.5.0服务器 git git仓库 ...

2018-04-03 18:12:44 2837 1

原创 前端http缓存

浏览器的http缓存机制分为强制缓存和协商缓存。强制缓存ExpiresCache-Control协商缓存Last-Modifiedetag禁用缓存Pragma浏览器的http缓存机制分为强制缓存和协商缓存。强制缓存指的是浏览器第一次请求资源时,浏览器缓存在本地,并设定时间,如果在这个时间内再次请求,便会读取缓存的资源...

2018-04-02 23:43:06 759

原创 [javascript] js中的堆和栈

堆和栈是内存分配的统称。在js中,基础类型保存在栈中,引用类型放在堆中,不过引用类型有一个对应内存地址,存放在栈中。当查询引用类型的变量时,先从栈中取出引用类型的地址,然后通过地址找到堆中的地址。栈的内存大小固定,堆的内存大小不固定。栈的内存都是提前分配好了,每个基本类型的大小都是一定的。而堆的大小不确定,需要程序自己申请。栈会被自动回收,堆不会。...

2018-03-29 01:44:52 325

原创 [nodejs] 了解内存泄漏

什么是内存泄漏GC (Garbage Collection,垃圾回收)内存泄漏的常见情况1. 全局对象2. 闭包3. 事件监听4. 其他原因小结什么是内存泄漏内存泄漏(Memory Leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。 如果内存泄漏的地方刚好是程序执行的重要位置,那么程序就可能会因为堆积越来越多无用的内存,...

2018-03-28 00:31:34 1448

翻译 Functional Programming -- Monad

原文: Functional Computational Thinking — What is a monad? 原文作者是在学习了 Haskell 之后,又看到了 Why Do Manods Matter 的相关视频,根据视频中Haskell 函数组合的例子,转用javascript实现(nodejs环境)。首先 ,我们都知道 函数组合:const add1 = x =&g...

2018-03-07 17:16:14 266

原创 网站静态资源使用CDN加速

使用七牛云平台的融合CDN功能对网页静态资源优化加速分发,例如:css、js、img 等;实现原理:如上图所示流程:1. 用户请求到 CDN 节点;2. CDN 节点未命中向源站获取文件;3. 源站根据请求响应内容给 CDN ,同时 CDN 缓存内容;4. CDN 节点将内容响应给最终用户;5. 当同一cdn节点内的用户再次访问时,cdn便会直接将缓存内容返回给...

2018-03-02 14:00:36 13946

原创 GET请求和POST请求的区别

GET请求 和 POST请求 都是TCP请求,不过因为http的规定和服务器/浏览器的限制,导致在实际应用中的不同。当发送ajax请求时,GET请求会发送一个TCP数据包,而POST请求会发送两个(先发送header, 然后发送data)在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。...

2018-02-26 14:44:22 245

原创 [ES6] 变量的结构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构数组的解构赋值如果目标对象的结构不符合/不具备iterator接口,都将会报错结构赋值可以有默认值,当数组中的值完全等于undefined,默认值才会生效let [a=1] = [];a //1// 相当于let [a=1] = [undefined];a // 1可以嵌套使用l...

2018-02-24 11:36:26 289

原创 [ES6] let const

let不能够重复声明会形成暂时性死区不存在产量提升会形成块级作用域const使用const声明的变量保证的是声明时指向的内存地址不变声明时必须要赋值其余同let特性一样块级作用域已实现es6和未实现es6的浏览器运行环境的差异太大,应尽量避免块级作用域内声明函数,如果需要应使用函数表达式的方式引const 1.冻结对象 可以使用Object.f...

2018-02-12 13:57:25 157

原创 使用nodejs 爬虫框架 Crawler爬取全国省市区的数据

node-crawler 是nodejs 的爬虫框架。默认使用Cheerio进行jquery式DOM解析,更方便的抓取网页的特定部分。更多特性和功能 crawler中文文档爬取全国的省市区的数据国家统计局的统计的数据网站分析网页的结构。 入口网址是index.html,列出了省份和直辖市点击省份会跳到下级市的网站,网址为对应的a的href替换掉index以此类推

2018-01-28 23:46:31 7801

原创 微信的scrollTop

微信内置浏览器中文档的scrollTop是通过document.body取的,而不是document.documentElement。如果想要兼容常见浏览器,我们可以着么做:// 取let scrollTop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.bod

2018-01-28 22:28:17 2359

转载 知乎上的一篇关于js赋值运算的一道面试题

原链接地址var a = {n: 1};var b = a;a.x = a = {n: 2};alert(a.x); // undefinedalert(b.x); // [object, Object]在第三行 a.x = a = {n : 2} ,js在执行赋值表达式之前,还执行了一步运算,这步运算是把 引用类型的内存地址替换进来,然后再进行赋值运算。 原来js赋值运

2018-01-24 01:02:43 557

原创 [ES6] Class中的super

super关键字出现的前提是使用Class的继承。 class Person { // ... } class Student extends Person{ constructor(){ super(); } }为什么会有super当类使用继承,并实例化时, es5 的继承是先创建子类的thi

2018-01-24 00:47:33 5814

原创 [ES6] class中的contructor

ES6中的class相当于ES5中的构造函数constructor是class中的构造方法(同es5的构造方法一样)class本身就是函数, 而class本身就指向其自身的constructor构造函数 // es5 function Person(name) { this.name = name; } ----------

2018-01-20 00:38:19 617

原创 你不知道的javascript[1] --- 编译原理

javascript与我们知道的java等后台语言一样同样是编译语言,但是与后者不同的是,javascript不是提前编译的,编译结果也不能在分布式系统中移植。javascript和传统编译语言非常相似,传统编译语言编译过程分为三步:分词/词法分析会将字符串分解为有意义的代码块,这些代码块被成为词法单元。 例:var a = 1; 会被分解为 var, a, =, 1, ;解析/语

2018-01-18 17:23:19 184

原创 前端文件上传原理

记:最近在做图片上传,但是一直对图片上传的概念模糊不清,所以查阅了一些文档,现在对基本原理有了一个认识前端网页文件上传一般使用 来实现。 在 HTML 文档中 标签每出现一次,一个 FileUpload 对象就会被创建。该标签包含一个文本输入字段,用来输入文件名,还有一个按钮,用来打开文件选择对话框以便图形化选择文件,该标签的 value属性保存了用户指定的文件的名称。 多选:

2018-01-18 11:48:47 10435

原创 百度地图 行车路径规划自定义 起点 终点 路径

已知N个坐标点,用这个点在百度地图上绘制一条行车路线问题:百度地图为我们提供了 DrivingRoute API,但是提供的api中并没有提供更改路径、起点、终点、经点的样式,如果想让界面看起来舒服一点就需要自己自定义API DrivingRoute中提供了返回路径规划的路径的path接口,我们可以利用返回的path, 再调用Polyline, 自己绘制一个路径,然后把对应的起终点、...

2018-01-08 14:46:30 12217 2

原创 使用百度地图开源库mapv,绘制marker过程中的遇到的坑

需求 项目过程中需要在地图上展示数百个marker,并且要求每个marker都需要绑定click、mouseover、mouseleave 事件,来切换marker的颜色。 mapv绘点选项中提供了两个事件方法, click和mousemove,事件参数有两个为item、event,item是dataSet中对应的数据;当事件触发时,将对应的item的icon换成对应的icon,

2017-12-25 11:59:38 10092 4

原创 网站接入微信扫二维码登录 (nodejs)

官方文档看这里 网站应用微信登录开发指南效果图整个流程图自定义样式(内嵌入二维码)如果需要对二维码的样式进行自定义,则需要在实例化WxLogin 对象时传入自定义的外部css链接,注意这个href 需要 https 链接。具体步骤步骤1:在页面中先引入如下JS文件(支持https):http://res.wx.qq.com/...

2017-12-03 21:51:43 22017

转载 前端规范资源列表

前端规范资源列表

2017-12-01 00:14:25 174

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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