归档: 2016/12

记录点滴,修炼自己。
0

JavaScript中的对象、constructor属性、prototype属性对比分析

前言  首先想说的是,这篇文章的题目准确怎么定我就考虑了不少时间。想过“JavaScript中的对象及其constructor属性和prototype属性”,想过“JavaScript中的对象、构造函数对象(constructor)和原型对象(prototype)”等等,但总觉得不够清楚。说实话现有的这个题目也不一定是很好的,只是相比较之下,选择一个“三者相对独立”的说法,这样就不会有先入为主的

0

JavaScript中值传递和引用传递的典例探究

概述  在Javascript中,基本类型(null, undefined, number, string, boolean, symbol)是通过值传递方式进行,而复合类型(object, array, function)则是通过引用传递方式进行。  但是,由于Javascript工作机制所决定,在js中,引用指向的其实是值,而无法指向其他引用,这和其他语言中的指针并不相同。  其实,两者都可

0

JavaScript中创建对象的7种模式和实现继承的6种方式

前言  JavaScript是一种面向对象(OO)的语言,但由于ECMAScript没有类的概念(ES6引入关键字class),所以在js中创建对象的方法也与其他基于类的语言有所不同。本篇总结在JavaScript中创建对象的7种方法;并在此基础上,总结实现继承的6种方式。 JavaScript中对象的基本概念创建对象的2种基本方法 创建一个Object实例123456var person =

0

关于JavaScript生成器generator和yield的一些理解

综述  Generator(生成器)函数是ES6提供的一种异步编程解决方案,而yield则是配合生成器函数使用的。 Generator函数定义  function* 声明(function关键字后跟一个星号)定义一个generator(生成器)函数,返回一个Generator对象。 语法function* name([param[, param[, ... param]]]) { statem

0

Base64编码探究

概念  Base64编码是网络传输中的一种常见编码方式。可用于传输任意的8bit(字节Byte)数据,经过编码后的数据不是直接可读的,但也由此保证了一定的安全性和很好的可移植性。这种编解码的算法十分简单,编码后的数据大小仅增加三分之一左右(原因后续讲到),因而不会对传输造成过大压力。  我们需要明确的概念是,Base64编码本质上是将二进制数据编码为文本字符。而这些二进制数据的来源则可能有很多,

0

使用WebStorm创建webpack工作流的前端项目

前言  webpack是一款极为灵活的前端模块打包构建工具。其诞生和流行主要是由于以下这几个发展趋势: 为了完成更加复杂的交互逻辑,一个网页中使用的js代码数量越来越多; 即便有了更多代码,却要求使用中有更少的整页面重新加载; 现代浏览器提供了更多的API接口。   基于这样的情况,大量代码就需要能够被良好地管理起来,像webpack这样的模块系统就为我们将代码切分为若干模块提供了很好的选择

0

JavaScript中的__proto__、[[prototype]]和prototype

前言  proto、[[prototype]]和prototype三个概念及相关内容是javascript比较复杂且容易混淆的内容。本文尝试进行总结和分析。 prototype相关介绍  待续。 __proto__与[[prototype]]相关介绍  待续。 一张图分析三者的关系 一系列案例分析12345function Foo(){ console.log(1);}

0

CSS居中问题总结

前言  本篇集中对CSS中的各种居中问题进行总结。整体上需要居中的元素可以分为两大类-内联元素和块级元素,而居中方式又要考虑水平和垂直两个方向。 内联元素居中水平居中 使用”text-align:center”根据以下W3C的官方文档: 属性“text-align”用于描述块级元素中的行内内容如何布局。我们知道,块级元素的显示占据一整行,而行内元素可以在一行内并列显示,常用的行内元素有<

0

【阿里云ECS】GitLab的搭建配置过程和GitLab-CI服务的使用

前言  GitHub是一个十分著名并相当活跃的社区,每天有世界各地的程序员在这里分享与交流。作为开源项目或者技术分享,我们当然可以将代码维护在这里。但是对于内部项目,我们应该具备私有仓库来进行维护。GitLab就是一个很好的选择。本文主要包括以下几个方面: Git安装与使用 GitLab相关知识介绍 GitLab搭建配置的完整过程 GitLab-CI相关知识介绍 GitLab-CI安装配置的完

0

【阿里云ECS】LAMP开发环境的完整搭建配置过程

前言  为了顺利进行web开发,一套完整易用的开发环境是十分必要的,这可以大大提高团队的合作和开发效率。这里说的开发环境包括IDE,数据库,开发语言组件,版本控制工具等一系列内容。最近在使用的是比较流行的php开发架构,在windows下,无疑推荐WAMP + MySQL-Front + phpStorm,WAMP集成了Apache、MySQL、PHP,可以免除许多安装配置的问题。这样的环境在具体开发中是没有什么问题的,但是当项目上线并且需要版本维护时,我们还是要在Linux系统上进行部署。  基于这样的需求,最近搭建了一套完整的LAMP环境并测试通过,可以实现代码版本控制,APP端API测试调用,项目自动化部署持续集成(CI)。包括的主要内容有:

0

React Router的history探究

前言  路由是单页应用中十分重要的概念。具体在react中,react-router为我们提供了一套完整的路由机制。 概述  项目history相关文档主页:Histories。文档的讲解十分详细。本文只是通过在实际项目中history的状态变化进行简单小结。以dva应用为例,经过这样的配置后,容器组件可以在props中拿到history对象和相关参数。 表现如上所示,history中包含了一