首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS手撕(一)    类型判断、instanceof、数组去重

    JS手撕(一)    类型判断、instanceof、数组去重 前言 看这篇文章的小伙伴,建议看完每一节,都尝试自己手撕一遍,最好就是弄懂原理后再开始手撕(不要边看边手撕,会产生依赖),本人就是看别人的文章后手撕的...上面已经有小小的提到的typeof,那么当然不能拉下它的好兄弟instanceof啦。...开始手撕之前,先复习一下instanceof究竟是啥。 MDN上的介绍已经很简单易懂了:instanceof运算符用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上。...上面的代码还有有一些大问题,因为**instanceof是用来检测实例对象的**,所以我们还得去掉检测基本数据类型,如123 instanceof Number;得到的结果是false function...+遍历 原理就是遍历一遍原数组,如果不能在新数组中找到该元素,则新增到新数组里。

    2.1K10

    TypeScript-数组和元祖类型

    无论您是新手还是有经验的开发者,都能在这篇文章中找到有关TypeScript的重要信息和实用技巧。让我们一起探索这个强大的编程语言!...数组类型方式一需求:要求定义一个数组, 这个数组中将来只能存储 数值 类型的数据:let val: Array;val = [1, 3, 5];console.log(val);图片如上代码的含义为表示定义了一个名称叫做...val 的数组, 这个数组中将来只能够存储 数值 类型的数据,错误示例如下:let val: Array;val = [1, 3, 'a'];console.log(val);图片方式二需求...:要求定义一个数组, 这个数组中将来只能存储 字符串 类型的数据:let val: string[];val = ['c', 'b', 'a'];console.log(val);图片如上代表的含义表示定义了一个名称叫做...val 的数组, 这个数组中将来只能够存储 字符串 类型的数据,错误示例如下:let val: string[];val = [1, 'b', 'a'];console.log(val);图片联合类型

    42230

    TypeScript系列:续篇 - 对象类型(含数组、元数组、函数)

    在 TypeScript 中,对象类型用于定义对象的形状(shape),即对象包含哪些属性以及这些属性的类型。 对象类型可以是具体的,也可以是抽象的,用于类型检查和类型推断。...let arr: (number | string)[]; let arr: Array; 元数组 ⚽️ 元组类型是另一种 Array 类型,它确切地知道它包含多少个元素...number; } function sum({ a, b }: SumParams): number { return a + b; } rest 参数 rest 参数表示函数剩余的所有参数,它可以是数组...// rest 参数为数组 function joinNumbers(...nums: number[]) {} // rest 参数为元组 function f(...args: [boolean,...number]) {} https://typescript.p6p.net/typescript-tutorial/interface.html ↩︎

    45000

    TypeScript实现数组栈与对象栈

    本文将详细讲解这两种实现方式的差异并用TypeScript将其实现,欢迎各位感兴趣的开发者阅读本文。...我们分析完栈都需要具备哪些功能后,发现数组中提供了很多现成的API可以实现上述功能,接下来,跟大家分享下上述功能的实现思路。 入栈(push),可以使用数组的push方法直接往数组的末尾添加元素。...出栈(pop),可以使用数组的pop方法直接移除栈中的元素,该方法会返回当前被移除的元素。 栈顶元素(peek),可以通过数组的长度-1获取到数组中的最后一个元素。...栈是否为空(isEmpty),可以通过判断数组的长度是否为0来实现。 清空栈(clear),可以将数组直接赋值为空或者调用出栈方法直至栈中的数据为空。 栈大小(size),可以返回数组的长度。...在使用数组时,大部分方法的时间复杂度都为O(n),我们需要迭代整个数组直至找到目标元素,在最坏的情况下我们需要迭代数组的每一个位置。

    84340

    总结TypeScript 的一些知识点:TypeScript Array(数组)

    TypeScript Array(数组)数组对象是使用单独的变量名来存储一系列的值。数组非常常用。...TypeScript 声明数组的语法格式如下所示:var array_name[:datatype]; //声明 array_name = [val1,val2,valn..]...实例创建一个 number 类型的数组:var numlist:number[] = [2,4,6,8]整个数组结构如下所示:索引值第一个为 0,我们可以根据索引值来访问数组元素:TypeScriptvar...Array 对象的构造函数接受以下两种值:表示数组大小的数值。初始化的数组列表,元素使用逗号分隔值。...最简单的多维数组是二维数组,定义方式如下:var arr_name:datatype[][]=[ [val1,val2,val3],[v1,v2,v3] ]实例定义一个二维数组,每一个维度的数组有三个元素

    1K20

    LSP之instanceof

    invoiceCode; this.invoiceNo = invoiceNo; this.paperDrewDate = paperDrewDate; if (checkCode instanceof...但代码里面用到了instanceof,当用到这个关键字,而且是在抽象实体时,基本上可以断定是抽象的层次不够, 可能违背了LSP LSP原则很明了:子类可以随时替换父类;这儿用了instanceof,说明有不可替换的成份在...getVerifyCheckCode(); 这儿有个疑问,为什么不在构建发票前,把verifyCheckCode转成normalCheckCode,而不是到Invoice的构建内部再转化,那也就没有instanceof...每一种CheckCode都有各自不同的行为 ---- 一般通过instanceof判断子类型时,都有不满足LSP的嫌疑;在这个场景中也差不多,但抓住了这一点,重新思考一下,类层次与结构行为可以设计得更合理

    70030
    领券