JS闭包Closure

闭包是一个针对作用域产生的机制,假如a函数返回一个b函数,b函数在被返回后还可以获得到所有在b函数以外且在a函数以内的变量。

2018-08-28 23:44:29

阅读数 37

评论数 0

常见的网络袭击

XSS (Cross-site Scripting):  XSS袭击是通过黑客在网页注入恶意执行代码来达到某种有害网站的目的。典型的例子可以是在一个部落格网站,开发者没有处理好input输入框,而让任何用户可以通过文字输入框注入JS脚本。当脚本命令注入后被存入数据库,所有浏览恶意用户上传内容的用...

2018-08-27 23:12:30

阅读数 27

评论数 0

JS async库:parallel, series, waterfall, whilst用法

针对JS的异步机制,JS社区给出了很多不同的解决方案,Async库便是其中一种,可能也是对于控制异步操作最全面的资源。因为该库提供了70个函数,几乎想所有的运用场景都考虑在内。以下笔者针对四个函数进行讲解: 1. parallel const async = require('async')...

2018-08-25 16:13:30

阅读数 258

评论数 0

MarcoJS 服务端渲染

本文章简单的列出几个步骤利用Node.js Express框架以及MarcoJS 实现服务器渲染模板 第一步:编写Express路由: //server.js require('marko/node-require').install(); const express = requir...

2018-08-25 00:04:47

阅读数 168

评论数 0

JS: 当 let 和 var 遇上for循环

for (var i = 0; i < 2; i++) { setTimeout(() => { console.log(i); }) } //2 //2 上图代码的执行结果是两个2。对异步编程有所了解的可能都知道s...

2018-08-24 00:01:28

阅读数 1920

评论数 3

数据结构: 哈希表

每个数据结构的都是针对解决某些问题而存在。哈希表所代表的是一个能让数据快速存储并读取的数据规整方式。一个哈希表主要由哈希算法和(持有指定空间的)数组组成。哈希算法有很多种,但它的核心操作是根据指定的空间将参数转换成数字。在哈希表中,哈希算法用于转换数据的键值并生成指定数字存入数组中。如果有一组数据...

2018-08-22 21:12:04

阅读数 48

评论数 0

JS与函数式编程(小程序实例)

编程范式(programming paradigm)是软件工程中开发者对于编写代码的构造思路。不同的范式基于不同的理念和原则。函数式编程便是一种基于编写纯函数的代码构造思路。该范式遵守四大原则:1. 函数需纯 2. 避免数据共享 3. 固定变量值 4. 副作用最小化。 1. 纯函数的特点是其针对...

2018-08-21 23:08:48

阅读数 711

评论数 0

Javascript 上升(Hoisting)

在面试JS的面试过程中会出现一类问题专门针对JS的“奇怪现象”去考面试者是否了解关于该语言的边边角角,本文讲的JS上升级至(hoisting)可以算作这一类现象。对于hoisting产生的困户和误解往往是因为其语言在编写(程序员的感知)和实际执行上存在着差异,导致本以为简单明了的执行逻辑出现了意想...

2018-08-20 23:23:17

阅读数 84

评论数 0

Websocket是什么?

Websocket是存在于互联网交互架构应用层的协议,虽然在实际的运用场景中websocket需要http去启动链接,但该依赖关系不是必要的。Websocket连接完全可以独立于http,之所以将连接方式建立在http之上是因为http已经提供了便捷的沟通协议。利用http的协议完成wesocke...

2018-08-18 17:46:30

阅读数 331

评论数 0

原生的Promise有什么不同

今天看到一段代码的执行结果让我十分困惑: setTimeout(_ => console.log(4)) let promise = new Promise(resolve => { resolve() console.log(1) }) p...

2018-08-18 00:20:01

阅读数 40

评论数 0

NodeJS子进程:exec, fork, spawn

Node的优势在于其语言的处理速度,而它的速度建立在异步处理和事件驱动的机制上。但语言本身的单线程处理会让速度受限,并且在硬件资源充沛的环境下无法充分利用计算机的性能。举个列子:服务器的业务逻辑中如果某模块的复杂度特别高需要花大量的时间做处理,在只有一个线程的情况下,代码处理会被阻塞。Node开发...

2018-08-16 22:19:10

阅读数 648

评论数 0

Node Stream 实例:压缩文件脚本

Node的数据流模块配合pipe函数可以生成很多有效的文件处理工具,以下代码是一个简单的压缩文件脚本: const fs = require('fs'); const zlib = require('zlib'); const { Transform } = require('stream')...

2018-08-15 22:31:15

阅读数 43

评论数 0

NodeJS 数据流

Stream是NodeJS的原生模块。它的优势是可以让程序更有效的处理庞大的数据。原因在于stream模块可以将数据分段后导入到指定位置。举个例子:如果有一个200MB的文件需要读取并传送给用户,程序可以读取文件然后发送给客户端。但是读取文件的过程需要将整个文件读取并保存至内存后再进行发送,所以内...

2018-08-14 22:53:00

阅读数 245

评论数 0

JS: "这"到底是什么?

"这"为什么会存在? 在JS的开发过程中,关键词this的绑定是学习道路上必定要过的一个门槛。想要深刻理解this的用法就需要意识到它存在的意义。在运用上,其实this是一个非常有助于整理代码的好工具。它的存在给JS编程带来了很大的灵活性,不过其特点也成为了很...

2018-08-13 23:38:41

阅读数 42

评论数 0

JS的特性:异步 + 事件驱动

语言本身的特点圈定了它在不同环境和运用场景的优点和缺点。Javascript的特性是其异步和事件驱动。异步是在程序发起调用后,进程继续向下执行的操作。但回调返回后,系统会通过某种手段来通知调用者(事件驱动)。在JS中最常见得例子就是setTimeout:  setTimeout(functio...

2018-08-12 00:09:15

阅读数 322

评论数 0

JS模块机制:CommonJS

随着互联网的发展,JS已经不是当初那个单纯运用在网景浏览器中的小语言了。在前端框架飞速发展以及NodeJS在服务器上的运用,当初的那个小语言也在飞速迭代,让其内部架构能能符合所有开发项目的需求。因此语言的模块机制及其重要。模块化是计算机科学中的一个核心概念。它代表对所有代码逻辑的封装,以便提高代码...

2018-08-10 22:58:58

阅读数 55

评论数 0

以最轻量的方式解释Promise

接触过JS的开发人员应该都有用过Promise处理异步编程,它在语法上非常直观的用“then”去对当下所要做得执行和在期之后所要执行的代码做了封装。 function test() { let promise = new Promise((resolve, reject) =&...

2018-08-09 14:49:45

阅读数 59

评论数 0

设计非关系型数据库

从MySql到MongoDB的数据库设计,在思路上要做很大的改变。MySQL代表的是关系型数据库,所以在设计模型时往往会按照三种实体数据关系去设计:1.一对一 2.一对多 3.多对多。这三种关系足以映射业务逻辑上的需求。很多开发者在没接触非关系型数据库之前都会按照这个思路去规整数据。但是如果将同样...

2018-08-08 23:29:55

阅读数 1079

评论数 0

MySql锁

这篇文章围绕着关于数据库锁的几个关键词做一些梳理。其中包括:乐观锁、悲观锁、表级锁、行级锁、页级锁、共享读锁和排他写锁。 在网上的各个资源都将这7个名次形容为“数据库锁的种类”,显得有些混乱,所以将他们七个都搬出来讲讲他们到底什么关系。 1. 锁的粒度:表级锁、行级锁、页级锁 锁的粒度根据我...

2018-08-07 18:49:09

阅读数 36

评论数 0

MySQL事务和锁的关系

用一句话去概括事务:将对数据库进行的多个操作封装成单个,只有在所有操作都成功的情况下才真正实现变动,否则数据原封不动。用一句话概括锁:一个让数据不能被修改的功能。而他们之间的关系可以定义为:锁是实现事务其中一个特性的机制。 事务是一个针对数据质量产生的概念。在高并发或者数据库出现突然断电的情况下...

2018-08-06 22:10:43

阅读数 1091

评论数 0

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