自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 chrome extensions开发

Chrome插件开发是一个非常有趣和富有挑战性的领域。它允许开发者在浏览器中创建各种增强功能和实用工具,以及改善用户体验和提高生产力

2023-04-11 16:45:36 1470

原创 手写call、apply、bind

call apply bind是面试中经常被问到的问题,也是很考验js基础是否扎实的一道题,它们的作用都是改变函数的this指向,也就是改变当前的作用域。其用法也都差不多,只是传参方式有所不同,但如果你只告诉面试官这些的话,那面试官也就仅仅只知道你会用,那么我们不止要知其然,更要知其所以然。

2022-02-15 17:58:35 341

原创 简述class

类的定义类 可以理解为类型、类别,一个具有相同特征相同行为的对象的集合,也可以理解为一个模具,它可以生产某种特征相同的产品,并可以在产品的基础上再次改进,类包含一系列的对象,对象属于某一个类。类的定义类有两种定义方式: 类声明和类表达式两种方式都是使用class关键词 ➕ 大括号类声明 class Person {}类表达式const Person = class {}不管是类声明还是类表达式,没有定义之前都是不能使用的。并且建议类名首字母要使用大写2. 类的构成构造函

2022-01-14 16:00:03 156

原创 对象的创建以及对象的继承

继承是面向对象编程中讨论最多的话题,很多面向对象的语言都支持两种继承:接口继承和实现继承。前者只继承方法签名,后者继承实际的方法。接口继承在ECMAScript中是不可能的,因为函数没有签名。实现继承是ECMAScript唯一支持的继承方式,而这主要是通过原型链实现的。原型链: 每个构造函数都有一个原型对象,原型有一个属性指回构造函数,而实例有一个内部指针指向原型。如果原型是另一个类型的实例呢?那就意味着这个原型本身有一个内部指针指向另一个原型,相应地另一个原型也有一个指针指向另一个构造函数。这样就在实例

2021-12-31 17:54:13 524

原创 防抖和节流

防抖(延迟执行,重新计时)防抖的原理是事件被触发n秒后在执行回调,如果在这n秒内又被触发,则重新计时,也就是当事件被触发,先执行一个n秒的定时器,n秒后再去执行真正的回调,如果n秒内事件被频繁的触发,那么每次都是重新的计时,它和节流的不同在于如果某段时间内事件以间隔小于n秒的频率执行,那么这段时间回调只会触发一次。节流则是按照200ms或者300ms定时触发,而不仅仅是一次。基本防抖实现function debounce(func, wait) { if (typeof func !== 'f

2021-12-27 14:47:50 357

原创 本地存储(localStorage,sessionStorage,cookie)

随着Web应用程序的出现,直接在客户端存储用户信息的需求也随之出现。这背后的想法是合理的:与特定用户相关的信息应该保存在用户的机器上。无论是登录信息、个人偏好,还是其他数据,Web应用程序提供者都需要有办法把它们保存在客户端。对该问题的第一个解决方案就是cookie。今天,cookie只是在客户端存储数据的一个选项。cookieHTTP cookie也叫作cookie,最初用于在客户端存储会话信息。这个规范要求服务器在响应HTTP请求时,通过发送Set-Cookie HTTP头部包含会话信息。例如,下面

2021-12-15 09:39:40 233

原创 vuer-router详解

简单使用<div id="app"> <p> <!-- 使用 router-link 组件来导航 --> <!-- 通过传入 `to` 属性指定链接 --> <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 --> <router-link to="/foo">Go to Foo</router-link> <router-

2021-12-10 09:25:40 742

原创 数组去重和数组扁平化

数组去重和数组扁平化数组去重我们不但会在平时的开发中用到,就是面试也是高频出现的一道题,面试官的目的主要是想了解我们对基础知识的掌握以及是否能用更优雅的方法去实现。数组去重以下几种方法均采用const arr = [1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10]双循环去重 主要思想就是定义一个新数组,存放原数组的第一个元素,然后将原数组–和新数组的元素对比,若不同则存放在新数组里function unique(arr) { let arr1 =

2021-12-07 13:01:08 418

原创 超详细的js数组方法(总结)

在平时的开发中我们经常会用的数组的内置方法,也是面试最常问到的东西。数组是js中最常用到的数据集合,其内置的方法有很多,熟练掌握这些方法,可以有效的提高我们的工作效率,同时对我们的代码质量也是有很大影响。

2021-12-03 09:31:39 328

原创 js垃圾回收机制

JavaScript是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。 释放的过程称为垃圾回收。这个“自动”是混乱的根源,并让JavaScript开发者错误的感觉他们可以不关心内存管理。内存生命周期不管什么程序语言,内存生命周期基本是一致的:分配你所需要的内存使用分配到的内存(读、写)不需要时将其释放\归还所有语言第二部分都是明确的。第一和第三部分在底层语言中是明确的,但在像JavaScript这些高级语言中,大部分都是隐含的。js内存分配(值的初始化)

2021-11-29 14:44:08 179

原创 generator函数与async/await

理解async函数就要先理解generator函数,因为async就是Generator函数的语法糖Generator 函数Generator 函数是 ES6 提供的一种异步编程解决方案,可以先理解为一个状态机,封装了多个内部状态,执行Generator函数返回一个遍历器对象,通过遍历器对象,可以依次遍历 Generator 函数内部的每一个状态语法上,Generator 函数是一个普通函数,但是有两个特征。一是,function关键字与函数名之间有一个星号;二是,函数体内部使用yield表达式,

2021-11-24 13:02:49 561

原创 vue3与vue2有哪些差异?

vue3与vue2有哪些差异vue作者尤雨溪在开发 vue3.0 的时候开发的一个基于浏览器原生 ES imports 的开发服务器(开发构建工具)。那么我们先来了解一下viteViteVite,一个基于浏览器原生 ES imports 的开发服务器。利用浏览器去解析 imports,在服务器端按需编译返回,完全跳过了打包这个概念,服务器随起随用。同时不仅有 Vue 文件支持,还搞定了热更新,而且热更新的速度不会随着模块增多而变慢。针对生产环境则可以把同一份代码用 rollup 打。虽然现在还比较粗糙

2021-11-19 16:04:18 605

原创 JS数组(总结)

1数组的概念所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组.2.数组的定义数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。 例子: // 创建一个空数组 var arr1 = []; // 创建一个包含3个数值的数组,多个数组项以逗号隔开 var arr2 = [1, 3, 4...

2018-09-13 19:58:47 184 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除