自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

paper_crane的博客

前端学习笔记整理

  • 博客(32)
  • 收藏
  • 关注

原创 ES6 函数

默认参数示例 // 当没有传入足够的参数时,会使用默认参数,如无默认参数,则为undefined function test(arg1, arg2 = '', arg3 = 0, arg4) {}对于默认参数值,null是一个合法值ES5下函数arguments的特性 // 非严格模式 function mixArgs(first, second...

2018-09-30 17:18:36 462

原创 ES6 Set和Map

SetSet集合是一种无重复元素的列表,通常的用途用以检测给定的元素在某个集合中是否存在ES5模拟Set var set = Object.create(null); set.foo = true; if (set.foo) {} if ('foo' in set) {}ES6里面的SetSet类型是一种有序列表,不会对键进行强制类型转...

2018-09-24 20:27:27 234

原创 ES7 Decorator初探

decorator(装饰器)是ES7里面的一个语法糖,作用于类、类属性\方法,为它们提供一个实现与业务逻辑无关的功能的接口。decorator为自定义函数参数:target、key、description 返回值:newDescription/newTarget修饰类参数target为类够构造函数,参数key、description为undefined 若无返回值,则装饰后的类构...

2018-08-31 19:31:27 798

原创 Node path模块

对于前端开发的同学相信大家都会用过path这个模块去解析路径,比较遗憾的是,以往都只是百度其某个方法的用法,没有完整的去看过接口文档,导致现在阅读一些代码的时候碰到path的其他方法一脸懵逼,所以趁着项目不忙去看了一下官方文档并做个笔记。以下示例大多来自官方文档。path.basename(path)参数:arg1:字符串类型路径(非字符串类型报错) arg2:可选参数,文件拓展名...

2018-08-31 09:45:01 430

原创 React新生命周期

react官方打算在未来提出一种实现异步渲染的方法以提高性能,主要的特点就是在渲染完成之前可以被中断,中断之后不会继续执行生命周期,而是重头开始执行生命周期。所以官方决定,从v17开始删除以下三个生命周期钩子:componentWillMountcomponentWillReceivePropscomponentWillUpdate作为补偿,新增两个新的生命周期钩子sta...

2018-08-14 16:09:53 3683 1

原创 JavaScript 函数执行机制(针对ES5)

引子常见问题JavaScript分段执行?怎么分段? JavaScript变量声明提升和函数声明提升具体怎么发生的? 访问变量的规则是怎样的?看例子:var a = 1;function globalFun() { console.log(a); // undefined var a = 2; console.log(a); // 2...

2018-07-22 12:23:50 234

原创 给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。

#include #include int primes[1001] = {0};int getPrimesCount() { int count = 0; for (int i = 2; i <= 1000; i++) { if (isPrime(i)) { primes[count++] = i; }

2018-01-24 18:11:09 2665

原创 C 单链表

#include#includetypedef struct NodeList { struct NodeList* next; int data;}Node;Node* getList() { int number, i; Node* head = NULL; Node* tail = NULL; printf("请输入节点个数:");

2018-01-23 09:25:26 259

原创 C 快排和归并排序

#include #include void quickSort(int* arr, int start, int end) { if (start == end) { return; } int i = start, j = end; int cmpElement = arr[i]; while(i < j) {

2018-01-22 17:48:03 270

原创 web前端 网络优化学习笔记

延迟传播延迟消息从发送端到接收端需要的时间,是信号传播距离和速度的函数传输延迟把消息中的所有比特转移到链路中需要的时间,是消息长度和链路速率的函数处理延迟处理分组首部、检查位错误及确定分组目标所需的时间排队延迟到来的分组排队等待处理的时间TCP连接前的三次握手1. SYN。发送端发送SYN分组,包含一个随机序列号x;2. SY

2017-11-22 17:57:03 456

原创 es6 学习笔记

let、const关键字共同点let和const关键词与var都是用来声明变量的,在使用方式上没有什么不同:var varname = 'crane';let username = 'paper_crane';const age = 22;如上例子,varname、username和age都是有效的变量,并且可以通过变量名来访问他们的值。不同点

2017-11-10 17:06:20 225

原创 vue 学习笔记

vue生命周期1. beforeCreate 实例化之前。在此阶段是没办法调用methods里面的方法。2. created3. beforeMounted4. mounted5. beforeUpdate6. updated7. beforeDestroy8. destroyedbeforeRouteEnter这个状态是路由进入之前

2017-10-18 17:41:36 405

原创 js 点击事件回调函数传参

点击事件回调函数传参使用匿名函数function testFun(event, str) { console.log(str);}var test = document.getElementById('test');test.addEventListener('click', function(event) { testFun(event, 'this is a tes

2017-09-14 16:44:08 17107 1

原创 高性能JavaScript学习笔记

加载和执行1. script标签会阻塞文档解析和渲染,不会阻塞link标签连接的css文档的加载2. link标签会阻塞在其之后的script标签执行,不阻塞DOM树解析,但阻止渲染。数据存取1. 访问速度最快的是字面量和局部变量,访问数组元素和对象成员比较慢;2. 局部变量处于作用域链的最顶端,访问处于作用域越底部的变量速度越慢;3. 可把常访问的

2017-08-23 19:17:15 264

原创 开发工具安装笔记

node npm安装http://m.blog.csdn.net/zhongyi_yang/article/details/51160334sublime text3安装安装:http://www.cnblogs.com/zhcncn/p/4113589.html默认配置:http://www.jianshu.com/p/1ad5cf5f84

2017-07-12 11:52:20 243

原创 DOM Element类节点

Element类型用于表现XML或HTML元素,提供了对元素标签名、子节点及特性的访问。Element节点具有以下特征:nodeType的值为1;nodeName的值为元素的标签名;nodeValue的值为null;parentNode可能是Document或Element其子节点可能是Element、Text、Comment、ProcessingInstruction、CDTASec

2017-04-26 17:21:55 372

原创 DOM Node类

JavaScript中,所有的节点类型都继承自Node类型,故记录下Node类型的属性和方法。属性nodeType属性这个属性用于表明节点的类型。节点类型由在Node类型中定义的下列12个数值常量来表示:Node.ELEMENT_NODE(1);Node.ATTRIBUTE_NODE(2);Node.TEXT_NODE(3);Node.CDATA_SE

2017-04-23 16:24:32 416

原创 JavaScript 对象

本篇博文主要记录一些对象的使用方法和操作,至于对象的声明和继承请看:《JavaScript 创建对象》、《JavaScript 原型继承》对象字面量创建对象一个对象字面量就是包围在一对花括号中的零或多个“键/值”对。键名(属性名)可以是包括空字符串在内的任何字符串,如果属性名是一个合法的JavaScript标识符,则不强制要求用引号括住属性名;用逗号来分隔多个“键/

2017-04-19 22:17:03 284

原创 金山wps2017校招笔试(前端A卷)

昨天有幸参加金山wps校招笔试(前端岗A卷),虽然题目不多,难度不大,但是还是感觉没有发挥好,所以将相关的题目的贴出来,以备往后学习之用。1. 以下代码A、B、C处分别输出什么(答案已在注释里面)?console.log(a); // undefinedvar a = 1;var setA = function() { // 相当于改变

2017-04-15 23:01:30 3991 8

原创 JavaScript 创建对象

工厂模式工厂模式抽象了创建具体对象的过程,能够快速创建大量具有相似属性及方法的对象。function createPerson(name, age, job) { var obj = {}; obj.name = name; obj.age = age; obj.job = job; obj.sayName = function() { aler

2017-04-13 20:43:41 296

原创 JavaScript 原型继承

原型链基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。function SuperType() { this.property = true;}SuperType.prototype.getSuperValue = function() { return this.property;};function SubType() { this.su

2017-04-10 20:48:31 278 1

原创 JavaScript 函数

在JavaScript中,函数其实也是一个对象,每个函数都是Function类型的实例,而且和引用类型一样具有属性和方法。由于函数是对象,所以函数名也只是一个指向函数对象的指针,不与某个函数绑定。

2017-03-29 19:24:51 251

原创 JavaScript Array类型

JavaScript中,Array是最常用到的数据类型之一,属于引用类型中的一种。由于数组类型实在太常用而我记性又不是很好,就写一篇博文做个笔记。创建数组:创建数组即可使用构造函数,也可使用数组字面量的方法var students = new Array(); // 创建一个空数组var students = new Array(5); // 创建一

2017-03-23 10:33:19 334

原创 JavaScript执行环境、作用域及this值

执行环境JavaScript的执行环境定义了其中的变量和函数有权访问的其他数据,即规定了在其内部能够访问什么数据。每个执行环境都有一个与之相关联的“变量对象”,环境中定义的变量和函数都保存在这个对象之中,可以理解为环境内的变量和函数都是这个变量对象的属性和方法,但是这个变量对象我们无法通过js访问到。可能这个概念有点难以理解,我们来看看一个例子:全局执行环境是最外围的一个执行环境,在web浏览器中...

2017-03-19 10:52:27 1040

原创 JavaScript检测类型

由于刚才参加了一个公司的在线笔试,在检测类型这方面出了点小乱子,所以写篇文章做个笔记。typeof操作符ES有五种简单的数据类型:Undefined,Null,Boolean,Number和String,还有一种复杂的数据类型Object。对一个值使用typeof操作符可能返回下列某些字符串:“undefined”——如果这个值未定义;“boolean”——如果

2017-03-18 20:29:13 320

原创 JavaScript事件冒泡,事件捕获,事件处理,事件委托

早期的事件,是作为分担服务器运算负载的一种手段,实文档或者浏览器窗口中发生的一些特定的交互瞬间,如点击按钮,拖放文件等。我们可以使用侦听器来预定事件,当事件发布时候就可作出相应的响应,这种模式称为观察者模型。事件流事件流是从页面接收事件的顺序。在一个html页面中,dom元素组成一颗dom树,由于子元素一般所处的位置都会在父元素之中。那么,当这个子元素被点击时候,可以认为子元素受到了点击,

2017-03-16 19:22:33 5110

原创 跨浏览器鼠标事件写法

以下兼容性代码实例来自《JavaScript高级程序设计》第三版,测试代码由本人编写:var EventUtil = { // 添加绑定事件 // 第一个条件兼容dom2级事件,可为同一个事件(如click)添加多个响应函数 // 第一个条件兼容IE,IE没有事件捕获,只有事件冒泡 // 第三个条件是dom0级事件,最原始的事件,同一事件只能有一个响应函数

2017-03-16 00:42:35 304

原创 js promise实现笔记

在开发web前端应用的时候,经常会碰到回调地狱,promise是一个很好的解决办法,基本上所有的浏览器都自行实现了promise对象,但是我想自己实现一个简单的promise then链,然后在网上看到了这篇博文的实现方式,研究许久才明白其运行方式,遂写个博文做个记录以备后日不时之需(代码为上述网站提供的代码,在此仅供参考学习之用)代码:/******************** ...

2017-03-10 16:13:34 400

原创 h5 form表单新增属性

前端向后台提交数据时经常需要使用到form表单,在JavaScript面试之前,判断form表单的信息正确与否只能直接将原始数据交到后台,让后台判断。这样的实现方式效率极其的低下,增大了服务器和带宽的消耗,所以人们希望通过JavaScript实现表单的验证功能,确实JavaScript也做得很好。不过这样一来感觉form表单的功能也就弱化了,完全变成了js脚本在处理表单数据了,所以h5新增的表单属

2017-03-03 16:31:10 2840

原创 js Boolean函数和相等操作符规则

Boolean函数在不同的参数下的返回值:数据类型转换为true的值转换为falseBooleantruefalseString非空字符串“”(空字符串)Number非零数值(包括无穷大)0和NaNObject任何对象nullUndefined----undefi

2017-03-01 22:56:59 3806

原创 h5 canvas学习笔记

创建画布: 你的浏览器不支持canvas 以上代码为在html文件里面添加一个canvas标签(若浏览器不支持此属性则会显示“你的浏览器不支持canvas”),除了width和height属性外,其还支持h5的标准属性,但是,canvas不是块级元素,在设置其居中的时候,要么外层包一个div,要么设置body的text-align为center。获取画笔:

2017-02-28 21:38:46 3037 2

原创 Chrome js抢票脚本

编写js脚本文件思路:根据设定的循环时间重复的运行抢票函数,刷新,判断按钮是否可以点击,是则模拟点击,结束循环,否则等待下一轮循环。以下示例的刷新时间间隔为1秒,从12点开始,浏览器为Chrome。js代码(script.js):var grab = function() { var date = new Date(); if (date.getHours() >= 1

2017-02-24 13:19:19 27103 4

空空如也

空空如也

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

TA关注的人

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