JavaScript
文章平均质量分 95
尘缘..
热爱技术、专注业务、开放合作、乐于分享,期待你我共同成长!
展开
-
JavaScript 数组去重大揭秘:高手必备技巧一网打尽!
在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。然而,有时我们需要从数组中去除重复的元素,以便更有效地处理数据。数组去重是指将数组中重复的元素去除,只保留唯一的元素。JavaScript 数组去重是一项常见的任务,可以通过多种方法实现,详细讨论了 JavaScript 数组去重的方法,根据实际需求和数据类型的不同,可以选择适合的方法来进行数组去重操作。原创 2023-09-23 10:46:07 · 1204 阅读 · 6 评论 -
TypeScript逆变 :条件、推断和泛型的应用
有一个名为test的函数,它接受两个参数。第一个参数是函数fn,第二个参数options受到fn参数的限制。乍一看,这个问题貌似并不复杂,不是吗?糊业务的时候,这种不是常见的需求嘛。“创建一个泛型类型Test,以确保这两个参数之间存在约束关系就完事了,睡醒再说”,就这样暗忖着,又昏昏沉沉睡过去,只有那闯入我梦中,飘忽不定,若即若离,暗示着我再次翻车【看题时觉得简单,解题时头大如牛】的命运。${${${||'fn4'在继续往下翻阅之前,先来玩呀,兄弟们。也可以用来配合本文食用哦。原创 2023-09-18 18:02:05 · 1910 阅读 · 1 评论 -
Typescript - 索引签名
在 TypeScript 中,索引签名是一种定义对象类型的方式,它允许我们使用字符串或数字作为索引来访问对象的属性。或者其中,index是指定索引的名称,可以是string或number类型;type则表示索引对应的值的类型。索引签名的作用是允许我们动态地添加和访问对象的属性。通过使用索引签名,我们可以在编译时无法确定具体属性名称的情况下,仍然能够安全地操作对象的属性。在本篇博文中,我们深入探讨了 TypeScript 中的索引签名特性。原创 2023-08-15 08:01:35 · 2477 阅读 · 0 评论 -
JavaScript 进阶 - 第4天
首先浅拷贝和深拷贝只针对引用类型浅拷贝:拷贝的是地址常见方法:直接赋值和浅拷贝的区别:浅拷贝的理解:首先浅拷贝和深拷贝只针对引用类型深拷贝:拷贝的是对象,不是地址常见方法:函数递归:如果一个函数在内部可以调用其本身,那么这个函数就是递归函数练习:利用递归函数实现模拟效果需求:面试中问到深拷贝:1.2.3 JSON序列化2 异常处理2.1 throw 抛异常异常处理是指预估代码执行过程中可能发生的错误,然后最大程度的避免错误的发生导致整个程序无法继续运行总结:总结:总结:相当于断点调试 是原创 2023-07-05 19:25:47 · 1173 阅读 · 0 评论 -
JavaScript 进阶 - 第3天
了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。同样的将变量和函数组合到了一起并能通过 this 实现数据的共享,所不同的是借助构造函数创建出来的实例对象之间是彼此不影响的。基于原型对象的继承使得不同构造函数的原型对象关联在一起,并且这种关联的关系是一种链状的结构,我们将原型对。作用:该属性指向该原型对象的构造函数, 简单理解,就是指向我的爸爸,我是有爸爸的孩子。原创 2023-06-14 23:12:31 · 728 阅读 · 0 评论 -
JavaScript 进阶 - 第2天
的数据类型有 6 种,分别是字符串、数值、布尔、undefined、null 和 对象,常见的对象类型数据包括数组和普通对象。之所以具有对象特征的原因是字符串、数值、布尔类型数据是 JavaScript 底层使用 Object 构造函数“包装”来的,被称为包装类型。了解面向对象编程的基础概念及构造函数的作用,体会 JavaScript 一切皆对象的语言特征,掌握常见的对象属性和方法的使用。甚至字符串、数值、布尔、数组、普通对象也都有专门的构造函数,用于创建对应类型的数据。原创 2023-05-08 20:39:12 · 596 阅读 · 2 评论 -
JavaScript 进阶 - 第1天
在开发中【使用箭头函数前需要考虑函数中 this 的值】,事件回调函数使用箭头函数时,this 为全局的 window,因此 DOM事件回调函数为了简便,还是不太推荐使用箭头函数。学习作用域、变量提升、闭包等语言特征,加深对 JavaScript 的理解,掌握变量赋值、函数声明的简洁语法,降低代码的冗余度。知道函数参数默认值、动态参数、剩余参数的使用细节,提升函数应用的灵活度,知道箭头函数的语法及与普通函数的差异。箭头函数是一种声明函数的简洁语法,它与普通函数并无本质的区别,差异性更多体现在语法格式上。原创 2023-05-01 19:05:31 · 591 阅读 · 0 评论 -
Web APIs (6) - 笔记
/ const strEnd = str.replace(/前端/, 'web') 只能替换一个。// const strEnd = str.replace(/前端/, 'web') 只能替换一个。表示字符的范围,定义的规则限定在某个范围,比如只能是英文字母,或者数字等等,用表示范围。// 用户名可以输入英文字母,数字,可以加下划线,要求 6~16位。// 1. 替换 replace 需求:把前端替换为 web。// 1. 替换 replace 需求:把前端替换为 web。原创 2023-04-19 11:30:00 · 508 阅读 · 0 评论 -
Web APIs (5) - 笔记
单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。这样所导致的问题是:如果 JS 执行的时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉。前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。于是,JS中出现了同步和异步。比如做饭的异步做法,我们在烧水的同时,利用这10分钟,去切菜,炒菜。3.一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,进入执行栈,开始执行。原创 2023-04-18 10:45:00 · 501 阅读 · 0 评论 -
Web APIs (4) - 笔记
掌握 Date 日期对象的使用,动态获取当前计算机的时间。ECMAScript 中内置了获取系统时间的对象 Date,使用 Date 时与之前学习的内置对象 console 和 Math 不同,它需要借助 new 关键字才能使用。在代码中发现了 new 关键字时,一般将这个操作称为实例化。创建一个时间对象并获取时间:获得当前时间、获得指定时间1.2 日期对象方法方法作用说明getFullYear()获得年份获取四位年份getMonth()获得月份取值为 0原创 2023-04-17 08:00:00 · 465 阅读 · 0 评论 -
Web APIs (3) - 笔记
结合事件流的特征,我们知道当某个元素的事件被触发时,事件总是会先经过其祖先才能到达当前元素,然后再由当前元素向祖先传递,事件在流动的过程中遇到相同的事件便会被触发。再来关注一个细节就是事件相继触发的【执行顺序】,事件的执行顺序是可控制的,即可以在捕获阶段被执行,也可以在冒泡阶段被执行。事件流是对事件执行过程的描述,了解事件的执行过程有助于 加深对事件的理解,提升开发实践中对事件运用的灵活度。如果事件是在冒泡阶段执行的,我们称为冒泡模式,它会先执行子盒子事件再去执行父盒子事件,默认是冒泡模式。原创 2023-04-16 08:00:00 · 460 阅读 · 0 评论 -
Web APIs (2) - 笔记
事件是编程语言中的术语,它是用来描述程序的行为或状态的,一旦行为或状态发生改变,便立即调用一个函数。例如:用户使用【鼠标点击】网页中的一个按钮、用户使用【鼠标拖拽】网页中的一张图片结合 DOM 使用事件时,需要为 DOM 对象添加事件监听,等待事件发生(触发)时,便立即调用一个函数。语法:事件监听三要素: 是 DOM 对象专门用来添加事件监听的方法,它的两个参数分别为【事件类型】和【事件回调】。完成事件监听分成3个步骤:大白话描述:所谓的事件无非就是找个机会(事件触发)调用一个函数(回调函数)。原创 2023-04-15 11:45:00 · 503 阅读 · 0 评论 -
Web APIs (1) - 笔记
ECMAScript 简称 ES 它提供了一套语言标准规范,如变量、数据类型、表达式、语句、函数等语法规则都是由 ECMAScript 规定的。浏览器将 ECMAScript 大部分的规范加以实现,并且在此基础上又扩展一些实用的功能,这些被扩展出来的内容我们称为 Web APIs。ECMAScript 规范在不断的更新中,存在多个不同的版本,早期的版本号采用数字顺序编号如 ECMAScript3、ECMAScript5,后来由于更新速度较快便采用年份做为版本号。原创 2023-04-14 07:45:00 · 560 阅读 · 0 评论 -
JavaScript 基础(5) - 笔记
对象(object):JavaScript里的一种数据类型。可以理解为是一种无序的数据集合,注意数组是有序的数据集合。用来描述某个事物,例如描述一个人1.对象声明语法例如:2.对象有属性和方法组成声明一个对象类型的变量与之前声明一个数值或字符串类型的变量没有本质上的区别。1.3 属性和访问数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是名词性的。声明对象,并添加了若干属性后,可以使用 或 获得对象中属性对应的值,我称之为属性访问。扩展:也可以动态为对象添加属性,动态添加与原创 2023-04-13 17:00:00 · 575 阅读 · 0 评论 -
JavaScript 基础(4) - 笔记
声明(定义)一个完整函数包括关键字、函数名、形式参数、函数体、返回值5个部分函数名命名规范和变量命名基本一致。尽量小驼峰式命名法。前缀应该为动词。命名建议:常用动词约定。动词含义can判断是否可执行某个动作has判断是否含义某个值is判断是否为某个值get获取某个值set设置某个值load加载某些数据。原创 2023-04-12 19:31:19 · 977 阅读 · 0 评论 -
JavaScript 基础(3) - 笔记
script > // 1. 语法,使用 [] 来定义一个空数组 // 定义一个空数组,然后赋值给变量 classes // let classes = [];// 2. 定义非空数组 let classes = [ '小明' , '小刚' , '小红' , '小丽' , '小米' ] // 1. 语法,使用 [] 来定义一个空数组。原创 2023-04-11 11:00:00 · 501 阅读 · 1 评论 -
JavaScript基础(2) - 笔记
需求:用户输入一个数,判断这个数能被4整除,但是不能被100整除,满足条件,页面弹出true,否则弹出false。某些情况,也可以把表达式理解为表达式语句,因为它是在计算结果,但不是必须的成分(例如continue语句)。使用场景: 适合于有多个条件的时候,也属于分支语句,大部分情况下和 if多分支语句 功能相同。while : 在…需求:用户输入1个数,如果数字小于10,则前面进行补0,比如 09 03 等。需求:页面弹出对话框,’你爱我吗‘,如果输入’爱‘,则结束,否则一直弹出对话框。原创 2023-04-10 18:15:00 · 597 阅读 · 0 评论 -
JavaScript基础(1)
未定义是比较特殊的类型,只有一个值 undefined。只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。let age // 声明变量但是未赋值 document . write(age) // 输出 undefined注:JavaScript 中变量的值决定了变量的数据类型。原创 2023-04-09 14:36:36 · 575 阅读 · 2 评论