自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

靖凡无所畏惧的个人博客

分享技术,记录成长!

  • 博客(14)
  • 收藏
  • 关注

原创 JavaScript 箭头函数 小知识点

前言:箭头函数是 es6 推出的,主要是为了方便我们声明函数,解决函数的this指向问题,现在我就为大家分享一点 箭头函数的知识。箭头函数特点:箭头函数没有 function 关键字 箭头函数 小括号和花括号之间有一个箭头 如果参数是一个,可以省略小括号 如果 直接返回对象类型,需要使用 () 进行包裹 箭头函数中没有 this 指向问题 箭头函数没有 arguments,可以使用剩余运算符将多余数组放到 指定参数中 函数可以赋予默认参数代码展示:// 箭头函数简单使用le

2022-04-07 09:27:50 905

原创 JavaScript 中 let 和 const 知识点

前言:在 JS 中不仅 var 可以声明变量,在es6中又推出了 let 和 const 声明变量,那么他们有什么区别呢,现在就给大家分享一下。区别:varfor (var i = 0; i < 3; i++) { console.log(i); // 0 1 2}console.log(i); // 3console.log(window.i); // 3var 声明的变量不支持封闭作用域,因此 var 声明的变量会作用到全局上边,因此,上边代码 ...

2022-04-01 08:51:29 184

原创 NodeJs 手写简单实现 require 函数

前言: 今天带给大家手写 require 函数代码,希望对大家有所帮助。代码:// 1. 现将 .a 文件转化为绝对路径// 2. 读取这个文件,需要增加一个函数,函数内部需要返回 module.exports// 3. 让函数执行// 4. new Module 创建模块,根据文件名来创建, exports id// -- module.load 加载模块// -- Module._extensions 代表一个对象,对象上放着很多处理方法// ...

2022-03-20 18:28:22 440

原创 NodeJs中 path.resolve 和 path.join 区别

前言:初学 NodeJS的小伙伴一定会对 path.resolve 和 path.join 这两个输出路径的方法有迷惑,那我就给大家分享一下,这两个方法的区别吧。Path.join功能:path.join() 方法使用特定于平台的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径。零长度的 path 片段被忽略。 如果连接的路径字符串是零长度字符串,则将返回 '.',表示当前工作目录。如果任何路径片段不是字符串,则抛出 TypeErr...

2022-03-20 09:13:33 469

原创 JavaScript-逗号操作符

前言:最近发现 JavaScript 有一个叫做逗号操作符的小东西,感觉很有意思,分享给大家。功能:对它的每个操作数求值(从左到右),并返回最后一个操作数的值。语法:expr1, expr2, expr3...代码:let a = 1;let b = 2;let c = 0;c = (a++,b++,a+b);console.log(c) // 5...

2022-03-12 19:52:05 1445

原创 对象的 get 和 defineProperty 定义的 get 区别

前言:大家肯定用过 用过对象自己定义的 get 和 set 方法,也肯定用过 Object.defineProperty 定义 的 get 和 set 方法,那么他们的区别是什么呢,现在给大家分享一下。代码:在对象字面量上定义的get 和setlet obj = { get name() { return '靖凡'; }}let address='';Object.defineProperty(obj, "address", { get() {

2022-03-12 16:05:23 360

原创 JavaScript 手写 Promise 代码实现

前言: 相信在工作中各位小伙伴都使用过 Promise,但是它是如何实现的呢,今天就由我来给大家分享一下手写 Promise,希望对大家有所帮助!代码:// proise 三种状态const PENDING = "PENDING";const FULFILLED = "FULFILLED";const REJECTED = "REJECTED";function resolvePromise(promise, x, resolve, reject) { // x 的...

2022-03-02 21:22:01 532

原创 JavaScript 手写实现 Event-Bus

前言: 今天给大家分享一下手写 Event-Bus,希望对大家有所帮助!代码: function EventBus() { this._events = {}; } EventBus.prototype.on = function (eventId, func) { const callbacks = this._events[eventId]; if (!callbacks) { this._events[eventId] = [func];...

2022-03-01 22:38:24 757

原创 JavaScript 手写 Object.create 函数

前言: 今天给大家分享一下手写 Object.create 函数。代码: function myCreate(o){ function F(){} F.prototype = o; return new F() }

2022-03-01 20:07:12 852

原创 JavaScript 手写 apply 函数

前言:今天给大家分享 手写 apply 函数,希望对大家有所帮助!代码:注意点:1. 利用this的上下文特性。2. 和 call 类似 var show = function(){ console.log(this.name); console.log(...arguments); } let c = { name:'wjf' } // show.myBind(c,1,2,3)(4,5,6) Function.prototype.my..

2022-03-01 20:02:42 349

原创 JavaScript 手写 call 函数

前言: 今天给大家带来 手写 call 函数,希望对大家有所帮助!代码:注意点:将函数设为对象的属性 执行&删除这个函数 指定this到函数并传入给定参数执行函数 如果不传入参数,默认指向为 window Function.prototype.myCall = function(context = window,...args){ var key = Symbol('key'); context[key] = this; var resu...

2022-03-01 19:55:26 248

原创 JavaScript 手写 Bind 函数

前言: 今天给大家带来手写 bind 函数,希望对大家有所帮助!代码:

2022-03-01 19:42:24 365

原创 JavaScript 手写实现防抖和节流

是什么本质上是优化高频率执行代码的一种手段如:浏览器的 resize、scroll、keypress、mousemove 等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低前端性能为了优化体验,需要对这类事件进行调用次数的限制,对此我们就可以采用throttle(防抖)和debounce(节流)的方式来减少调用频率节流使用时间戳实现function throttled(fn,delay=500){ let oldTime = Date.now(); re

2022-03-01 14:43:28 761 1

原创 JavaScript 手写实现深克隆

前言:深克隆是前端面试的一个非常基础的知识点,一般要求大家能手写出来,现在分享给大家一下本人自己写的深克隆代码,希望对大家有所帮助!代码:const isComplexDataType = obj=> (typeof obj === 'object' && obj !== null);function deepClone(obj,hash = new WeakMap()){ if(obj.constructor === Date){ return ne.

2022-03-01 14:22:15 530

空空如也

空空如也

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

TA关注的人

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