摘要: 查看了《云制造》官网源码,为其mega菜单的巧妙实现打call。 其另辟蹊径,采取父级主控分支的方法,仅对父级“增加/删除”控制标识,从而控制子层显示。 ——学无止境,保持好奇。May stars guide your way. 阅读全文
posted @ 2019-02-18 11:42 sophel 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 1.iterator迭代器必须保证其遍历终止条件可控,否则会形成死循环demo: 因为在next方法里忘记index++,导致永远无法return "{value:undefined,done:true}",而for...of底层是通过“done:true”来判断遍历结束的,就形成死循环,不断遍历第 阅读全文
posted @ 2019-01-23 11:37 sophel 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 1.再次clear Timer定时器的作用 setTimeOut绝非是传统意义上的“sleep”功能,它做不到让主线程“熄火”指定时间,它是用来指定:某个回调在固定时间后插入执行栈!(实际执行时间略长于这个固定时间) 2.js或nodejs想"sleep"主线程怎么做? 可以自定义sleep休眠函数 阅读全文
posted @ 2019-01-19 17:38 sophel 阅读(1805) 评论(0) 推荐(0) 编辑
摘要: 对异常的捕获和处理是提高程序鲁棒性的一个重要方式,即使在javascript/nodejs等看似“很难写出bug”的弱类型语言里,异常捕获处理仍至关重要,这主要是因为: 1.在一个代码块里,如果程序运行过程中自动、或主动(new Error/Exception)生成异常/错误后,若不主动去try.. 阅读全文
posted @ 2019-01-19 14:17 sophel 阅读(12240) 评论(0) 推荐(1) 编辑
摘要: Vscode版本:1.30.2,设置方法:file→preference→settings,剩余设置如下图。 阅读全文
posted @ 2019-01-18 10:39 sophel 阅读(5451) 评论(0) 推荐(0) 编辑
摘要: 话不多少,直接上源码吧: modA.js: modB.js: main.js 运行结果如下: 刚开始学习和阅读上述代码,是有点觉得晕晕乎乎,如果A与B存在相互依赖、相互引用关系,不就形成了一个闭环或者说死循环?那程序怎么会继续解析呢?很显然,运行结果告诉我们,nodejs引擎有自己的一套处理循环引用 阅读全文
posted @ 2019-01-15 16:38 sophel 阅读(4152) 评论(0) 推荐(0) 编辑
摘要: 在学习ES6函数一章时,发现了一个有意思的现象,原文描述如下: 这段话主要state了3个事实: ①函数参数有默认值时,会在声明初始化阶段形成一个单独的作用域 ②这个作用域在初始化结束后消失 ③没默认值的情况下,没有①②的现象发生。 这就很有意思了,我们一般说函数作用域,一般就是和全局作用域、局部作 阅读全文
posted @ 2018-12-29 11:57 sophel 阅读(1003) 评论(0) 推荐(0) 编辑
摘要: 偶然看到一个网上一个题目: Q: 输出什么? 我觉得很简单啊: undefined; function x(){}; 然鹅,事情并不是这样的: 很显然,两次都打印出了x变量的真实指向→函数体,为什么呢? 为此,我又尝试了函数表达式,结果又是这样的: 这又是为什么呢?于是上网查阅了相关知识和编程指南, 阅读全文
posted @ 2018-12-28 10:45 sophel 阅读(710) 评论(0) 推荐(0) 编辑
摘要: 因为es6在node中用的比较频繁,最近在按计划根据阮一峰的es6教程从头开始学习一遍, 第一步遇到的就是“看似非常熟悉”的let小伙伴,核心character如下: 即:let变量的作用域只在块内。在global全局的if/while等块级语句里面实践了一下,的确是OK的,比var全局挂好多了,直 阅读全文
posted @ 2018-12-20 17:14 sophel 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 先来一张图: 线程与进程的区别: 1、线程是进程的更小分支,轮询调度机制类似CPU对多个进程的轮询,其余特点比较如下: 并发与并行的区别: 1.并行必须是基于多道的(即多核/多CPU),这样多个CPU可以并行处理事务,按照上图的时间轮询,很可能多个CPU在同一时间片在轮询处理同一进程的不同线程。 2 阅读全文
posted @ 2018-12-18 11:04 sophel 阅读(228) 评论(0) 推荐(0) 编辑