JavaScript
文章平均质量分 84
搜捕鸟了
记录私人学习笔记
展开
-
详解JavaScript闭包
本文将详细介绍闭包,主要包括:闭包是什么、闭包形成的原因、闭包的作用、闭包的使用场景、闭包可能存在的问题、以及讲解闭包相关的面试题原创 2024-01-08 20:00:25 · 455 阅读 · 0 评论 -
详解call、apply、bind方法
call、apply、bind这三个方法都可以显式的指定调用函数的this指向,那么这三个方法会有什么区别呢?本文将会进行详细讲解,通过本文你将学习到如何使用这三个方法,以及这三种方法的源码是怎么实现的。原创 2024-01-07 12:22:40 · 473 阅读 · 0 评论 -
详解ajax、fetch、axios的区别
众所周知它们都用来发送请求,其实它们区别还蛮大的。这也是面试中的高频题,本文将详细讲解。学完本文你将收获到:1.如何封装一个Ajax,2.如何使用fetch方法,3.如何在项目中封装axios请求,4.它们之间的区别原创 2024-01-07 12:14:33 · 1787 阅读 · 0 评论 -
JavaScript——this指向问题详解
非严格环境下,全局下的this指向window, 而在严格环境下是undefined。setTimeout等都是挂载在window下的,因此setTimeout中的this,不管怎么写都指向window原创 2023-12-29 23:33:41 · 991 阅读 · 0 评论 -
Web常用的编码和解码技术
URI指的是统一资源标识符(Uniform Resource Locator),它是用来标识和定位互联网上的资源(如网页、图片、文档等)的一种标识方式,它是一个广义的概念,如我们常用的URL就属于URIURL能够定位给到互联网上的某个资源的位置。URL:用于标识和定位互联网上的资源的位置。它包括了资源的地址和访问方式,以确保资源能正常被定位和检索。通常由以下6部分组成。协议protocol:指定了资源的访问方式,常见的协议包括HTTPHTTPSFTPmailtofile等。域名(也叫主机名)Host。原创 2023-12-29 15:56:06 · 1126 阅读 · 0 评论 -
前端实现埋点&监控
埋点可以帮助企业更好地了解用户需求和行为习惯,优化运营并预测趋势,具有重要的意义,常见的埋点包括:pv【PageView】上报(包括history上报、hash上报)、uv【UserView】上报、dom事件上报、js报错上报(包括常规错误上报、Promise报错上报),通过这篇文章你可以学习到:前端埋点&监控、区分js模块化、打包工具rollup、API之History、JS二进制、sendBeacon发送post请求等知识。原创 2023-12-28 22:45:53 · 1086 阅读 · 0 评论 -
JavaScript——new关键字详解
new的原理如下:1. 第一步:创建一个空对象,作为将要返回的对象。2. 第二步:将这个空对象的原型指向构造函数的`prototype`属性,也就是将对象的`__proto__`属性指向构造函数的`prototype`。**【让对象能沿着原型链去使用构造函数中`prototype`上的方法】3. 第三步:**将这个空对象赋值给构造函数内部的`this`关键字,执行构造函数。**【让构造器中设置的属性和方法设置在这个对象上】4. 第四步:返回这个对象原创 2023-12-26 20:19:22 · 914 阅读 · 0 评论 -
前端面试——JavaScript面经(持续更新)
本文记录为了面试而总结的JavaScript面经,其中包括JavaScript用哪些数据类型、它们有什么区别、判断数组的方式有哪些?、null和undefined有什么区别?等等原创 2023-12-23 22:43:12 · 1183 阅读 · 1 评论 -
JavaScript——数据类型判断方法汇总
本文介绍JS的4种类型判断的方法并封装一个判断类型是否相等的函数,判断方法包括typeof、instanceof、constructor和Object.prototype.toString.call()四种。原创 2023-12-23 22:18:05 · 514 阅读 · 0 评论 -
日期处理库moment的基本使用
moment是JavaScript的一个日期时间处理库,它具有简单、强大和易于使用的特点,可以方便地进行日期和时间的格式化、解析等操作,在项目中可以很好的代替new Date()去使用,省去计算时间戳的步骤原创 2023-06-08 21:40:26 · 2446 阅读 · 0 评论 -
JavaScript进阶——闭包、高阶函数与柯里化
具体来说,柯里化就是把一个多参数函数转化为多个单参数函数的过程。在 JavaScript 中实现柯里化通常使用闭包和高阶函数。例如,一个接受两个参数的普通函数 add(a, b) 可以转化为柯里化函数 curriedAdd(a)(b),这样我们可以分别传入不同的参数来调用这个函数,实现更加灵活的使用。原创 2023-05-24 21:51:03 · 715 阅读 · 0 评论 -
JavaScript中的 ?? 操作符
JavaScript 中的 ?? 是一个新的操作符,被称为 Nullish Coalescing Operator ,意为“空值合并运算符”。它的作用是当左侧表达式为 null 或 undefined 时,返回右侧表达式的结果。如果左侧表达式的值不为 null 或 undefined,则返回左侧表达式的值。原创 2023-05-18 14:44:01 · 908 阅读 · 0 评论 -
JavaScript——防抖与节流
防抖函数 debounce 指的是某个函数在某段时间内,无论触发了多少次回调,都只执行最后一次。假如我们设置了一个等待时间 3 秒的函数,在这 3 秒内如果遇到函数调用请求就重新计时 3 秒,直至新的 3 秒内没有函数调用请求,此时执行函数,不然就以此类推重新计时。原创 2023-03-27 14:48:08 · 593 阅读 · 0 评论 -
JavaScript——异常处理
异常处理是指预估代码执行过程中可能发生的错误,然后最大程度的避免错误的发生导致整个程序无法继续运行。原创 2023-03-27 14:05:22 · 577 阅读 · 0 评论 -
JavaScript——一文搞懂深浅拷贝
开发中我们经常需要复制一个对象。如果直接用赋值会有下面问题。当改变新对象时,原对象也跟着发生变化,以上情况被称为,当我们修改新对象时,不希望原对象也发生改变,此时我们就需要了解一下深拷贝与浅拷贝,以及其中的区别。原创 2023-03-26 17:33:23 · 379 阅读 · 0 评论 -
JavaScript——原型对象
prototype是什么?哪里来的?prototype是原型(原型对象),构造函数都自动有原型。属性在哪里?作用是干啥的?prototype原型和对象原型__proto__里面都有属性,属性都指向创建实例对象/原型的构造函数。__proto__属性在哪里?指向谁?__proto__属性在实例对象里面,指向原型prototype。原创 2023-03-25 19:48:55 · 508 阅读 · 0 评论 -
JavaScript——对象的构造函数
构造函数是什么?构造函数是一种特殊的函数,主要用来初始化对象。使用场景:常规的{...}语法允许创建一个对象,比如我们创建了佩奇对象,继续创建乔治对象还需要重新写一遍,此时我们可以通过构造函数来快速创建多个类似的对象。原创 2023-03-22 12:05:16 · 385 阅读 · 0 评论 -
JavaScript——解构赋值
对象解构是将对象属性和方法快速批量赋值给一系列变量的简洁语法。数组结构时将数组的单元值快速批量赋值给一系列变量的简洁语法。当外面的变量名与结构的变量名冲突时,使用以下方法重新改名。数组解构赋值的其他情况。原创 2023-03-21 19:31:02 · 86 阅读 · 0 评论 -
JavaScript——正则表达式
JavaScript中定义正则表达式的语法有两种,我们先学习其中比较简单的方法:1.定义正则表达式语法:其中是正则表达式字面量,比如:2.判断是否有符合规则的字符串:方法,用来查看正则表达式与指定的字符串是否匹配。语法:3.检索(查找)符合规则的字符串:方法,在一个指定字符串中执行一个搜索匹配。语法:比如:匹配到则返回数组,否则返回空。只匹配第一次出现的索引。元字符(特殊字符)是一些具有特殊含义的字符,可以极大提高灵活性和强大的匹配功能。比如,规定用户只能输入英文26个英文字母,普通字符的话:但是,原创 2023-03-19 16:56:27 · 42 阅读 · 0 评论 -
近期项目中学习到的JS方法
map()方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。map()不会对空数组进行检测map()不会改变原始数组与map返回一个新的数组,不改变原数组,forEach不返回新的数组,改变原数组。Array.from()方法就是将一个类(伪)数组对象(具有length属性的对象)或者可遍历对象转换成一个真正的数组。不会改变原对象,会生成一个新数组sort() 方法用于对数组的元素进行排序。排序顺序可以是字母或数字,并按升序或降序。原创 2023-03-07 10:51:42 · 83 阅读 · 0 评论 -
ES6学习笔记04
断言:断言(Assertion)是一个对当前匹配位置之前或之后的字符的测试, 它不会实际消耗任何字符,所以断言也被称为“非消耗性匹配”或“非获取匹配”。Rest参数与spread扩展运算符在ES6中已经引入,不过ES6中只针对与数组,在ES9中为对象提供了像数组一样的rest参数和扩展运算符。如上图所示,可以看到明显的正则分组,并且可以将匹配到的值重新命名,使用属性的方式去获取,防止了正则变化时,数字位置变化的问题。正向断言的意思是:当前位置后面的字符串应该满足断言,但是并不捕获,仅此而已。原创 2022-12-24 18:54:41 · 135 阅读 · 0 评论 -
ES6学习笔记01
let、const、解构赋值、简化对象写法、参数默认值、rest参数、spread扩展运算符原创 2022-12-21 22:54:35 · 63 阅读 · 0 评论 -
ES6学习笔记03
基本上ES6的class可以看做只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。它类似于数组,但成员的值都是唯一的,集合实现了Iterator接口,所以可以使用扩展运算符和for…2.Object.assign 对象的覆盖 第一个参数是原对象,第二个参数是覆盖的对象,当第一个对象的属性中包括第二个对象没有的属性,则不能覆盖。当读取对象中的属性时,会自动调用get方法,当修改对象中的属性时,会自动调用set方法。原创 2022-12-23 17:30:23 · 80 阅读 · 0 评论 -
ES6学习笔记02
迭代器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制,任何数据结构只要部署Iterator接口,就可以完成遍历操作,Iterator接口就是对象里面的一个属性,这个属性的名字叫做Symbol.iterator。这两种方法的区别在于,你调用n个Symbol()会得到n不一样的值,但是调用Symbol.for()会得到相同的值,另外函数法的描述信息相同时返回的依旧是false,而函数对象法描述信息相同时返回true,不同返回false。Promise是ES6引入的异步编程的新解决方案。原创 2022-12-22 21:52:28 · 64 阅读 · 0 评论 -
JavaScript笔记05
JavaScript基础之函数进阶,函数定义的三种方式,调用函数的六种方式,函数this指向问题原创 2022-11-15 17:25:56 · 221 阅读 · 1 评论 -
JavaScript笔记04
JavaScript之面向对象、构造函数和原型、继承、类、ES5新增方法原创 2022-11-14 19:20:40 · 630 阅读 · 1 评论 -
JavaScript笔记03
JavaScript基础原创 2022-11-12 10:38:51 · 172 阅读 · 1 评论 -
JavaScript笔记02
JavaScript基础原创 2022-11-11 16:47:22 · 364 阅读 · 1 评论 -
JavaScript笔记01
JavaScript基础知识原创 2022-11-10 16:09:16 · 684 阅读 · 1 评论