const

[Functional Programming] 1. Function modelling -- Combine functions

≡放荡痞女 提交于 2020-03-13 05:17:01
Let's say we have two fucntions: const toUpper = s => s.toUpperCase(); const exclaim = s => `${s}!`; We want to combine those. But function itself doesn't give us method to combine tow functions. Therefore we can create a Monoid to combine function: const Fn = run => ({ run, concat(otherFn) { } }) So 'Fn' take a 'run' function as arguement and because we want to combine different function, we need to implement the interface for monoid 'concat'. Inside 'concat' function, first, it should return 'Fn', so that we can compose later. const Fn = run => ({ run, concat(otherFn) { return Fn() } })

ES6中新加命令

拈花ヽ惹草 提交于 2020-03-13 00:59:34
1.2、let 和 const 命令   var     var 有一个问题,就是定义的变量有时会莫名奇妙的成为全局变量。例如这样的一段代码: 1 for(var i = 0; i < 5; i++ ) { 2 console.log(i); 3 } 4 console.log("循环外” + i);            这样的变量成了全局变量,造成了困扰。     可以看出,在循环外部也可以获取到变量i的值,显然变量i的作用域范围太大了,在做复杂页面时,会带来很大的问题。    let      let 所声明的变量,只在 let 命令所在的代码块内有效。我们把刚才的 var 改成 let 试试: for(let i = 0; i < 5; i++){ console.log(i); }console.log("循环外:" + i)     这样,就把变量的i的作用域控制在了循环内部。 const     const 声明的变量是常量,不能被修改,类似于java中final关键字 const a = 1; console.log("q = ", a); // 给a 赋值 a = 2; console.log("a = " , a);     可以看到,变量a的值是不能修改的。 1.3、字符串扩展   在ES6中,为字符串扩展了几个新的API:   includes()

webpack3.x 学习笔记

社会主义新天地 提交于 2020-03-12 19:22:30
学习文章: http://jspang.com/2017/09/16/webpack3-2/ webpack文档: https://doc.webpack-china.org/concepts/ 目录 安装webpack 监听和入口出口 服务和热更新 打包css文件 压缩js代码 打包html文件 图片大坑 增加babel支持(es6,es7语法转换) 常见报错集锦 安装webpack npm 初始化 npm init // 需要输入项目名称、版本号、项目描述、作者等等.. npm init -y // 选项都是默认内容,不用一个个输入,后续需要修改直接在package.json文件改就行了 *注:npm在国内下载安装模块太慢,可以换成cnpm(淘宝npm镜像) npm install -g cnpm --registry=https://registry.npm.taobao.org 本地安装 npm install --save-dev webpack npm install --save-dev webpack@<version> //说明: --save代表把这个模块保存到package.json里面, -dev代表用于开发环境 全局安装(不建议全局安装webpack,后面有坑) npm install --global webpack //安装 npm uninstall

阮一峰的redux教学

百般思念 提交于 2020-03-12 18:52:56
mobx后面再去了解。 http://www.ruanyifeng.com/blog/2016/09/redux_tutorial_part_one_basic_usages.html React 只是 DOM 的一个抽象层,并不是 Web 应用的完整解决方案 ,所以要配合React-redux (redux的一个react版本) 和redux相似的技术库:早期的 flux, Immutable, Rxjs,vue版的 vuex等。 你的应用有以下场景,可以考虑使用 Redux。 某个组件的状态,需要共享 某个状态需要在任何地方都可以拿到 一个组件需要改变全局状态 一个组件需要改变另一个组件的状态 发生上面情况时,如果不使用 Redux 或者其他 状态管理工具 ,不按照一定规律处理状态的读写,代码很快就会变成一团乱麻。你需要一种机制,可以 在同一个地方查询状态、改变状态、传播状态的变化 。 总之,不要把 Redux 当作万灵丹,如果你的应用没那么复杂,就没必要用它。另一方面,Redux 只是 Web 架构的一种解决方案,也可以选择其他方案。 Redux 的设计思想很简单 ,就两句话。 (1)Web 应用是一个状态机,视图与状态是一一对应的。 (2)所有的状态,保存在一个对象里面。 基本概念 store state Action Store 就是保存数据的地方,你可以把它看成一个容器

【转载】阿里高清方案原理

强颜欢笑 提交于 2020-03-12 18:48:25
一、代码原理: 1.根据dpr(设备像素比,比如dpr=2时,表示1个CSS像素由2X2个物理像素点组成),动态设置html中font-szie的值 2.同时根据设备DPR调整页面的缩放值,进而达到高清效果。 二、源码 'use strict'; /** * @param {Boolean} [normal = false] - 默认开启页面压缩以使页面高清; * @param {Number} [baseFontSize = 100] - 基础fontSize, 默认100px; * @param {Number} [fontscale = 1] - 有的业务希望能放大一定比例的字体; */ const win = window; export default win.flex = (normal, baseFontSize, fontscale) => { const _baseFontSize = baseFontSize || 100; const _fontscale = fontscale || 1; const doc = win.document; const ua = navigator.userAgent; const matches = ua.match(/Android[\S\s]+AppleWebkit\/(\d{3})/i); const

ES6语法:var、let、const的区别详解

夙愿已清 提交于 2020-03-12 15:46:14
今天来说说es6的语法,最基础的也就是var,let,const 的用法与区别了,我们来看看他们之间的恩怨情仇。 首先来说说var,这个只要是学过js的都知道,它是用来声明一个变量的,但是它在开发中也会遇到一些问题,比较难解决。先来看看下面的代码: var str="hello world"; ​ function testVar(){   var str="hello"; } testVar(); console.log(str); 这段代码的结果是 "hello world",这说明在var 申明的变量,即使是同样的名字,在不同的块中,在外层块中的变量优先级更高,也就是说,在外层优先使用并且只能使用当前块中的变量;而在他的内部块中的变量,比如说这个函数里面的str,他其实也是优先使用块内的str变量,会屏蔽掉外面的str变量,这是一点。再来看看下面一段代码 function variableHoisting(){   if(condition){     var test="hello javaScript";   }else{     console.log(test)     //这里可以访问到test,但是它是undefined,因为初始化为它赋值成了undefined   }   //这里也可以访问到test } 可能你会感到奇怪,我的var 申明的变量在if

【C++】error: passing ‘const xxx’ as ‘this’ argument discards qualifiers [-fpermissive]

ε祈祈猫儿з 提交于 2020-03-12 13:57:37
错误原因 将“const xxx”作为“this”参数传递会丢弃限定符 当函数参数为const的对象,需要给函数添加限定符const,使函数不改变该对象内容。 修改前 class UserProfile { public : enum ulevel { base , middle , high , expert } ; UserProfile ( ) = default ; UserProfile ( string login , ulevel = base ) ; bool operator != ( const UserProfile & rhs ) ; bool operator == ( const UserProfile & ) ; //错误处 string login ( ) { return _login ; } string user_name ( ) { return _user_name ; } int login_count ( ) { return _times_logged ; } int guess_count ( ) { return _guesses ; } int guess_correct ( ) { return _correct_guesses ; } double guess_average ( ) const ; string level

egg-sequelize 实现 增删改查

三世轮回 提交于 2020-03-12 11:53:30
app/service/diary.js 1.增 create // 新增文章 async create(params) { const { app } = this; try { const result = await app.model.Diary.create({ title: params.title, content: params.content, user_id: params.user_id }); return result; } catch(err) { console.log(err); return null; } } 2.删 destroy // 删除日志 async destroy(id) { const { app } = this; try { const diary = await app.model.Diary.findByPk(app.toInt(id)); return await diary.destroy(); } catch(err) { console.log(err); return null; } } 3.改 update // 更新日志 async update(params) { const { app } = this; params['id'] = app.toInt(params['id']); try { const

从数据库导出数据到word、excel、.txt

混江龙づ霸主 提交于 2020-03-12 09:22:17
以下是我最近写的一些关于从数据库导出数据到 word 、 excel 、 .txt 文本文件的代码,转自 http://martinyang2010.bokee.com/2598999.html using System; using System.Data; using System.Drawing; using System.Data.SqlClient; using Excel; using Word; using System.IO; namespace Common { /**/ /// <summary> /// 把数据导入到.doc、.txt、.xls文件中 /// </summary> public class Export { private const string DATAWORDPATH = @" C:\folder\doc\datadoc\ " ; private const string IMAGEWORDPATH = @" C:\folder\doc\imagedoc\ " ; private const string IMAGEPATH = @" C:\folder\image\ " ; private const string EXCELPATH = @" C:\folder\excel\ " ; private const string

标准库头文件:cstdio

穿精又带淫゛_ 提交于 2020-03-12 08:09:39
1.常用变量 FILE //类型,保存控制C I/O流所需的全部信息 fpos_t //类型,指定文件中的位置 size_t //sizeof 运算符返回的无符号整数类型 NULL //空指针常量 BUFSIZ //std::setbuf 所用的缓冲区大小 stdin //与输入流关联到 FILE* 类型表达式 stdout //与输出流关联的 FILE* 类型表达式 stderr //与错误输出流关联的 FILE* 类型表达式 EOF //拥有int类型和负值的整数常量表达式,表示流末尾 FOPEN_MAX //能同时打开的最大文件数 FILENAME_MAX //文件名称的最大长度 SEEK_SET //给std::fseek的参数,指示从文件起始寻位 SEEK_CUR //给std::fseek的参数,指示从当前文件位置寻位 SEEK_END //给std::fseek的参数,指示从文件尾寻位 2.常用操作 std::FILE* fopen( const char* filename, const char* mode );//打开文件,mode有r,w,a,r+,w+,a+,打开失败返回NULL int fclose( std::FILE* stream );//关闭文件,返回0表示成功 int fflush( std::FILE* stream );//清空缓冲区