something

图解 Promise 实现原理(一)—— 基础实现

﹥>﹥吖頭↗ 提交于 2020-04-06 14:02:57
本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/UNzYgpnKzmW6bAapYxnXRQ 作者:孔垂亮 很多同学在学习 Promise 时,知其然却不知其所以然,对其中的用法理解不了。 本系列文章由浅入深逐步实现 Promise,并结合流程图、实例以及动画进行演示,达到深刻理解 Promise 用法的目的。 本系列文章有如下几个章节组成: 图解 Promise 实现原理(一)—— 基础实现 图解 Promise 实现原理(二)—— Promise 链式调用 图解 Promise 实现原理(三)—— Promise 原型方法实现 图解 Promise 实现原理(四)—— Promise 静态方法实现 本文适合对 Promise 的用法有所了解的人阅读,如果还不清楚,请自行查阅阮一峰老师的 《 ES6入门 之 Promise 对象 》。 Promise 规范有很多,如 Promise/A,Promise/B,Promise/D 以及 Promise/A 的升级版 Promise/A+,有兴趣的可以去了解下,最终 ES6 中采用了 Promise/A+ 规范。所以本文的Promise源码是按照 Promise/A+规范 来编写的(不想看英文版的移步 Promise/A+规范中文翻译 )。 引子 为了让大家更容易理解

Something wrong with EnCase index search in Unallocated area

别等时光非礼了梦想. 提交于 2020-04-04 06:22:40
hi, My EnCase version is v7 and I found a terrible issue about index search in Unallocated area. Without Internet Evidence Finder I could not the truth of EnCase index search...Thanks God I use IEF to carve the evidence file and some webmail found..so I export those records as below Excel datasheet..guess what? I did index the evidence file and search same Simplified Chinese keywords in the Excel datasheet..no any hits found... Forensics is a strict science..such kind of mistakes are unacceptable..Guidence should think highly of Chinese market and do something to fix this issue as soon as

Something wrong with FTK's index search results

会有一股神秘感。 提交于 2020-04-04 06:17:48
My friend she told me last week that FTK could not "see" keywords in a plain text files when doing index search. That's very interesting. I used to trust the search results of FTK, and I think there must be something wrong . I have to do a test to see what's going on. A plain text file named "password.txt" is as below, and its code page is Traditional Chinese Big5. It makes sense that both FTK and EnCase could hit keyword "密碼" in that plain text file. Now the test result is not the same as what she told me, could I just say that she is wrong??? No, of course not, the test environment is on the

迪米特法则

泪湿孤枕 提交于 2020-03-23 17:23:13
1定义 迪米特法则又叫做最少知识原则,也就是说,一个对象应当对其他对象尽可能少的了解。不和陌生人说话。英文简写为: LoD。 2来源历史 1987年秋天由美国Northeastern University的Ian Holland提出,被UML的创始者之一Booch等普及。后来,因为在经典著作《 The Pragmatic Programmer》而广为人知。 3作用 一个软件实体应当尽可能少的与其他实体发生相互作用。每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。 迪米特法则的意义在于降低类之间的耦合。由于每个对象尽量减少对其他对象的了解,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。 迪米特法则不希望类之间建立直接的联系。如果真的有需要建立联系,也希望能通过它的友元类来转达。因此,应用迪米特法则有可能造成的一个后果就是:系统中存在大量的中介类,这些类之所以存在完全是为了传递类之间的相互调用关系——这在一定程度上增加了系统的复杂度。 4原理与实现 迪米特法则强调了一下两点: 一、从被依赖者的角度来说:只暴露应该暴露的方法或者属性,即在编写相关的类的时候确定方法/属性的权限。 //计算机类 public class Computer{ private void saveCurrentTask(){ //do

Perl中的执行上下文

微笑、不失礼 提交于 2020-03-14 11:28:25
perl中的上下文 在perl中,很多地方会切换上下文。所谓上下文,它的 重点在于同一个表达式出现在不同地方,得到的结果不同 。换句话说,同一个表达式,它表达的值不是固定的。这就像是同一个单词,在不同语境下的意思不同。 例如,运算操作符决定数值是一个数字还是一个字符串。 2 * 3 2 x 3 2 * 3 中的2和3都是数值,因为操作符 * 是算术运算符,它要求两边都是数字。而 2 x 3 中的2是字符串,3是数字,因为操作符 x 是这样要求的。 还有,对数组 @arr 的两种操作: @arr=qw{perl,python,shell}; print @arr,"\n"; # 返回:perlpythonshell print @arr."\n"; # 返回:3 使用逗号分隔 @arr 和 \n 是产生一个列表,这时的 @arr 会替换为该数组中的元素值。使用点号连接 @arr 和 \n ,这时点号要求两边的都是字符串,数组在这种环境下(标量上下文)返回的是它的元素个数,所以 @arr 返回一个数值(但其实是字符串)。 在perl解析表达式的时候,你要么希望它返回一个标量,要么希望它返回一个列表(其实还有很多种上下文,但至今无人知晓有多少种上下文,perl长老团也不知道)。所以perl中常见的两种上下文是: 标量上下文和列表上下文 ,除此之外还有一个很常见的上下文类型:空上下文

jQuery基本用法

允我心安 提交于 2020-03-10 11:09:26
在DOM加载完成后就可以可以对DOM进行操作 $(function() { $("input").click(function() { console.log(this.value) }) }) //其实这个就是jq ready()的简写,他等价于: $(document).ready(function() { //do something }) //或者下面这个方法,jQuer的默认参数是:“document”; $().ready(function() { //do something }) 修改CSS $("#jessie").html("测试一下").css({ "color":"pink", "font-size":"30px", "border":"1px solid red" }).width(300).height(200) 基本选择器 //ID选择器 $("#first").css("background","blue") //标签选择器 $("div").css("background","blue") //类选择器 $(".hehe").css("background","blue") //交集选择器 ("#first,.hehe,#last").css("background","blue") //交集选择器 $("p.hehe").css(

列表与数组 Perl入门第三章

╄→尐↘猪︶ㄣ 提交于 2020-03-07 20:22:42
列表List 是标量的有序集合。数组array则是存储列表的变量。数组/列表的每个元素element都是单独的标量变量,拥有独立的标量值。 1. 数组: 访问数组中的元素: $fred[0]="yaya";$fred[1]="yaya1";$fred[2]="yaya" ... $fred[99]=“last" 特殊的数组索引: $#fred fred数组最后一个索引值; fred[$#fred] ="last" $fred[-1] ="last" 2. 列表: 列表直接量: (1..5) #(1 ,2. 3, 4, 5) ($m..$n) #m n 之间的部分 (0, $#fred) #0 ~ 99 qw简写 # quoted word 加上单引号的单词,当作 单引号 内的字符串来处理。不能像双引号一样使用\n 和 $fred 替换。空白符(空格,制表符,换行符)会被抛弃。 qw( a b c) qw# a b c# qw! a b c ! 列表的赋值: 列表值赋给变量 ($a , $b , $c)=("m" , "n" , "t") 变量值交换 ($a ,$b)=($b ,$a) (fred[0] , fred[1], fred[2], fred[3]) = qw/a b c d/ @fred=qw/a b c d/ @stuff =(@fred , undef , @fred

26个Jquery使用小技巧(jQuery tips, tricks & solutions)

我只是一个虾纸丫 提交于 2020-02-23 04:45:10
前段时间发布了 Jquery 类库 1.4 版本,使用者也越来越多,为了方便大家对 Jquery 的使用,下面列出了一些 Jquery 使用技巧。比如有禁止右键点击、隐藏搜索文本框文字、在新窗口中打开链接、检测浏览器、预加载图片、页面样式切换、所有列等高、动态控制页面字体大小、获得鼠标指针的 X 值 Y 值、验证元素是否为空、替换元素、延迟加载、验证元素是否存在于 Jquery 集合中、使 DIV 可点击、克隆对象、使元素居中、计算元素个数、使用 Google 主机上的 Jquery 类库、禁用 Jquery 效果、解决 Jquery 类库与其他 Javascript 类库冲突问题。 具体如下: 1. 禁止右键点击 view plain copy to clipboard print ? 1. $(document).ready( function (){ 2. $(document).bind( "contextmenu" , function (e){ 3. return false ; 4. }); 5. }); 2. 隐藏搜索文本框文字 view plain copy to clipboard print ? 1. $(document).ready( function () { 2. $( "input.text1" ).val( "Enter your search

代码简洁之道(判断篇)

你说的曾经没有我的故事 提交于 2020-02-20 10:18:48
摘自: https://www.cnblogs.com/guangzan/p/12222370.html 代码简洁之道(判断篇) 第一个例子 copy if (state === 1) { return true } else if (state === 2) { return true } else if (state === 3) { return true } else if (state === 4){ return true } else { return false } 你首先想到的可能是 使用 switch case, 我们使用 switch case 来改写它: copy switch (state) { case 1: return true break; case 2: return true break; case 3: return true break case 4: return true break default: return false break } 看起来有些条理了, 但我们应对这类情况,可以将他进一步优化,观察发现: 都是判断 state 判断后都做了相同的事情 (return true) 我们用 Array.includes 来优化它: includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。

Java :: 双冒号使用

試著忘記壹切 提交于 2020-02-05 17:19:28
英文:double colon,双冒号(::)运算符在Java 8中被用作方法引用(method reference),方法引用是与lambda表达式相关的一个重要特性。它提供了一种不执行方法的方法。为此,方法引用需要由兼容的函数接口组成的目标类型上下文。 Method References You use lambda expressions to create anonymous methods. Sometimes, however, a lambda expression does nothing but call an existing method. In those cases, it’s often clearer to refer to the existing method by name. Method references enable you to do this; they are compact, easy-to-read lambda expressions for methods that already have a name. 参考oracle官网 您使用lambda表达式来创建匿名方法。然而,有时lambda表达式除了调用现有方法外什么也不做。在这些情况下,通过名称引用现有方法通常更清楚。方法引用使您能够做到这一点;它们是紧凑的