🔍 登录 注册
分类:
标签: 共 1222 篇文章
Node.js cluster模块相关笔记

Node.js cluster模块相关笔记

cluster Node.js的单个实例在单个线程中运行。 要利用多核系统,用户有时会想启动一个Node.js进程集群来处理负载。 cluster模块可以轻松创建全部共享服务器端口的子进程。 const cluster = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { console.log(`Master ${process.pid} is running`); // Fork workers. for (let i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', (worker, code, signal) => { console.log(`worker ${worker.process.pid} died`); }); } else { // Workers can

大 大苹果 2018/5/31 👍 0 ⭐ 0 💬 0
es6之Map对象保存键值对

es6之Map对象保存键值对

Map 语法 new Map([iterable]) 参数 iterable Iterable 可以是一个数组或者其他 iterable 对象,其元素或为键值对,或为两个元素的数组。 每个键值对都会添加到新的 Map。null 会被当做 undefined。 描述 一个Map对象以插入顺序迭代其元素 — 一个 for...of 循环为每次迭代返回一个[key,value]数组。 键的相等(Key equality) 键的比较是基于 "SameValueZero" 算法:NaN 是与 NaN 相同的(虽然 NaN !== NaN),剩下所有其它的值是根据 === 运算符的结果判断是否相等。在目前的ECMAScript规范中,-0和+0被认为是相等的,尽管这在早期的草案中并不是这样。有关详细信息,请参阅浏览器兼容性 表中的“value equality for -0 and 0”。 Objects 和 maps 的比较 Object 和 Map 类似的是,它们都允许你按键存取一个值、删除键、检测一个键是否绑定了值。因此(并且也没有其他内建的替代方式了)过去我们一直都把对象当成

大 大苹果 2018/5/25 👍 0 ⭐ 0 💬 0
TypeScript学习笔记(一)

TypeScript学习笔记(一)

TypeScript TypeScript是JavaScript类型的超集,它可以编译成纯JavaScript。 TypeScript可以在任何浏览器、任何计算机和任何操作系统上运行,并且是开源的。 安装 # 全局安装typescript npm install -g typescript 接口声明 // 声明一个接口 export default interface Sociality { makeFriend():Boolean doGame():void } 类的声明并导出 // 引入接口 import Sociality from './Sociality'; // 声明一个类,实现Sociality接口 export default class Person implements Sociality { // 声明私有变量name,string类型 private name:string // 声明私有变量age,number类型 private age:number // 声明私有变量sex,number类型

大 大苹果 2018/5/23 👍 0 ⭐ 0 💬 0
npm包的制作与发布使用

npm包的制作与发布使用

制作npm包的步骤 注册npm账户 npm adduser 或者登陆npm官网注册 登陆npm账户 npm login 编写npm包 初始化package.json并配置 npm init { "name": "包名", "version": "版本号", "description": "描述", "main": "入口文件", "scripts": { "test": "配置测试" }, // 配置git仓库 "repository": { "type": "git", "url": "git仓库地址" }, "keywords": [ "关键字" ], "author": "", "license": "MIT", "dependencies": { } } 发布 npm publish # 指定标签beta npm publish --tag beta 删除 npm

大 大苹果 2018/5/22 👍 0 ⭐ 0 💬 0
React、Redux和redux-thunk的简单应用

React、Redux和redux-thunk的简单应用

react-redux、redux connect、Provider,createStore 用法 // redux/index.js const ADD = 'add'; const SUB = 'sub'; export function counter(state = 0, action) { switch(action.type) { case ADD: return state + 1; case SUB: return state - 1; default: return state; } } // action export function add() { return {type: ADD}; } // action export function sub() { return {type: SUB}; } // index.js 入口 import React from 'react'; import Reac

大 大苹果 2018/5/22 👍 0 ⭐ 0 💬 0
JavaScript封装、继承和多态实现

JavaScript封装、继承和多态实现

封装(概念) 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。 继承(概念) 继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子

大 大苹果 2018/5/21 👍 0 ⭐ 0 💬 0
es6新类型之Symbol学习笔记(二)

es6新类型之Symbol学习笔记(二)

Symbol 全局注册Symbol实现Symbol的共享 使用Symbol()函数的上述语法不会创建整个代码库中可用的全局Symbol。 要创建跨文件甚至跨域的Symbol(每个域都有自己的全局作用域),请使用Symbol.for()和Symbol.keyFor()方法设置和检索全局符号注册表中的符号。 在对象上查找Symbol属性 Object.getOwnPropertySymbols()方法返回一个符号数组,并允许您在给定对象上查找符号属性。 请注意,每个对象都没有自己的符号属性进行初始化,因此除非您已经在对象上设置符号属性,否则此数组将为空。 属性 Symbol.length 长度属性值为0 Symbol.prototype 表示Symbol构造函数的原型 内置符号 除了自己的符号之外,JavaScript还有一些内置的符号,代表了内部语言行为,这些符号在ECMAScript 5以及之前没有向开发者公开。 这些符号可以使用以下属性进行访问: Iteration symbols Symbol.iterator 返回对象的默认迭代器,通常使用for ...

大 大苹果 2018/5/21 👍 0 ⭐ 0 💬 0
redux与redux-thunk的使用

redux与redux-thunk的使用

redux redux是一个可预测的状态容器,(区别于Wordpress framework - Redux Framework) 它可以帮助您编写在不同环境(客户端,服务器和本地)中运行一致并且易于测试的应用程序。 最重要的是,它提供了出色的开发者体验,例如结合时间旅行调试器进行实时代码编辑。 你可以结合react一起使用redux。或者其他任何的视图库,redux很小,包括依赖仅仅2kb。 安装 npm install --save redux # 补充包 # 也许你还要和react一起使用,并且需要开发工具 npm install --save react-redux npm install --save-dev redux-devtools 例子 import { createStore } from 'redux' /** * 这是一个reducer,它是一个具有(state,action)=>状态签名的纯函数。 * 它描述了动作如何将状态转换为下一个状态。 * 状态的形状取决于你:它可以是一个基元,一个数组,一个对象, * 甚至是Immutable.js

大 大苹果 2018/5/20 👍 0 ⭐ 0 💬 0
React、Fiux与redux的学习笔记

React、Fiux与redux的学习笔记

React React 是一个 View 层的框架,用来渲染视图,它主要做几件事情: 组件化利用 props 形成单向的数据流根据 state 的变化来更新 view利用虚拟 DOM 来提升渲染性能 前面说到 React 能够根据 state 的变化来更新 view,一般来说引起 state 变化的动作除了来自外部(如服务器),大部分都来自于页面上的用户活动,那页面上的用户活动怎样对 state 产生作用呢?React 中每个组件都有 setState 方法用于改变组件当前的 state,所以可以把更改 state 的逻辑写在各自的组件里,但这样做的问题在于,当项目逻辑变得越来越复杂的时候,将很难理清 state 跟 view 之间的对应关系(一个 state 的变化可能引起多个 view 的变化,一个 view 上面触发的事件可能引起多个 state 的改变)。我们需要对所有引起 state 变化的情况进行统一管理,于是就有了 Flux。 Flux Flux 是一种应用架构,或者说是一种思想,它跟 React 本身没什么关系,它可以用在 React 上,也可以用在别的框架上。前面说

大 大苹果 2018/5/20 👍 0 ⭐ 0 💬 0
es6新类型之Symbol学习笔记(一)

es6新类型之Symbol学习笔记(一)

Symbol Symbol()函数返回一个类型符号的值,具有暴露内置对象的几个成员的静态属性,具有公开全局符号注册表的静态方法,并且类似于内置对象类,但作为构造函数不完整,因为 它不支持“new Symbol()”语法。 从Symbol()返回的每个符号值都是唯一的。 符号值可以用作对象属性的标识符; 这是数据类型的唯一目的。 关于目的和用法的进一步解释可以在Symbol的词汇表中找到。 symbol 是原始数据类型 // JavaScript Demo: Symbol - Constructor const symbol1 = Symbol(); const symbol2 = Symbol(42); const symbol3 = Symbol('foo'); console.log(typeof symbol1); // expected output: "symbol" console.log(symbol3.toString()); // expected output: "Symbol(foo)" console.log(Symbol('foo') === Sym

大 大苹果 2018/5/18 👍 0 ⭐ 0 💬 0
nodejs之Buffer学习笔记(一)

nodejs之Buffer学习笔记(一)

类方法: Buffer.alloc(size[, fill[, encoding]])History版本变化v8.9.3指定无效的字符串填充将会被替换为0来填充缓冲区。v5.10.0新增于: v5.10.0参数参数字段类型说明sizeinteger指定新创建的Buffer大小fillstring | Buffer | integer指定填充Buffer的值。 Default: 0encoding<string>如果填充的是字符串,这个参数指定的就是字符串的编码。 默认: 'utf8'分配一个指定字节大小的新Buffer。如果填充未定义,则Buffer将被零填充。const buf = Buffer.alloc(5);// Prints: <Buffer 00 00 00 00 00>console.log(buf);buf.toString([encoding[, start[, end]]])新增于: v0.1.90encoding <string> 要解码的字符编码。 默认: 'utf8'start <integer> 开始解码的字节偏移量。 默认: 0end <integer>

大 大苹果 2018/5/10 👍 0 ⭐ 0 💬 0
vue中使用vuex

vue中使用vuex

首先是vuex的安装npm install vuex --save引入并引用vueximport Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)创建store.jsconst store = new Vuex.Store({ state: { count: 0 }, mutations: { increment (state) { state.count++ } }})现在,你可以通过 store.state 来获取状态对象,以及通过 store.commit 方法触发状态变更:store.commit('increment')引用store的两种方式,在组件中引用// 在组件中引用import store from 'store'通过在根实例中注册 store 选项,该 store 实例会注入到根组件下的所有子组件中,且子组件能通过 this.$store 访问到。const app = new Vue({ el: '#app', // 把 store 对象提供给 “st

大 大苹果 2018/5/2 👍 0 ⭐ 0 💬 0