JavaScript
文章平均质量分 86
JavaScript学习
圆圆01
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
为什么说 bind 的实现非常考验对原型链的理解?
bind 的实现其实非常考验对原型链的理解。bind 和 apply,call 是 JS 修改 this 指向的三把利器 🔱。但看似简单的内容,实则包含了 JS 的两大核心内容:原型链和构造函数 (new) 。这篇文章分为两部分:一部分讲如何实现一个基础版本的 bind 方法,带大家做好热身运动;另一部分进入主题,详细讲解如何通过原型链来实现一个让人眼前一亮的 bind 方法。原创 2022-10-24 17:56:32 · 1458 阅读 · 4 评论 -
JS 内存泄漏与垃圾回收机制
JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。 释放的过程称为垃圾回收。这个“自动”是混乱的根源,并让 JavaScript 开发者错误的感觉他们可以不关心内存管理,进而引发内存泄漏。原创 2022-04-06 21:08:59 · 2204 阅读 · 0 评论 -
详谈前端模块化这十四年的发展史:CommonJS、AMD、CMD、ES6
十年之前,模块化还只是使用「闭包」简单的实现一个命名空间。转眼间模块化已经发展了有十余年了,不同的工具和轮子层出不穷,下面是最各大工具或框架的诞生时间原创 2022-02-24 21:52:14 · 2067 阅读 · 0 评论 -
JS 异步编程的 5 种解决方案
异步为什么很重要?如何使用异步来有效处理潜在的阻塞操作?我们知道 JS 语言的执行环境是"单线程",所谓"单线程",就是指一次只能完成一件任务,这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。为了解决这个问题,Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous)。...原创 2022-02-23 21:04:02 · 5313 阅读 · 0 评论 -
JS 异步编程终极解决方案 async/await 的使用手册
ES8 提出了 JS 异步编程终极解决方案 async/await 。No more callback hell。使用 关键字 async 来表示,在函数内部使用 await 来表示异步。简单来说,它们是基于promises的语法糖,使异步代码更易于编写和阅读。通过使用它们,异步代码看起来更像是老式同步代码,因此它们非常值得学习。原创 2022-01-19 23:57:42 · 5842 阅读 · 0 评论 -
ECMAScript 的发展历史及各版本名称介绍
JavaScript 到底什么是 ES6、ES7、ES8、ES 2017、ECMAScript?转载 2022-01-18 19:44:33 · 2074 阅读 · 0 评论 -
从零开始带你手写一个“发布-订阅者模式“ ,保姆级教学
发布订阅者模式想必大家都不陌生,是前端不可不掌握的设计模式,搞懂四个基本的核心内容就能掌握并实现这个模式!原创 2022-01-13 18:17:44 · 4362 阅读 · 11 评论 -
看了就会,手写 Promise 全部 API 教程,包括处于 TC39 第四阶段草案的 Promise.any()
根据规范实现了 Promise ES6+ 的全部 API,手写实现了 then 方法以外的两个实例方法以及目前 Promise 规范的全部六个静态方法。原创 2021-12-21 17:42:35 · 683 阅读 · 0 评论 -
手把手一行一行代码教你“手写Promise“,完美通过 Promises/A+ 官方872个测试用例
保姆级教程,看完还不懂的私聊我亲自教!原创 2021-12-20 20:19:51 · 2145 阅读 · 2 评论 -
测试程序执行时长:console.time()和console.timeEnd()
简介console.time()和console.timeEnd()一般用于测试程序执行的时长。console.time() 方法是作为计算器的起始方法。console.timeEnd() 方法为计算器的结束方法,并将执行时长显示在控制台。如果一个页面有多个地方需要使用到计算器,可以添加标签参数来设置。语法console.time(timerName)console.timeE...原创 2020-02-26 10:08:20 · 1970 阅读 · 0 评论 -
多写缓存,时间充裕的情况下
多写缓存,时间充裕的情况下原创 2020-12-02 04:10:36 · 341 阅读 · 0 评论 -
HTML点击按钮button跳转页面的几种实现方法
其实我比较喜欢第一种方法<button onclick="window.location.href='../routeEdit/index.html'" type="button" id="add">新增</button>方法一:在button标签中加上onclick属性,赋值为Javascript<input type="button" name="regi...原创 2019-11-20 16:30:09 · 177294 阅读 · 19 评论 -
JSON学习 第一节
JSON英文全称:JavaScript Object Notation(JavaScript 对象表示法), JSON 是存储和交换文本信息的语法。类似 XML。JSON 比 XML 更小、更快,更易解析。 JSON 是轻量级的文本数据交换格式原创 2020-01-29 02:22:17 · 238 阅读 · 0 评论 -
汇总前端大厂网站,精品好网站、文档和优秀博客
1. 前端开发者手册:http://caibaojian.com/fedbook/备注:空下来一定要多看看这个文档,里面写了很多为实践的前端开发人员提供一个包括学习资料和开发工具的专业资源;另外我看中的是她为一个前端开发人员确定了自主学习的直接方向和资源! 标记常看!...原创 2019-11-21 11:11:30 · 663 阅读 · 0 评论 -
VsCode中的node调试和网页调试
VsCode调试学习我们在VsCode中新建一个js文件,写一段测试代码并且打开终端,切换到调试控制台界面(打开终端的快捷键是:Ctrl+~)在vscode中按F5,进入调试,我们选择node.js调试选中node.js调试将会执行js代码,结果会打印在调试控制台...原创 2020-02-17 22:50:06 · 418 阅读 · 0 评论 -
typescript、angular如何导入JSON文件
typescript中如何import json文件原创 2020-09-03 19:42:34 · 3240 阅读 · 0 评论 -
jQuery选择元素下标以及通过元素下标获得dom
jQuery选择元素下标$(this).index() //注:本文的两个方法index值均从0开始;使用如下<ul> <li>Coffee</li> <li>Milk</li> <li>Soda</li></ul>$(document).ready(function(){ $(...原创 2019-11-20 17:31:38 · 2481 阅读 · 0 评论 -
ES6新特性 Class 类的全方面理解
javascript语言只有对象,没有类的概念。跟传统的面向对象语言(比如 C++ 和 Java)差异很大,非常容易让人困惑~ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念!本文就带你全方面理解class~原创 2021-10-20 17:02:41 · 1159 阅读 · 0 评论 -
详解宏任务、微任务与事件循环 Event Loop
事件循环 Event Loop,是指浏览器或Node的一种解决javaScript单线程运行时“非阻塞”的一种机制,也就是我们经常使用异步的原理。本文会带你吃透“事件循环”,掌握底层原理,轻松应对JavaScript执行机制问题~原创 2021-10-19 17:35:21 · 2494 阅读 · 0 评论 -
通俗易懂的Promise知识点总结,检验一下你是否真的完全掌握了promise?
Promise 想必大家都十分熟悉,想想就那么几个 api,可是你真的了解 Promise 吗?原创 2021-10-18 17:16:51 · 2715 阅读 · 0 评论 -
越来越火的Fetch是如何请求数据的?与Ajax和Axios又有什么区别
fetch()是 XMLHttpRequest 的升级版,用于在 JavaScript 脚本里面发出 HTTP 请求。浏览器原生提供这个对象。本文详细介绍它的用法,以及与Ajax和Axios的区别~原创 2021-10-09 15:43:30 · 2344 阅读 · 0 评论 -
简洁全面的“手写AJAX,以及用Promise封装AJAX请求“,给你一个满分答案
原生js实现Ajax,本文用最简洁的脉路,帮你梳理前端经典面试“手写ajax”,然后再告诉你廖雪峰是如何使用Promise封装ajax!!!原创 2021-10-06 14:59:23 · 1187 阅读 · 2 评论 -
由浅入深的正则表达式教程,简单快速学习正则
正则表达式,对大家来说既熟悉又陌生。熟悉是因为工作中有很多场景能用到,比如手机号、邮箱、密码等规则校验。陌生则是因为正则表达式看上去就是一堆乱码,且一眼看上去很难看懂匹配规则。有时候在网上去找一个特定规则的正则表达式,搜出来的结果各不相同,执行效果更是不尽人意,想自己去修改,感觉也无从下手。让我们通过这篇由浅入深的正则表达式教程,简单快速学习正则!!!原创 2021-10-04 03:43:07 · 1804 阅读 · 2 评论 -
掌握js类型转换,先来学习js原始值转换的抽象操作 toPrimitive
`Symbol.toPrimitive` 是一个内置的抽象操作,它是作为对象的函数值属性存在的,当一个对象转换为对应的 原始值 时,会调用此函数。原创 2021-10-01 11:45:58 · 1572 阅读 · 0 评论 -
JS 数组有哪些原生方法,那么多 API 真的很难记住吗?
通过梳理数组 API 的方式,归纳整理,你会发现js的数据方法并没有很难记住,一起来学习吧~原创 2021-09-29 23:46:15 · 1688 阅读 · 2 评论 -
如何理解 slice() 方法是浅拷贝?深入数组浅拷贝里的小细节
slice 不会修改原数组,只会返回一个浅复制了原数组中的元素的一个新数组,如何理解slice方法的浅拷贝呢?原创 2021-09-26 23:56:25 · 3557 阅读 · 1 评论 -
取数组的最大值(ES5、ES6),详解Math.max() 和 reduce() API
取数组的最大值(ES5、ES6)的几种方法,这里提供了三种写法,前两种用的都是`Math.max()`方法实现的,最后一种用了`reduce`API,下面会讲到如何利用基本的`Math.max()`方法实现 取数组的最大值,详解apply方法在实例中的运用思想,以及`reduce`API的介绍和使用。原创 2021-08-04 17:55:28 · 5061 阅读 · 0 评论 -
防抖和节流的区别是什么?防抖和节流的实现 详解!
防抖和节流的作用都是防止函数多次调用。区别在于,假设一个用户一直触发这个函数,且每次触发函数的间隔小于设置的时间,防抖的情况下只会调用一次,而节流的情况会每隔一定时间调用一次函数。防抖防抖(debounce): n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间function debounce(func, wait, immediate = true) { let timer; // 延迟执行函数 const later = (context, args原创 2021-07-13 02:07:11 · 8171 阅读 · 0 评论 -
详解JS继承,从原理入手到五种 js 实现继承方式
javascript继承的几种方法:原型链继承,其重点是让新实例的原型等于父类的实例;借用构造函数继承(也称伪造对象或经典继承);组合继承(组合原型链继承和借用构造函数继承);寄生组合式继承(完美⽅式)。转载 2021-07-13 01:19:29 · 618 阅读 · 0 评论 -
对 rest 参数(剩余参数) 与 Spread 语法(展开语法)的理解
Rest 参数(剩余参数语法)可以把一个不定数量的参数表示为一个数组。函数的最后一个命名参数以三个点`...`为前缀,则它就会成为一个由剩余参数组成的真数组。Spread 语法(展开语法) 可以将数组表达式或者string在语法层面展开;将对象表达式按key-value的方式展开。原创 2021-07-08 16:11:58 · 786 阅读 · 0 评论 -
谈谈你对原型的理解?什么是原型链?【原型链解决的是什么问题?】prototype 和 __proto__ 区别是什么?
谈谈你对原型的理解?在 JavaScript 中,每个函数对象都有一个prototype 属性,这个属性指向函数的原型对象。使用原型对象的好处是所有对象实例共享它所包含的属性和方法。什么是原型链?【原型链解决的是什么问题?】原型链解决的主要是继承问题。每个对象拥有一个原型对象,通过 __proto__ (读音: dunder proto) 指向其原型对象,并从中继承方法和属性,同时原型对象也可能拥有原型,这样一层一层,最终指向null(Object.prototype.__proto__ 指向的是n原创 2021-07-08 01:23:36 · 786 阅读 · 4 评论 -
new的原理是什么?new的模拟实现?通过new的方式创建对象和通过字面量创建有什么区别?
文章目录new实现new通过new的方式创建对象和通过字面量创建有什么区别?重要参考new一句话介绍 new:new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。(来自MDN)new 关键字会进行如下的操作:创建一个空的简单JavaScript对象(即{});链接该对象(设置该对象的constructor)到另一个对象 ;将步骤1新创建的对象作为this的上下文 ;如果该函数没有返回对象,则返回this。实现newnew 关键字进行的操作:创建一个空原创 2021-07-08 00:44:02 · 838 阅读 · 0 评论 -
手写 实现call、apply和bind方法 超详细!!!
call() 方法在使用一个指定的 this 值和若干个指定的参数值的前提下调用某个函数或方法。apply的实现和call很类似,但是需要注意他们的参数是不一样的,apply的第二个参数是数组或类数组.bind 和 call/apply 有一个很重要的区别,一个函数被 call/apply 的时候,会直接调用,但是 bind 会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,之后的一序列参数将会在传递的实参前传入作为它的参数。原创 2021-07-06 01:25:43 · 4049 阅读 · 14 评论 -
call、apply和bind方法的用法、区别和使用场景
在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。call()方法的作用和 apply() 方法类似,区别就是call()方法接受的是参数列表,而apply()方法接受的是一个参数数组。原创 2021-06-15 16:13:43 · 2661 阅读 · 12 评论 -
由浅入深,48条JavaScript知识点总结
再难苟且的生活还要继续,饭碗还是要继续找的。整理了一周,由浅入深,每(zhěng)天(lǐ)整(bù)理( yì)10条( qiú)左(diǎn)右(zàn), 希望对正在找工作的小伙伴有点帮助,文中如有表述不对,还请指出。原创 2021-06-09 17:13:02 · 1654 阅读 · 3 评论 -
谈谈你对JS执行上下文栈和作用域链的理解
JS的执行上下文和执行上下文栈执行上下文就是当前 JavaScript 代码被解析和执行时所在环境, JS执行上下文栈可以认为是一个存储函数调用的栈结构。当一段 JavaScript 代码在运行的时候,它实际上是运行在执行上下文中。JavaScript执行在单线程上,所有的代码都是排队执行。浏览器执行全局的代码时,首先创建全局的执行上下文,压入执行栈的顶部。每个函数会在执行的时候创建自己的执行上下文,并且把它压入执行栈的顶部。这个上下文就是通常说的 “本地上下文”。当前函数执行完毕并退出的时候,原创 2021-06-09 15:46:08 · 455 阅读 · 0 评论 -
一文搞定JavaScript的数据类型检测
面试题中经常会考js数据类型检测,我们今天一文彻底搞定这个问题。原创 2021-06-02 14:40:26 · 308 阅读 · 0 评论 -
vscode用户片段的快乐使用,动手实现一个自己的snippets
巧用vscode用户片段,动手实现一个自己的snippets,提高效率和生产力原创 2021-02-23 10:25:18 · 197 阅读 · 0 评论 -
2019 代码记录
目录1.技巧2.css表达式3.css深度选择器4.如何引用scss5.使用消息提示6.请求7.工具箱主界面透传8.js时间函数9.反显 场景110.调用接口的两种方法1.技巧全部选中以后直接按tab按shift+tab可以缩回2.css表达式css表达式calc可用于元素计算长度.wrapper { padding-top: 85px; .medicalOrder { height: 40%; padding-bottom: 10px; /deep/ .el-card__b原创 2020-12-24 16:51:44 · 274 阅读 · 2 评论 -
vscode使用chrome调试报错‘无法访问您的文件‘或者‘localhost 拒绝了我们的连接请求。‘
vscode使用chrome调试报错'无法访问您的文件'或者'localhost 拒绝了我们的连接请求。'原创 2020-11-04 18:37:43 · 16019 阅读 · 29 评论
分享