🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 链滴笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

JavaScript - 是否为流

2020-06-17 描述检查给定的参数是否为一个流。提示首先检查参数是否不等于 null 其次使用 typeof 检查参数是否为 object 类型,其 pipe 属性是否为 function 类型代码 constisStream=val=>val!==null&&typeofval==='object'&&typeofval.pipe==='function';示例检测 fs.createReadStream()是否为流

JavaScript - 是否为可读流

2020-06-16 描述检查给定参数是否为可读流。提示首先检查参数是否不等于 null 其次使用 typeof 检查参数是否为 object 类型,其 pipe 属性是否为 function 类型最后还需要使用 typeof 检查_read 和_readableState 属性是否分别为 function 和 object 代码 constisReadableStream=val=>val!==null&&typeofval==='ob

JavaScript - 是否为双工流

2020-06-15 描述检查给定的参数是否为双工流(可读和可写)。提示首先检查参数是否不等于 null 其次使用 typeof 检查参数是否为 object 类型,其 pipe 属性是否为 function 类型最后还需要使用 typeof 检查_read,_write 和_readableState,_writableState 属性是否分别为 function 和 object 代码 constisDuplexStream=val=

Deno 1.0 发布,与 Node 相比的 10 大优缺点

2020-06-11&2020-06-12 背景动态语言的编写让开发者不必担心内存管理或系统构建之类的细节,可以快速简洁地将复杂的系统链接在一起。JavaScript 做为使用最广泛的动态语言,在近几年又通过了 ECMA 标准组织进行了持续严谨的改进。我们有理由相信无论在浏览器环境中还是作为独立进程,JavaScript 都将是动态语言中的自然选择。在该领域中,Node.js 被证明是一个非常成功的软件平台。但

JavaScript - 根据 SHA-256 算法返回哈希值

2020-06-10 描述使用 SHA-256 算法为指定的字符串创建一个哈希。返回 Promise。提示使用 cryptAPI 为给定的值创建一个哈希使用 setTImeout 防止耗时阻塞使用 Promise 为用户提供友好的接口代码 constcrypto=require('crypto');consthashNode=val=>newPromise(resolve=>setTimeout(()=>resolve(

JavaScript - 当前进程的命令中是否带有指定参数

2020-06-09 描述检查运行当前进程的命令中是否包含指定的参数。提示使用 Array.prototype.every()和 Array.prototype.includes()来检测 process.argv 中是否包含所有指定的参数使用正则表达式来检测指定的参数中是否以-或者--为前缀开头,并相应的为他们添加参数代码 consthasFlags=(...flags)=>flags.every(flag=

JavaScript - 创建目录

2020-06-08 描述当给定的目录不存在时,就创建一个。提示使用 fs.existsSync()检查目录是否存在不存在的话就使用 fs.mkdirSync()创建代码 constfs=require('fs');constcreateDirIfNotExists=dir=>(!fs.existsSync(dir)?fs.mkdirSync(dir):undefined);示例创建一个 test 目录:cre

JavaScript - 多彩的控制台

2020-06-05 描述在文本中添加特殊字符使其在控制台中可以打印出彩色的字符串(需配合 console.log()使用)。提示使用模版字符串将特殊字符放入适当的颜色代码中想要使用背景色,可以在字符串的末尾添加一个特殊字符用来进行背景色的设置代码 constcolorize=(...args)=>({black:`\x1b[30m${args.join('')}`,red:`\x1b[31m${args

JavaScript - 字符串进行 base-64 编码

2020-06-04 描述创建一个 base-64 编码的 ASCII 字符串,需将 String 对象中的每一个字符都视为二进制字节数据。提示使用二进制编码为给定的字符串创建一个 Buffer 使用 Buffer.toString('base64')返回编码后的字符串代码 constbtoa=str=>Buffer.from(str,'binary').toString('base64');示例编码以下字符串:btoa

JavaScript - 解码 base-64 字符串

2020-06-03 描述将一个使用 base-64 编码的数据字符串进行解码。提示为使用 base-64 编码的字符串创建一个 Buffer 使用 Buffer.toString('binary')返回解码后的字符串代码 constatob=str=>Buffer.from(str,'base64').toString('binary');示例解码以下字符串:atob('Zm9vYmFy');//'foobar'返

JavaScript - 求两个向量之间的距离

2020-06-02 描述返回两个向量之间的距离。提示使用 Array.prototype.reduce(),Math.pow()和 Math.sqrt()计算两个向量之间的欧几里得距离代码 constvectorDistance=(x,y)=>Math.sqrt(x.reduce((acc,val,i)=>acc+Math.pow(val-y[i],2),0));示例求以下两个向量之间的距离:vector

JavaScript - 求两个向量之间的角度

2020-06-01 描述返回两个向量之间的角度(θ)。提示使用 Array.prototype.reduce(),Math.pow()和 Math.sqrt()分别计算每一个向量的模使用 Array.prototype.reduce()计算两个向量的内积使用 Math.acos()和公式\vec{a}\cdot\vec{b}=|\vec{a}|\,|\vec{b}|\cos\theta\;计算角度θ代码 co

JavaScript - 是否为数字

2020-05-29 描述如果给定的值为一个数字就返回 true,否则的话返回 false。提示使用!isNaN()和 parseFloat()组合检查参数是否为数字使用 isFinite()检查数字是否为无限使用 Number()进行强制检测代码 constvalidateNumber=n=>!isNaN(parseFloat(n))&&isFinite(n)&&Number(n)==n;示例判断是否为数字:v

JavaScript - 获取安全整数

2020-05-28 描述将一个值转换为安全整数。提示使用 Math.max()和 Math.min()获取最接近的安全值使用 Math.round()将其转换为整数代码 consttoSafeInteger=num=>Math.round(Math.max(Math.min(num,Number.MAX_SAFE_INTEGER),Number.MIN_SAFE_INTEGER));示例将下列值转换为安全整

JavaScript - 添加序数后缀

2020-05-27 描述为一个数字添加序数后缀。提示使用模运算符(%)获取个位和十位的值找出匹配的序数后缀如果模运算结果在 11-19 中,则使用 th 代码 consttoOrdinalSuffix=num=>{constint=parseInt(num),digits=[int%10,int%100],ordinals=['st','nd','rd','th'],oPattern=[1,2,3,4],tP

JavaScript - 使用千分位符号表示数字

2020-05-26 描述将一个数字转换为使用千分位符号分割的字符串。提示使用 Number.prototype.toLocaleString()将数字转换为使用千分位符号分割的字符串代码 consttoDecimalMark=num=>num.toLocaleString('en-US');示例将下列数字转换为使用千分位符号分割的字符串:toDecimalMark(12305030388.9087);/

JavaScript - 格式化货币

2020-05-25 描述根据数字返回指定的货币格式。提示使用 Intl.NumberFormat 对国家/货币进行敏感格式化。代码 consttoCurrency=(n,curr,LanguageFormat=undefined)=>Intl.NumberFormat(LanguageFormat,{style:'currency',currency:curr}).format(n);示例获取下列数字对应

JavaScript - 乘方之和

2020-05-21 描述返回从 start 到 end(包含两端)中所有数字的乘方之和。提示使用 Array.prototype.fill()创建一个目标范围内包含所有数字的数组使用 Array.prototype.map()和指数运算符(**)对 power 进行计算使用 Array.prototype.reduce()将计算结果进行相加第二个参数 power 的默认值为 2 第三个参数 start 的默认值为 1 代码 cons

Electron 9.0.0 升级注意事项

2020-05-22Electron9.0.0 已经发布了!该版本包含了升级、bug 修复和一些新特性。对 Chromium83,V88.3 和 Node.js12.14 进行了升级,为拼写检查器集成了一些新的 API,启用了 PDF 查看器,对 Linux 上的窗口事件处理进行改进等。更多特性和修改可前往 9.0.0 发布公告进行查看。重大修改当使用不带 enableRemoteModle:true 的 remot 时进行弃用警告

JavaScript - 根据特定条件求和

2020-05-20 描述迭代数组中的每一个元素,使用提供的方法进行计算,并将最终结果求和。提示使用 Array.prototype.map()对每一个元素进行迭代,返回通过 fn 计算的结果使用 Array.prototype.reduce()将上一步的计算结果进行累加,初始值为 0 代码 constsumBy=(arr,fn)=>arr.map(typeoffn==='function'?fn:val=>val