Javascript
WangminzeSpk
这个作者很懒,什么都没留下…
展开
-
nodejs 性能测试 benchmark
server.jsvar benchmark = require('benchmark');var suite = new benchmark.Suite;// 添加测试suite.add('RegExp', function() { /o/.test('Hello World');}).add('indexOf', function() { 'Hello World'.indexOf('o');}).on('cycle', function(e) { console.log(St.原创 2020-06-03 10:17:32 · 685 阅读 · 0 评论 -
JS 枚举类型
工厂模式:const ALL = 0;/** * 枚举工厂 */export function enumFactory(arr = []) { const TEMP_ENUM = { ALL: ALL, EXTRA: { [ALL]: { label: '全部', value: ALL }, }, OPTIONS: [{ label:...原创 2020-03-19 17:42:24 · 2941 阅读 · 0 评论 -
防抖与节流 理解
防抖:控制最小执行间隔时间,在 指定的时间内 如果 再次触发 则刷新定时器。连续触发只执行一次。节流:控制最小执行间隔时间,在 指定的时间内 如果 再次触发 则当前触发失效。连续触发至少执行一次,执行次数 = 触发的总时长 / 间隔时间。...原创 2020-03-18 19:01:05 · 385 阅读 · 0 评论 -
VSCode 对 Webpack 配置 resolve alias 的路径智能提示
项目根目录下创建:jsconfig.json{ "compilerOptions": { "baseUrl": "./", "paths": { "@hoc/*": ["src/hoc/*"] } }, "exclude": ["node_modules", "dist"]}原创 2020-02-29 14:18:54 · 1101 阅读 · 0 评论 -
Promise + Generator 实现 async await——《你不知道的Javascript 中卷》
function run(gen) { var args = [].slice.call(arguments, 1), it; // 在当前上下文中初始化生成器 it = gen.apply(this, args); // 返回一个Promise用于生成器完成 return Promise.resolve() .then(function...原创 2019-08-16 17:04:56 · 225 阅读 · 0 评论 -
call、apply、bind 的使用笔记
当第三方提供的回调参数是数组,我们想转成参数列表时:function funWithCB(cb) { var arr = [1, 2]; cb(arr);}funWithCB(Function.apply.bind(function(arg1, arg2) { console.log(arg1 + arg2); // 3}, null));// 与下面同理function ...原创 2019-08-12 15:12:00 · 107 阅读 · 0 评论 -
Promise 并发迭代笔录——《你不知道的Javascript-中卷》
// polyfill安全的guard检查if(!Promise.map) { Promise.map = function(vals, cb) { return Promise.all( vals.map(function(val) { return new Promise(function(resolve) {...原创 2019-08-12 11:57:16 · 199 阅读 · 0 评论 -
Promise 超时相关笔录——《你不知道的JavaScript-中卷》
// 用于超时一个Promise的工具function timeoutPromise(delay) { return new Promise( function(resolve, reject) { setTimeout(function(){ reject('Timeout'); }, delay); });}//...原创 2019-08-12 11:24:32 · 143 阅读 · 0 评论 -
JS 事件循环队列和任务队列——你不知道的JavaScript(中卷)
事件循环队列类似于一个游乐园游戏:玩过了一个游戏之后,你需要重新到队尾排队才能再玩一次。而任务队列(ES6)类似于玩过游戏之后,插队接着继续玩。...原创 2019-08-05 11:43:28 · 407 阅读 · 0 评论 -
JS 的数组操作
修改自身的操作有:pop、push、shift、unshift、reverse、sort、splice不修改自身的操作有:concat、join、slice原创 2019-08-05 10:48:18 · 95 阅读 · 0 评论 -
你不知道的JavaScript语法
1. 数字中的小数点42.toFixed(3); // SyntaxError42..toFixed(3); // “42.000”42.toFixed(3)是无效语法,因为点号【.】被视为数字常量【42.】的一部分,所以没有【.】属性访问运算符来调用toFixed方法;2. + 可以字符强转数字var c = '3.14';var d = 5+ +c; // 8.14...原创 2019-07-11 15:11:55 · 114 阅读 · 0 评论 -
Symbol 的作用
1. 避免暴露内部数据逻辑(function(_this) { const COLOR = Symbol(); const RED = Symbol(); const GREEN = Symbol(); const BLUE = Symbol(); _this.COLOR_ENUM = { [COLOR]: { [RED]...原创 2019-07-11 15:09:19 · 594 阅读 · 0 评论 -
Canvas 画环形进度条
JS代码如下:function draw(ctx, rate) { ctx.clearRect(0,0,300,300); ctx.beginPath(); ctx.strokeStyle = "gray"; ctx.arc(150, 150, 100, (1/3)*Math.PI, (2/3)*Math.PI, true); ctx.stroke(); c...原创 2019-07-11 11:52:02 · 195 阅读 · 0 评论 -
关于JS 中 this 的绑定规则
总的规律:this 的绑定取决于调用位置!1. 默认绑定(独立函数调用)。function foo() { console.log(this.a);}var a = 2;foo(); // 22. 隐式绑定(调用位置有上下文对象,如例子中的 obj)-》当函数引用有上下文对象时,隐式绑定规则会把函数调用中的 this 绑定到这个上下文对象。function foo...原创 2019-06-28 11:21:00 · 322 阅读 · 2 评论 -
JavaScript 继承(寄生组合式继承)
function prototypeInstance(superType) { function F(){} F.prototype = superType.prototype; return new F();}function inheritPrototype(subType, superType) { var prototypeIns = prototy...原创 2019-05-17 16:49:01 · 503 阅读 · 0 评论