![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
放逐的程序猿
背负着漫无放逐的罪恶,怀恋当时的感动
展开
-
JavaScript 函数,面向对象?
这样,我们使用一个对象来存储校验的一些方法,使用 checkForm.checkName() 就行,可以作为一个通用的方法(公共方法),不单单是登录,任何需要用到校验的地方都可以引入使用,但是又有问题,若当前不满足时,动态的添加一个 checkForm.checkPhone = function () { // todo: } 这样会影响到全局,因为是同一个对象来的🤣 下面这种方式也同样会面临这种问题。这样写,当然,功能是实现了,但是这样不外乎会在内存中多开辟了不必要的空间,我们实际上可以这样来写。原创 2024-01-26 17:37:39 · 411 阅读 · 0 评论 -
css 中使用 object-fit 来对图片做处理
object-fit:图片显示方式/* 关键属性 */object-fit: fill;object-fit: contain;object-fit: cover;object-fit: none;object-fit: scale-down;/* 全局属性 */object-fit: inherit;object-fit: initial;object-fit: unset;fill被替换的内容大小可以填充元素的内容框。 整个对象将完全填充此框。 如果对象的高宽比不匹配其框的原创 2022-04-12 08:42:14 · 617 阅读 · 0 评论 -
将传入数值转成00:00的形式
前面在通过时间把秒转换为分钟的过程中用到的,代码如下: formatTime(time){ if (isNaN(time)) return false; let rd = Math.round; let _arr = []; let val = Number(rd(time) / 60).toFixed(2).toString().split('.'); let f = val[0]; let m = rd(val[1] * 0.6); _ar原创 2022-04-08 08:16:00 · 192 阅读 · 0 评论 -
typescript 函数类型为空检查
type NonNull = string | number | null | undefined// 使用关键字 NonNullable 来将类型包含起来,就能有效的将 type 类型中的 null 跟 undefined 剔除function showType(args: NonNullable<NonNull>) { console.log(args);}此时调用函数时,参数类型提示只能是 string | number 类型// 定义类型 K 是 T 中的属..原创 2022-03-19 08:22:08 · 2015 阅读 · 0 评论 -
typescript 高级类型
常用的 ts 中定义类型我们一般会使用到 type 或者是 interfacetype 中可以定义联合类型,如type A = { name:string; age:number}type B = { id:number; sex:string;}// 这就是联合类型type C = A & B// 这里在定义 user 的类型是 C 时就必须要实现 name、age、id、sex 属性const user:C = {}..原创 2022-03-17 12:31:56 · 649 阅读 · 0 评论 -
js 常用继承
在我们前端来说不应该出现继承,继承一般只是针对后端语言,如java,c++来说,主要是类的继承,正所谓的多态,前端却没有了类的概念,何谈继承?(es5)前面我们讲到继承,要知道JavaScript的强大,没有什么是做不到的,虽然没有后端语言的那么强大,但是该有的东西都还是有的。话不多说,上代码。第一种方式,call借用function A(){ this.name = 'jack';}function B(){ this.age = 23; A.call(this);//这里运用ca原创 2022-03-16 08:01:14 · 1431 阅读 · 0 评论 -
typeof 对象类型检验
在日常写函数的时候,我们常常会写到函数,像这样const result1 = { a: 3, hello :'world'}// 这里屋发断定 o 中是否一定有 name 属性function get(o: object, name: string) { return o['name']}get(result1, 'xx')在 ts 中编辑器将会报 这样的错误可以将通过// 通过泛型及 keyof 的方式来约束 泛型 K 一定是属于 泛型 T 的属性funct原创 2022-03-15 08:40:26 · 147 阅读 · 0 评论 -
js检查number是整型还是浮点
在js中,对于一个弱语言来说,那是相当弱的,对于数据类型来说并没有分的那么的仔细,比如我们判断一个数据是否是数字,我们通常使用isNaN来判断,但是,在服务端来说的话通常我们对于数字来说还有整型跟浮点型,浮点型还分单精度跟双精度,总之就是比较复杂的,那我们在js端语言如何去判断数字是整型还是浮点型呢。function isInt(num) { return typeof num === 'number' && num % 1 === 0;}不错,首先我们通过i..原创 2022-03-15 08:21:32 · 1044 阅读 · 0 评论 -
typescript 装饰器
ts 中装饰器用于在构造函数参数或是方法中使用 @ 表示// 这里用到 reflect-metadata 反射import "reflect-metadata"// 定义装饰器 接收一个参数 function inject(serviceIdentifier: string) { return function (target: Object, targetKey: string, index: number) { // 反射定义数据元 Reflect.defineMeta原创 2022-03-14 21:55:50 · 871 阅读 · 0 评论 -
typescript Interface 接口
interface 与 type 有什么区别呢/** * 1.interface 和 type 区别 * 相同点: * 1-1. 都可以描述一个对象或者函数 * 1-2. 都允许进行扩展 * 不同点: * 2-1. type 声明基本类型别名、联合类型、元组等 * 2-2. typeof 获取实例对象 * 2-3. interface 可以合并 *//** * 1. 有关后台接口的,愿意使用interface * 2. 第三方的和开发的sdk 如 vue * 3. 前端的库原创 2022-03-14 09:40:32 · 88 阅读 · 0 评论 -
抽象类 - abstract
// 抽象类/** * 1. 抽象类可以具体实现,也可以定义抽象方法 * 2.方法修饰符 * public 共有的 任何地方都可以访问到 * private 私有的 不能在类的外部使用,只能在内部使用 * protected 受保护的 子类中可以使用 */abstract class Animate { abstract makeSound(): void; protected move(): void { console.log('动物移动了'); }}// .原创 2022-03-13 23:16:27 · 391 阅读 · 0 评论 -
typescript 元组
元组简介原创 2022-03-13 22:17:14 · 1233 阅读 · 0 评论 -
解读字符串replace
简单的replace,一个小小的replace,其实用处还大着哩,首先想着的便是替换了,的确,这方法的主要用途就是替换str.replace(regexp|substr, val|function) val:这里的val可以是一个字符串,也可以是一个回调函数(当是回调函数的时候我们就可以用它来做更多的事了) 该方法会返回操作后的值,但并不会修改原有的字符串原字符串不会改变 我们在使用replace的时候使用正则reg来匹配替换的时候,我们可以使用/...原创 2022-03-13 08:07:56 · 892 阅读 · 0 评论 -
karma-jasmine单元测试相关函数及其用法介绍
(1)细则套件SuitesSuite表示一个测试集,以函数describe(string, function)封装。describe函数是Jasmine套件定义的一个全局函数,所以可以在测试中直接调用。describe()函数带有两个参数,一个字符串,一个函数。字符串是待建立的细则(spec)套件名称或者描述,函数封装了测试套件。可以嵌套这些describe()函数,这样我们可以创建一个测试树来执行那些在测试中设置的不同条件。如:describe('Unit test: MainControlle.原创 2022-03-12 09:39:55 · 545 阅读 · 0 评论 -
ES6 中的 Proxy
通常我们说的proxy就是代理,在es6中也是一样,同样作为代理,当我们在使用对象再其他方面时,这变会显得很方便通常我们说的proxy就是代理,在es6中也是一样,同样作为代理,当我们在使用对象再其他方面时,这变会显得很方便 简述其中的要领,比如,在一些程序设计中,经常会用到的,用它来做拦截,非常简洁//proxyconstobj=newProxy({},{//将获取值时将会调用该方法get(target,k...原创 2022-03-10 08:43:38 · 969 阅读 · 1 评论 -
常用set(散列),非es6(set)
列表原创 2022-03-09 15:44:22 · 85 阅读 · 0 评论 -
js 函数 AOP 切片
/* * @Descripttion: 切片 * @Author: junhuafly * @Date: 2019-12-23 13:51:58 * @LastEditors : junhuafly * @Email: junhuafly@163.com * @LastEditTime : 2019-12-23 14:00:31 */Function.prototype.first = function(first) { let _this = this; return .原创 2022-03-06 07:39:01 · 509 阅读 · 0 评论 -
前端简单笔记
前端笔记,简单记录与整合原创 2015-06-09 16:51:37 · 667 阅读 · 0 评论 -
常用数据类型之列表
class List{ constructor() { this.listSize = 0 this.pos = 0; this.dataStore = []; } clear() { delete this.dataStore this.dataStore = [] this.listSize = this.pos = 0 } insert(el, after) {.原创 2022-03-06 07:33:09 · 181 阅读 · 0 评论 -
柯理化 求和
currying 又称部分求值。一个 currying 的函数首先会接受一些参数,接受了这些参数之后, 该函数并不会立即求值,而是继续返回另外一个函数,刚才传入的参数在函数形成的闭包中被保 存起来。待到函数被真正需要求值的时候,之前传入的所有参数都会被一次性用于求值。/* * @Descripttion: 柯理化 结构? * @Author: junhuafly */// 柯理化var curring = function (fn) { let args = [] // 定义..原创 2022-02-17 10:00:15 · 131 阅读 · 0 评论 -
typescript 结构化
// 结构化const foo15 = { a: 123, b: 456}foo15.a = 24console.log(foo15);const bar = [1, 2, 3]// bar[0]='332' // errorbar[0] = 33bar[7] = 66console.log(bar);// 解构 const foo16 = { a: 123, b: 456}let { a, b } = foo16console.log({ a, b ..原创 2022-02-17 09:57:34 · 616 阅读 · 0 评论 -
Typescript 泛型归纳
typescript 泛型 说明原创 2022-02-16 10:57:33 · 291 阅读 · 0 评论 -
简单实用浏览器indexDB
之前在做项目的过程中,偶有用到indexDB来做缓存,后面就基本上使用的localstrage,恩,其实indexDB也是挺好使用的,可以去看看张鑫旭的这几篇文章https://www.zhangxinxu.com/wordpress/2018/06/js-localforage-localstorage-indexdb/https://www.zhangxinxu.com/wordpre...原创 2019-06-09 11:52:32 · 1465 阅读 · 0 评论 -
css常用笔记
contenteditable 用于将普通的div或是其他控件设置成可读写的文本域样式配置 user-modify:(read-only;read-write;write-only;(当前浏览器都不支持)read-write-plaintext-only)text-transform: uppercase; // 文字大写状态文本多余文字以省略号出现方法(摘原创 2016-10-14 09:00:06 · 193 阅读 · 0 评论