v8

lodash compact & concat

与世无争的帅哥 提交于 2020-08-14 16:23:36
前置 本篇随笔包含 _.compact 和 _.concat 及其依赖的工具函数。 你可能需要一些 JavaScript 基础知识才能看懂一些没有注释的细节。 compact _.compact(array) 创建一个新数组,包含原数组中所有的 非假值 元素。例如 false , null , 0 , "" , undefined , 和 NaN 都是被认为是“假值”。 /** * Creates an array with all falsey values removed. The values `false`, `null`, * `0`, `""`, `undefined`, and `NaN` are falsey. * * @since 0.1.0 * @category Array * @param {Array} array The array to compact. * @returns {Array} Returns the new array of filtered values. * @example * * compact([0, 1, false, 2, '', 3]) * // => [1, 2, 3] */ function compact(array) { let resIndex = 0 const result = [] if (array =

一文搞定深度优先搜索(DFS)与广度优先搜索(BFS)【含完整源码】

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-14 16:11:12
写在前面 :博主是一位普普通通的19届二本大学生,平时最大的爱好就是听听歌,逛逛B站。博主很喜欢的一句话 花开堪折直须折,莫待无花空折枝 :博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事,做自己以后不会留有遗憾的事,做自己觉得有意义的事,不浪费这大好的青春年华。博主写博客目的是记录所学到的知识并方便自己复习,在记录知识的同时获得部分浏览量,得到更多人的认可,满足小小的成就感,同时在写博客的途中结交更多志同道合的朋友,让自己在技术的路上并不孤单。 目录: 1.深度优先搜索(DFS) 深度优先搜索简介 深度优先搜索代码实现(C语言邻接矩阵完整代码) 2.广度优先搜索(BFS) 广度优先搜索简介 广度优先搜索的代码实现(C语言邻接矩阵完整代码) 1.深度优先搜索 1.深度优先搜索简介 以下图为例: 采用深度优先算法遍历这个图的过程为: 首先任意找一个未被遍历过的顶点,例如从 V1 开始,由于 V1 率先访问过了,所以,需要标记 V1 的状态为访问过; 然后遍历 V1 的邻接点,例如访问 V2 ,并做标记,然后访问 V2 的邻接点,例如 V4 (做标记),然后 V8 ,然后 V5 ; 当继续遍历 V5 的邻接点时,根据之前做的标记显示,所有邻接点都被访问过了。此时,从 V5 回退到 V8 ,看 V8 是否有未被访问过的邻接点,如果没有,继续回退到 V4 , V2 , V1

华为2020半年报:不退反进

被刻印的时光 ゝ 提交于 2020-08-14 09:28:12
配图来自Canva​ 近日,华为发布了2020年半年报。这一次发布半年报的时间,比通常在7月末才会发布的时间提前了不少。 其实,这份不同以往的财报,对于身陷囹圄的华为来说意义非凡。财报数据显示,华为在2020年上半年实现销售收入4540亿元,同比增长13.1%;净利润率为9.2%,通过华为公布的数据可以推出其净利润为417.68亿元。 华为在2020年半年报中的不退反进表现,无疑给华为打了一剂强心剂。不过在未知的2020年下半年里,华为还是不能掉以轻心。 不同以往的半年报 华为这一份无论是时间还是意义上,都不同以往的半年报里数据表明,华为2020年上半年的表现并不算差。 华为2020年半年报显示:华为实现销售收入为4540亿元,同比增长13.1%;净利润率为9.2%。当中,消费者业务收入为2558亿元,同比增长15.85%;运营商业务收入为1596亿元,同比增长8.94%;企业收入为363亿元,同比增长14.87%。 和2019年半年报相比,身处风波中心的华为确实受到了影响。 根据数据,华为在2019年上半年实现营收为4013亿元,同比增长23.2%;净利润率为8.7%。当中,消费者业务收入为2208亿元,运营商业务收入为1465亿元;企业业务收入为316亿元。 通过数据对比可以看出,2020年上半年华为营收增速出现下降,而净利润率相比有所提升。 同时

网络安全

我怕爱的太早我们不能终老 提交于 2020-08-14 08:07:14
XSS XSS(Cross site scripting) 跨站脚本攻击 网站存在漏洞,允许恶意用户注入恶意代码 例子,网站允许 img src 路径的拼接;写入可执行脚本 innerHTML 容易引发跨站脚本攻击 CSRF 什么是 CSRF CSRF(Cross-site request forgery) 跨站请求伪造 :攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的 一个典型的 CSRF 攻击有着如下的流程: 受害者登录a.com,并保留了登录凭证(Cookie)。 攻击者引诱受害者访问了b.com。 b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会默认携带 a.com 的Cookie a.com接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求 a.com以受害者的名义执行了act=xx 攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让a.com执行了自己定义的操作 CSRF的特点 攻击一般发起在第三方网站,而不是被攻击的网站。被攻击的网站无法防止攻击发生 攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作;而不是直接窃取数据 整个过程攻击者并不能获取到受害者的登录凭证

蛋白质降解技术中常用的蛋白酶(一)

喜夏-厌秋 提交于 2020-08-14 06:37:05
蛋白质谱分析前通过蛋白质降解技术对样品进行降解常用到的几种蛋白酶及其裂解特性如下表: 胰蛋白酶 胰蛋白酶是蛋白质谱分析中应用最广泛的蛋白酶。胰蛋白酶主要从猪或牛胰腺中获得,且易于纯化。用甲苯磺酰基-L-氨基联苯氯甲基酮(TCPK)对其进行改性,可以抑制糜蛋白酶的残留。胰蛋白酶一般在赖氨酸和精氨酸残基处对蛋白质进行裂解,除非这两种残基中的任意一种在C-末端方向上接的是脯氨酸残基。赖氨酸和精氨酸残基在许多蛋白质中的间距使得所得到的多数肽的长度都适用于质谱分析。这种“双重专一性”意味着胰蛋白酶能比仅切割一个氨基酸残基的蛋白酶更频繁地切割蛋白质。一般来说,一个50kDa的蛋白质会产生大约30个胰肽。 胰蛋白酶在蛋白质组学研究中的其中一个优势是它能在溶液中和“凝胶”消化过程中都表现出良好的活性。目前已经开发出了许多胰蛋白酶消化或蛋白质在溶液中、凝胶中和膜上印迹的方法,并得到了广泛的测试。此外,经常进行蛋白质组学分析的质谱实验室熟悉胰蛋白酶自溶片段,这些片段不可避免地作为胰蛋白酶消化方法的副产品出现。 谷氨酸蛋白酶(蛋白酶V8) 谷氨酸蛋白酶(Glu-C)是一种内切酶,其残基的羧基侧在醋酸铵或碳酸铵缓冲液中断裂。然而,在磷酸钠缓冲液中,这种酶既能在谷氨酸也能在天冬氨酸残基处断裂。Glu-C也可用于胶内消化。使用Glu-C的一个优点是它能表现出完全不同于胰蛋白酶的切割特异性

简单工厂模式与抽象工厂模式Factory

﹥>﹥吖頭↗ 提交于 2020-08-14 05:28:33
一 简单工厂模式 1 概述 工厂,顾名思义,是用来生产对象的,其好处是实现了类与类实例化之间的解耦,类实例化的过程可能是无比复杂的,当这种复杂实例化的类多起来之后,每次实例化都要重复的编写过程代码;有了工厂模式后,工厂隐藏了对象实例化的过程,用户只需通知工厂要生产的类,即可获得要生产的类; 2 使用示例 阅读笔记时,应先从产品(即main方法)出发,了解产物是如何运作的,从而反推设计; package cn.pattern.创建型.factory; import cn.pattern.创建型.factory.simple.producer.AppleFactory; import cn.pattern.创建型.factory.simple.producer.CherryFactory; import cn.pattern.创建型.factory.simple.product.Food; /** * 简单工厂模式应用 * * @author:wjm * @date:2020/6/30 23:02 */ public class Test { public static void main(String[] args) { /** * 需求:工厂隐藏对象复杂的实例化方法,只对外提供一个实例化对象的方法,便可以简单的使用对象工厂生产对象的实例; */ /** *

使用vuepress快速搭建个人博客(完整配置与源码)

筅森魡賤 提交于 2020-08-14 02:47:35
大家都说yarn比npm好,今天全局安装yarn尝试下 cnpm install -g yarn 安装完成后,查看yarn版本 yarn --version 项目搭建 安装vuepress yarn global add vuepress 初始化项目 创建项目目录 blog mkdir blog cd blog 初始化 yarn init -y 初始化完成后, 会创建一个package.json。在package.json中, 配置启动命令 { "name": "blog" , "version": "1.0.0" , "main": "index.js" , "license": "MIT" , "scripts" : { "docs:dev": "vuepress dev docs" , "docs:build": "vuepress build docs" } } 创建docs目录, 主要用于放置我们写的 .md 类型的文章以及 .vuepress 相关的配置 mkdir docs 接着在docs文件夹中创建 .vuepress 文件夹 cd docs mkdir .vuepress 页面具体内容配置 新建一个总的配置文件 config.js , 这个文件的名字是固定的. cd .vuepress touch config.js 我用windows,没有touch命令

单例模式Singleton

天涯浪子 提交于 2020-08-14 01:49:49
一 概述 单例模式应用广泛,故这里只介绍常见的四种单例运用 二 使用示例 单例模式一: package cn.xair.manager.handler; /** * 单例模式举例 * * @author:wjm * @date:2020/5/26 15:43 */ public class TestSingleton { /** * 单例模式(痴汉式) * 建议直接用痴汉式即可,饿汉式、懒汉式在现在这个内存时代不需要考虑 */ public static final TestSingleton testSingleton = new TestSingleton(); /** * 构造方法私有化 */ private TestSingleton() { } /** * 提供一个公开获取对象的方法 */ public static TestSingleton getInstance() { return testSingleton; } } class Test { public static void main(String[] args) { //使用该单例模式的方法: TestSingleton testSingleton = TestSingleton.getInstance(); } } 单例模式二: package cn.xair.manager.handler;

欧拉图 欧拉回路 欧拉通路 Euler

我的梦境 提交于 2020-08-13 18:31:15
欧拉图 本文链接: http://www.cnblogs.com/Ash-ly/p/5397702.html 定义: 欧拉回路:图G的一个回路,如果恰通过图G的每一条边,则该回路称为欧拉回路,具有欧拉回路的图称为欧拉图。欧拉图就是从图上的一点出发,经过所有边且只能经过一次,最终回到起点的路径。 欧拉通路:即可以不回到起点,但是必须经过每一条边,且只能一次。也叫"一笔画"问题。 性质:    欧拉回路:一个欧拉回路,删掉一个点,仍然是一个欧拉回路。从一个欧拉回路拖走一个小欧拉回路,结果也是一个欧拉回路。 判定(充要):   欧拉回路:1: 图G是连通的,不能有孤立点存在。        2: 对于无向图来说度数为奇数的点个数为0; 对于有向图来说每个点的入度必须等于出度。   欧拉通路:1: 图G是连通的,无孤立点存在。        2: 对于无向图来说,度数为奇数的的点可以有2个或者0个,并且这两个奇点其中一个为起点另外一个为终点。 对于有向图来说,可以存在两个点,其入度不等于出度,其中一个出度比入度大1,为路径的起点;另外一个入度比出度大1,为路径的终点。 算法(求欧拉回路): Fleury算法: 设图G是一个无向欧拉图,则按照下面算法求欧拉回路: 1:任取G中一个顶点v0,令P0 = v0. 2:假设沿Pi = v0e1v1e2v2……eivi 走到了顶点 vi

node进程间通信

血红的双手。 提交于 2020-08-13 06:33:46
作为一名合格的程序猿/媛,对于进程、线程还是有必要了解一点的,本文将从下面几个方向进行梳理,尽量做到知其然并知其所以然: 进程和线程的概念和关系 进程演进 进程间通信 理解底层基础,助力上层应用 进程保护 进程和线程的概念和关系 用户下达运行程序的命令后,就会产生进程。同一程序可产生多个进程(一对多关系),以允许同时有多位用户运行同一程序,却不会相冲突。 进程需要一些资源才能完成工作,如CPU使用时间、存储器、文件以及I/O设备,且为依序逐一进行,也就是每个CPU核心任何时间内仅能运行一项进程。 进程与线程的区别:进程是计算机管理运行程序的一种方式,一个进程下可包含一个或者多个线程。线程可以理解为子进程。 摘自wiki百科 也就是说,进程是我们运行的程序代码和占用的资源总和,线程是进程的最小执行单位,当然也支持并发。可以说是把问题细化,分成一个个更小的问题,进而得以解决。 并且进程内的线程是共享进程资源的,处于同一地址空间,所以切换和通信相对成本小,而进程可以理解为没有公共的 包裹容器 。 但是如果进程间需要通信的话,也需要一个公共环境或者一个媒介,这个就是操作系统。 进程演进 我们的计算机有单核的、多核的,也有多种的组合方式: 单进程 因为是一个进程,所以某一时刻只能处理一个事务,后续需要等待,体验不好 多进程 为了解决上面的问题,但是如果有很多请求的话,会产生很多进程