xiaoka de blogs
【译】评估一个JS库你需要考虑的12件事
原文链接:The 12 Things You Need to Consider When Evaluating Any New JavaScript Library 水平有限,根据自己的理解进行删减和重排,有能力还是看原文比较好,我只是个小小的搬运工😜。 反观这些,当自己写一个库的时候,也需要思考下这些有没有做到。 正文开始: 完整因素 1、🕹️ 特性(Features) 2、🐞 稳定性
微信小程序使用小结
大概是一年前,做了第一个微信小程序。那时候小程序刚起步,很多功能也都不太完善,使用起来很鸡肋。经过这么长时间,微信小程序的数量达到100多万,对开发者的开发体验也好(la)了(ji)蛮(yi)多(jiu)。最近又做了些微信小程序,有必要重新认识下。 1、小程序整体架构 下面是来自网上的一张图片,显示了微信小程序的整个框架和交互过程。 从上面的架构可以看到,整个小程序分成两个模块独立运行,一个是V
web安全
1、数据流输入输出 我们可以从一个数据输入输出流中,查看web安全的整体是怎么样的。 123451. 如果在操作系统层上没处理好,比如Linux的Bash环境把“特殊数据”当做指令执行时,就产生了OS命令执行的安全问题,这段“特殊数据”可能长得如下这般:; rm -rf /;2. 如果在存储层的数据库中没处理好,数据库的SQL解析引擎把这个“特殊数据”当做指令执行时,就产生SQL注入这样的安全问题
理解JavaScript之函数创建过程
为了更好的了解JavaScript函数的执行,看了下ECMAScript标准有关函数的创建过程。 下面的伪代码展现了函数的创建算法。 12345678910111213141516171819202122232425262728293031323334353637383940414243// 解释了原型链最顶部的类型F = new NativeObject(); // property [[Cl
理解JavaScript之创建对象
翻看了之前的文章,有说到,如果有一个对象的访问链是这样的a.b.c,那么其实它可以用数组来表示,写为[a, b, c]。要达到a.b.c转为*[a, b, c]是比较简单的,只需要遍历a*的所有可枚举的属性,再push到一个数组里面。 好了,现在考虑这样一个场景,在一颗树中,我搜索出了c的路径为*[a, b, c],如何把它转化为一个对象a.b.c*? 为了解决这个问题,去复习了下对象的创建方式,
理解JavaScript之数组去重
在大量的数据处理中,我们经常会使用到数据去重,得到唯一数组,以便展示。下面来看看常用的几种数组去重的方式。 1、循环遍历 在这种方式中,通过源数组与目标数组进行比较,来判断源数组的元素在目标数组中是否唯一存在。上代码: 12345678910111213141516171819const sourceArray = ['1', 1, 1, '1', 2, 2
精通JavaScript正则之模板引擎
在前端的开发中经常会使用到模板引擎,前端渲染中比如前端框架Knockout、Vue和Angular(React的JSX不属于模板,它是一个带语法糖的手写 AST),在解析指令语法时都会使用对应的模板引擎进行解析,而基于Node.js进行渲染的EJS,DoTjs这些,原理也都是类似。 现在我们一步步来,看看它们是怎么实现的。 首先,我想它的使用方式是这样的: 12345678const templa