10 2020 档案
摘要:colrm命令 colrm命令用于编辑源代码文件,脚本文件或常规文本文件中的文本,此命令从文件中删除选定的列,列定义为一行中的单个字符。索引总是从1开始,而不是0。如果同时指定了开始和结束,则它们之间的列包括开始和结束将被删除。如果只需要删除一列,则开始和结束必须相同。colrm也可以从stdin接
阅读全文
摘要:col命令 在很多UNIX说明文件里,都有RLF控制字符,当我们把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col命令则能有效滤除这些控制字符。 语法 col [options] 参数 -b, --no-backspaces: 过滤掉所有的控制字符,包括RLF和HRLF。 -f, --f
阅读全文
摘要:命令模式 命令模式Command Pattern是一种数据驱动的设计模式,其属于行为型模式,别名为动作Action模式或事务Transaction模式,命令模式将请求以命令的形式包裹在对象中,并传给调用对象,调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象对请求排队或者记录请
阅读全文
摘要:独一无二的出现次数 给你一个整数数组arr,请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的,就返回true;否则返回false。 示例 输入:arr = [1,2,2,1,1,3] 输出:true 解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1
阅读全文
摘要:valueOf与toString valueOf和toString是Object.prototype上的方法,在Js几乎所有的对象都会继承自Object,同样由于包装对象的原因,几乎所有的数据类型都能够调用这两个方法,无法调用的有例如null、undefined以及Object.create(nul
阅读全文
摘要:责任链模式 责任链模式Chain of Responsibility Pattern为请求创建了一个接收者对象的链,其对请求的发送者和接收者进行解耦,这种类型的设计模式属于行为型模式,在这种模式中,通常每个接收者都包含对另一个接收者的引用,如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接
阅读全文
摘要:Js中Symbol对象 ES6引入了一种新的基本数据类型Symbol,表示独一无二的值,最大的用法是用来定义对象的唯一属性名,Symbol()函数会返回symbol类型的值,该类型具有静态属性和静态方法,其静态属性会暴露几个内建的成员对象,它的静态方法会暴露全局的symbol注册,且类似于内建对象类
阅读全文
摘要:Vue路由懒加载 对于SPA单页应用,当打包构建时,JavaScript包会变得非常大,影响页面加载速度,将不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这就是路由的懒加载。 实现方式 Vue异步组件 Vue允许以一个工厂函数的方式定义你的组件,这个工厂函数会异步解析你
阅读全文
摘要:updatedb命令 updatedb创建或更新locate命令使用的数据库,如果数据库已经存在,则重用其数据以避免重新读取未更改的目录,updatedb通常由cron每天运行以更新默认数据库。 语法 updatedb [OPTION]... 参数 -f, --add-prunefs FS: 将空格
阅读全文
摘要:策略模式 策略模式Strategy Pattern也称为政策模式Policy Pattern,其定义一系列算法,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户而变化,这种类型的设计模式属于行为型模式。 描述 完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略
阅读全文
摘要:长按键入 你的朋友正在使用键盘输入他的名字name。偶尔,在键入字符c时,按键可能会被长按,而字符可能被输入1次或多次。 你将会检查键盘输入的字符typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回True。 示例 输入:name = "alex", typed = "
阅读全文
摘要:状态模式 状态模式State Pattern是一种对象行为型模式,其以面向对象的方式实现状态机,使用状态模式,通过将每个单独的状态实现为状态模式接口的派生类,并通过调用由模式的超类定义的方法来实现状态转换,来实现状态机,状态模式也可以解释为策略模式,它能够通过调用模式接口中定义的方法来切换当前策略。
阅读全文
摘要:观察者模式 观察者模式Observer Pattern是一种对象行为型模式,当定义的对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新,观察者模式又叫做发布-订阅Publish - Subscribe模式、模型-视图Model - View模式、源-监听
阅读全文
摘要:Js中Date对象 JavaScript的Date对象是用于处理日期和时间的全局对象,Date对象基于Unix Time Stamp,即自1970年1月1日UTC起经过的毫秒数。 描述 Date()构造函数能够接受四种形式的参数,分别为没有参数、Unix时间戳、时间戳字符串、分别提供日期与时间的每一
阅读全文
摘要:v-model数据绑定分析 v-model是Vue提供的指令,其主要作用是可以实现在表单<input>、<textarea>及<select>等元素以及组件上创建双向数据绑定,其本质上就是一种语法糖,既可以直接定义在原生表单元素,也可以支持自定义组件。在组件的实现中,可以配置子组件接收的prop名称
阅读全文
摘要:Js中Currying的应用 柯里化Currying是把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数且返回结果的新函数的技术,是函数式编程应用。 描述 如果说函数式编程中有两种操作是必不可少的那无疑就是柯里化Currying和函数组合Compose,柯里化其实就是流水线上的
阅读全文
摘要:read命令 read命令被用来从标准输入读取单行数据,这个命令可以用来读取键盘输入,当使用重定向以及默认选项的情况下,可以读取文件中的一行数据,此时read会将换行符视为行尾,但是可以使用-d选项更改。 语法 read [-ers] [-a array] [-d delim] [-i text]
阅读全文
摘要:模板方法模式 模板方法模式Template Method Pattern定义了如何执行某些算法的框架,一个抽象类公开定义了执行它的方法的方式或模板,其子类可以按需要重写方法实现,也可以调用将以抽象类中定义的方式进行,这种类型的设计模式属于行为型模式。 描述 模板方法模式是一种行为设计模式,用于定义操
阅读全文
摘要:两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 输入:head = [1,2,3,4] 输出:[2,1,4,3] 输入:head = [] 输出:[] 输入:head = [1] 输出:[1] 题
阅读全文
摘要:享元模式 享元模式Flyweight Pattern主要用于减少创建对象的数量,以减少内存占用和提高性能,其提供了减少对象数量从而改善应用所需的对象结构的方式,享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。享元模式运用共享技术有效地支持大量细粒度对象的复用,系统只使用少量的对象
阅读全文
摘要:Js中Array对象 JavaScript的Array对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。 描述 在JavaScript中通常可以使用Array构造器与字面量的方式创建数组。 console.log(Array(3)); // (3) [empty × 3] console.l
阅读全文
摘要:Vue路由History模式分析 Vue-router是Vue的核心组件,主要是作为Vue的路由管理器,Vue-router默认hash模式,通过引入Vue-router对象模块时配置mode属性可以启用history模式。 描述 Vue-router的hash模式使用URL的Hash来模拟一个完整
阅读全文
摘要:awk命令 Awk是一种用于高级文本处理的通用脚本语言,其主要用作报告和分析工具,与大多数其他程序性编程语言不同,Awk是数据驱动的,也就是说需要定义一组针对输入文本要执行的操作,然后其获取输入数据,对其进行转换,然后将结果发送到标准输出。 语法 awk [ -F fs ] [ -v var=val
阅读全文
摘要:反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。 你可以假设数组中的所有字符都是ASCII码表中的可打印字符。 示例 输入:["h","e","l","
阅读全文
摘要:Js中数组空位问题 JavaScript中数组空位指的是数组中的empty,其表示的是在该位置没有任何值,而且empty是区别于undefined的,同样empty也不属于Js的任何数据类型,并且在JavaScript版本以及各种方法对于空位的处理也有不同,所以建议避免在数组中出现空位。 描述 在J
阅读全文
摘要:组合模式 组合模式Composite Pattern又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象,通常依据树形结构来组合对象,用来表示部分以及整体层次,这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 描述 在软件工程中,组合模式是一种分区设计模式,组合模式描述了将以与对象
阅读全文
摘要:桥接模式 桥接Bridge Pattern又称为柄体Handle and Body模式或接口Interface模式,是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,其通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 描述 假如要绘制矩形、圆形、椭圆、正方形
阅读全文
摘要:Vue路由Hash模式分析 Vue-router是Vue的核心组件,主要是作为Vue的路由管理器,Vue-router默认hash模式,即使用URL的Hash来模拟一个完整的URL,当URL改变时页面不会重新加载。 描述 Hash符号即#原本的目的是用来指示URL中指示网页中的位置,例如https:
阅读全文
摘要:scp命令 scp命令用于Linux之间复制文件和目录,scp是secure copy的缩写,是Linux系统下基于ssh登陆进行安全的远程文件拷贝命令,使用scp可以实现从本地系统到远程系统、从远程系统到本地系统、在本地系统的两个远程系统之间的复制传输。scp是加密的,rcp是不加密的,可以认为s
阅读全文
摘要:宝石与石头 给定字符串J代表石头中宝石的类型,和字符串S代表你拥有的石头。S中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。 J中的字母不重复,J和S中的所有字符都是字母。字母区分大小写,因此a和A是不同类型的石头。 示例 输入: J = "aA", S = "aAAbb
阅读全文
摘要:Js中Math对象 Math是一个内置对象,它拥有一些数学常数属性和数学函数方法,Math用于Number类型,其不支持BigInt。 描述 Math不是一个函数对象,也就是说Math不是一个构造器,Math的所有属性与方法都是静态的,例如引用圆周率的写法是Math.PI,Math的常量是使用Jav
阅读全文