自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

那边小伙

这家伙真懒,啥都没有

  • 博客(30)
  • 资源 (2)
  • 收藏
  • 关注

原创 封装接口

#export function fetch (url, parameObj = {}, method = 'POST') { return new Promise((resolve, reject) => { var postParameObj = {} var getParameObj = {} if (method.toUpperCase() ===...

2018-03-26 16:54:45 767

转载 js继承的几种方式

js对象的继承本文主要转载一下几种继承方式原型继承借用构造函数继承组合继承寄生式继承寄生组合方式继承 原型式继承可以在不必预先定义构造函数的情况下实现继承,其本质是执行给定对象的浅复制。而复制得到的副本还可以得到进一步的改造function parent(o) { this.username = 'father'; this.array ...

2018-03-05 13:50:34 181

转载 各种懵逼的height,width

document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHeight ==> 可见区域高度网页可见区域宽: document.body.

2017-08-31 19:34:57 301

原创 windows Nginx重启

rem nginx -s reloadTASKKILL /F /IM nginx.exestart nginx.exe

2017-08-23 09:12:26 474

转载 垂直居中

已知高度宽度元素的水平垂直居中1.绝对定位与负边距实现。利用绝对定位,将元素的top和left属性都设为50%,再利用margin边距,将元素回拉它本身高宽的一半,实现垂直居中。核心CSS代码如下:#container{ position:relative;}#center{ width:100px; height:100px; position:absolute;

2017-08-16 15:17:57 280

原创 Js 执行上下文

Javascript的执行过程1.代码编译阶段:由编译器完成,将代码翻译成可以执行代码,这个阶段作用域规则会确定。 2.代码执行阶段:执行阶段由引擎完成。主要任务是执行可执行代码,执行上下文在这个阶段创建。执行上下的生命周期1.创建阶段: 在这个阶段,执行上下文会分别创建变量对象,作用域链,确定this的指向。 2.代码执行阶段:完成变量赋值,函数引用,执行其它代码。变量对象转换为活动对象。

2017-08-08 14:38:08 225

转载 Angular 递归指令

最近需要写一个指令调用自己,就是指令递归,用ng-include不断的ng-include自己实现了,后来在网上发现了更好的方法,偷过来看一下。 1. html模板<div> <div ng-controller="mainCtrl as vm"> <recurv tree="vm.tree"></recurv> <recurv depth="2" tree="vm.tree"

2017-07-10 15:47:10 2402

转载 文章标题

HTML5新增了哪些内容或API,使用过哪些 input和textarea的区别 用一个div模拟textarea的实现 CSS左右布局:左边定宽、右边自适应,不少于3种方法 CSS3用过哪些新特性 BFC、IFC 对栅格的理解 (水平)居中有哪些实现方式 1像素边框问题 JavaScript图片懒加载 实现页面加载进度条事件委托 实现extend函数 为什么会有跨域的问题以

2017-07-10 15:41:21 250

原创 html5 div 模拟textarea

<style> #textarea { width:300px; border:1px solid #eee; min-height:150px; max-height:300px; overflow: scroll; font-size: 14px; outline

2017-06-29 11:44:48 444

原创 localStorage 存储对象

localStorage理论上只能存储字符串,存对象的话要把对象转换成字符串,取出来用之前也需要把字符串转换成对象。var obj = { name:'Jim', password: "123"}; var array = [];array.push(obj);array.push(obj);var str = JSON.stringify(array); //存入 l

2017-06-23 09:35:15 4288

原创 Javascript模块化编程(三):require.js的用法

一、为什么要用require.js?最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见过。<script src="1.js"></script><script src="2.js"></script><script src="3.js"></script><scr

2017-06-14 15:11:04 207

原创 Javascript模块化编程(二):AMD规范

七、模块的规范先想一想,为什么模块很重要?因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你有你的写法,我有我的写法,岂不是乱了套!考虑到Javascript模块现在还没有官方规范,这一点就更重要了。 目前,通行的Javascript模块规范共有两种:CommonJS和AMD。八、CommonJS在浏览器

2017-06-14 14:55:24 161

原创 Javascript模块化编程(一)

一、原始写法模块就是实现特定功能的一组方法。 只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块。function m1(){ //...}function m2(){  //...}上面的函数m1()和m2(),组成一个模块。使用的时候,直接调用就行了。 这种做法的缺点很明显:”污染”了全局变量,无法保证不与其他模块发生变量名冲突,而且模块成员之间看不出直接关

2017-06-14 14:49:19 157

原创 css

1 引入CSS文件建议用<link href="common.css" rel="stylesheet"/> 因为浏览器会并行下载资源并且不会停止对当前文档的处理,而不推荐使用import和内联 使用<script src=""></script>浏览器会阻塞2 如何理解HTML结构的语义化?. 丢失样式的时候,能让页面呈现清晰的结构:html本身是没有表现的,我们看到例如<h

2017-06-08 16:35:00 196

原创 ES6 yield使用

描述根据语法规范,yield 关键字用来暂停和继续执行一个生成器函数。当外部调用生成器的 next() 方法时,yield 关键字右侧的表达式才会执行。执行结果会转化为一个对象(包含两个属性, value 和 done),作为 next() 方法的返回值。对于 var foo = yield expression 语句,yield 左侧变量 foo 的值将在下一次调用 next() 方法时获得,并

2017-06-08 14:45:11 1251

原创 ES6(十一)Promise

Promise 的含义Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Promise对象。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统

2017-06-06 16:34:08 448

原创 ES6 (十) Set 和 Map

SetES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。const s = new Set();[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for (let i of s) { console.log(i);}// 2 3 5 4Set 函数可以接受一个

2017-06-05 15:49:26 246

原创 ES6(九)Symbol

SymbolES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 ES6 引入Symbol的原因。ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaS

2017-06-05 15:13:00 151

原创 ES6(八) 对象的扩展

属性的简洁表示法ES6 允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。var foo = 'bar';var baz = {foo};baz // {foo: "bar"}// 等同于var baz = {foo: foo};上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量名, 属性值为变量的值。下面是另一个例子。function f(x, y) {

2017-06-02 15:03:20 186

原创 javascript Object

属性lengthobject.length = 1Object.prototype可以为所有 Object 类型的对象添加属性。在JavaScript中,所有的对象都是基于 Object;所有的对象都继承了Object.prototype的属性和方法,它们可以被覆盖(除了以null为原型的对象,如 Object.create(null))。例如,新的构造函数的原型覆盖原来的构造函数的原型,提供它们自

2017-05-23 14:49:09 174

原创 声明一个变量为null

null表示一个变量的值为空,undefined表示一个变量为声明var a = document.getElementById('notExistNode');console.log(a) // a = null作为对象原型链的终点var a = Object.getPrototypeOf(Object.prototype);console.log(a) // a = null

2017-05-23 13:52:39 1157

原创 ES6(七) 函数的扩展

函数的扩展函数参数的默认值在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。function log(x, y) { y = y || 'World'; console.log(x, y);}log('Hello') // Hello Worldlog('Hello', 'China') // Hello Chinalog('Hello', '') // Hello W

2017-05-18 14:29:37 363

原创 javascript array.forEach()和array.map()的区别

forEach不支持return,对原来的数组也没有影响。但是我们可以自己通过数组的索引来修改原来的数组var ary = [12,23,24,42,1];var res = ary.forEach(function (item,index,input) { input[index] = item*10;})console.log(res);//-->undefined;conso

2017-05-15 10:03:51 677

原创 ES6(六)数组的扩展

数组的扩展Array.from()Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。下面是一个类似数组的对象,Array.from将它转为真正的数组。let arrayLike = { '0': 'a', '1': 'b', '2': 'c',

2017-05-15 09:16:17 226

原创 ES6(五) 数值扩展

数值扩展Number.isFinite(), Number.isNaN(ES6在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法Number.isFinite()用来检查一个数值是否为有限的(finite)Number.isFinite(15); // trueNumber.isFinite(0.8); // trueNumber.isFini

2017-05-13 11:47:09 350

原创 ES6(四) 正则表达式

正则表达式RegExp构造函数在ES5中,RegExp构造函数的参数有两种情况。// 一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)。var regex = new RegExp('xyz', 'i');// 等价于var regex = /xyz/i;// 第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。var regex = new R

2017-05-13 11:20:12 476

原创 ES6(三) 字符串的扩展

字符的 Unicode 表示法 JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点。"\u0061"// "a"//但是,这种表示法只限于码点在\u0000~\uFFFF之间的字符。超出这个范围的字符,必须用两个双字节的形式表示。"\uD842\uDFB7"// "吉""\u20BB7"// " 7"上面代码表示,如果直接在\u后

2017-05-11 18:13:39 267

原创 初学ES6(二)变量的解构赋值

变量的解构赋值数组的解构赋值 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构 以前,为变量赋值,只能直接指定值。let a = 1;let b = 2;let c = 3;ES6允许这样写let [a, b, c] = [1, 2, 3];上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。let [foo, [[bar], baz]] = [1,

2017-05-11 16:34:13 200

原创 初学ES6(一) let和const

初学ES61. let,const声明变量let,它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效{ let a = 10; var b = 1;}a // ReferenceError: a is not defined.b // 1在for循环中使用let和var的区别var a = [];for (var i = 0; i < 10; i++) { a

2017-05-11 15:32:20 188

转载 常用正则表达式(转)

正则表达式校验密码强度 密码的强度必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$校验中文 字符串只能是中文^[\\u4e00-\\u9fa5]{0,}$由数字,26个英文字母或下划线组成的字符串 ^\\w+$校验E-Mail 地址 [\\w!#$%&'*+/=?^_`{|}~-]+(

2017-05-10 14:21:46 189

xml课程设计(代码)

基于XML的课程设计,可以运行,通讯录,添加修改信息等

2015-06-10

城市最短路径

个交通咨询系统,能让旅客咨询从任何一个城市顶点到另一城市顶点之间的最短路径(里程)、最低花费或是最少时间等问题。对于不同的咨询要求,可输入城市间的路程、所需时间或是所需费用等信息。

2013-08-26

空空如也

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

TA关注的人

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