![](https://img-blog.csdnimg.cn/20210326141910231.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
javascrip基础知识
文章平均质量分 93
只有掌握基础知识是通往高级的大门
球球不吃虾
合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。
展开
-
整理一下实用的JavaScript代码风格(一)
在JavaScript开发中,遵循一定的编码规范和风格不仅能够提升代码的可读性,还能增强团队协作的效率,确保代码的一致性和可维护性。以下是一些实用的JavaScript代码风格建议,帮助你编写出更加优雅、高效的代码。这些方法可能被相关对象上的属性所掩盖——考虑——或者,该对象可能是一个空对象。在支持ES2022的现代浏览器中,或者使用诸如https://www.npmjs.com/package/object.hasown、Object。hasOwn也可以作为Object.prototype.hasOwnP原创 2024-06-25 09:41:47 · 903 阅读 · 0 评论 -
前端开发者必知的缓存淘汰策略:LRU算法解析与实践
LRU算法作为前端开发者工具箱中的一种重要武器,在提升应用性能、降低资源消耗方面发挥着不可忽视的作用。希望这篇博客能帮助你更好地理解和运用LRU算法,让我们的前端应用更加高效和流畅!愿你在编程之路上不断积累知识,如同LRU缓存中的数据一样,总是保留最新的智慧,淘汰掉陈旧的困扰!原创 2024-02-19 09:17:16 · 1741 阅读 · 0 评论 -
JavaScript 中实现常见数据结构:栈、队列与树
理解并掌握这些基础数据结构就像是拥有了强大的工具箱,使我们在前端编程世界中游刃有余。让我们一起成长,就如同栈中的元素不断积累,如同队列中的任务逐个完成,如同树般枝繁叶茂,向着技术的高峰攀登!while (!"));// 输出:"developers!愿每位开发者都能在学习过程中收获满满的快乐!原创 2024-02-18 13:47:56 · 497 阅读 · 0 评论 -
高阶函数离不开闭包
在JavaScript中,高阶函数是指那些以函数作为参数或返回函数的函数。高阶函数是函数式编程的重要组成部分,它们提供了强大的抽象和组合能力,使得代码更加模块化和可重用。原创 2024-01-26 15:39:18 · 1017 阅读 · 0 评论 -
JavaScript闭包基础
在JavaScript中,当一个函数可以记住并访问其所在的词法作用域时,就产生了闭包,即使函数是在其词法作用域之外执行的。换句话说,闭包给了你一种从函数外部访问函数内部作用域的方法。// 输出 'I am from outer function!在这个例子中,可以访问的作用域,即使是在外部执行的。这就是闭包。原创 2024-01-26 15:24:44 · 478 阅读 · 0 评论 -
早期 JavaScript 中的高阶函数与模块化实现
高阶函数(Higher-Order Functions)是指那些接受一个或多个函数作为参数,或者返回一个函数的函数。在 JavaScript 中,函数是一等公民,可以作为参数传递,也可以作为返回值。这使得高阶函数在 JavaScript 中有着广泛的应用。原创 2024-01-29 08:59:39 · 897 阅读 · 0 评论 -
Promise的链式调用案例讲解
这篇文章通过一个小案例,一起了解Promise的链式调用。原创 2024-01-24 14:07:43 · 1267 阅读 · 0 评论 -
学会JavaScript正则表达式(二)
概念描述示例分组与捕获使用()创建分组,可以捕获匹配的子字符串匹配日期格式边界匹配使用和匹配字符串的开始和结束^Hello匹配以 “Hello” 开头的字符串回溯引用使用\n引用之前捕获的分组匹配重复的单词预查断言使用=...)和!...)进行正向肯定或否定预查\b\w+(?=\d)匹配后面紧跟数字的单词这个图表总结了进阶概念的关键点,并提供了简短的示例来帮助理解每个概念的应用。在实际应用中,这些概念可以组合使用,以创建更复杂和强大的正则表达式。原创 2024-01-23 10:45:00 · 913 阅读 · 0 评论 -
学会JavaScript正则表达式(一)
模式描述示例全局(g)搜索整个字符串以找到所有匹配项/foo/g不区分大小写(i)在匹配时忽略大小写/FOO/i多行(m)使和匹配任何行的开始和结束/^foo/m(使用exec方法循环查找)在实际应用中,这些模式可以单独使用,也可以组合使用,以满足特定的匹配需求。例如,/foo/gi会匹配字符串中所有出现的“foo”,不区分大小写。特殊字符/字符类描述示例\d匹配任何数字字符\d匹配 “1”, “2”, “3” 等\w匹配任何字母、数字或下划线字符\w。原创 2024-01-23 08:15:00 · 984 阅读 · 0 评论 -
经常混,还是记下来吧,forin和forof的用法
1、for of 默认情况下是调用对象的iterator,一般用于 Array, String ,Map, Set, arguments, DOM data。let a = [{ name: "wre", age: 123}, { name: "whhjkre", age: 123}, { name: "wrhje", age: 123}, { name: "wjhjre", age: 123}]let obj = { n原创 2021-07-08 14:39:42 · 4160 阅读 · 0 评论 -
TypeScript内置类型一览(Record<string,any>等等)
TypeScript中Record是啥?现在让我们来了解一下TypeScript官方的内置类型,让你的开发效率再上一层楼。原创 2022-08-03 19:44:26 · 6039 阅读 · 0 评论 -
canvas内容移动与交互
canvas里的内容绘制上去之后,无法直接进行控制。创建一个用来维护canvas中内容的对象canvas每次绘制都是从可维护的内容对象中取值,进行绘制的。 class Circle { constructor(id, x, y, r) { this.id = id this.x = x this.y = y this.r = r ..原创 2021-10-09 15:31:40 · 991 阅读 · 0 评论 -
JS中的内存管理
内存管理简介像C语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。相反,JavaScript是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。 释放的过程称为垃圾回收。这个“自动”是混乱的根源,并让JavaScript(和其他高级语言)开发者错误的感觉他们可以不关心内存管理。 内存生命周期不管什么程序语言,内存生命周期基本是一致的: 分配你所需要的内存 使用分配到的内存(读、写)转载 2021-06-09 10:15:17 · 101 阅读 · 0 评论 -
将websocket封装成一个class,断线可重连
在现代的Web应用中,WebSocket已经成为了一种常见的协议,用于在客户端和服务器之间建立持久性的双向通信。然而,WebSocket连接可能会因为各种原因(如网络不稳定、服务器重启等)而断开。为了提高应用的稳定性和用户体验,我们需要一种机制来在连接断开时自动重连。本文将介绍如何将WebSocket封装成一个可重连的Class,以便在项目中方便地使用。原创 2021-06-03 09:05:31 · 1616 阅读 · 8 评论 -
请详细介绍一下从输入 URL 到页面加载完成的过程
一、前言有这么一道面试题,如下:面试题:请详细介绍一下从输入 URL 到页面加载完成的过程?这道题的覆盖面可以非常广,很适合作为一道承载知识体系的题目。每一个前端人员,如果要往更高阶发展,必然会将自己的知识体系梳理一遍,没有牢固的知识体系,无法往更高处走!你不信这道题承载的知识体系庞大?往下看二、分析题干在对于这道题上,如果对于面试官想要知道的是:简单叙述还是深入叙述。所以需要回答到关键词上,不然多而杂,效果不好,抓不住重点。接下来我们从主干流程和深入的详细叙述分别介绍,我觉得这道面试题可能需要15分转载 2021-05-31 11:00:01 · 400 阅读 · 0 评论 -
JS中发布/订阅模式的简单应用
在个模式的好处自安于能够对代码进行解耦,实现了“高内聚,低耦合”的理念。1.建立一个事件总线。2.发布事件。3.订阅事件。//事件总线,管理事件class Notcice { #arr = new Map() constructor() { } add(str, fn) { if (this.#arr.has(str)) { this.#arr.set(str, fn) } else {原创 2021-04-01 15:04:34 · 505 阅读 · 1 评论 -
javascrip中的数据劫持与数据代理
一、用Object.defineProperty实现数据劫持首先,举一个例子,VUE2中的响应式原理:当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项,Vue 将遍历此对象所有的 property,并使用Object.defineProperty 把这些 property 全部转为getter/setter。Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是 Vue 不支持IE8 以及更低版本浏览器的原因。这些 ge原创 2021-04-01 13:46:31 · 690 阅读 · 1 评论 -
javascrip中this指向性问题详解
一、this是谁?“谁调用他,this就指向谁”,这句话并不全面。1.全局环境中的thisfunction f1(){ console.log(this)}function f2(){ 'use strict' console.log(this)}f1()//windowf2()//undefined隐式的简单调用函数时,严格模式下this是undefined;非严格模式下this会绑定到全局对象window/golbal上2.一个简单对象中的thisconst person原创 2021-03-29 17:35:34 · 210 阅读 · 1 评论 -
深入理解JavaScript对象创建
一、Object构造函数创建对象let a = {}//字面量的方式创建let a = new Object()//Object构造函数创建let a = Object.creat(Object.prototype)上面方式是等价的,都是创建了一个原型为Object.prototype的空对象let b = Object.creat(null)这是创建一个原型为null的空对象Object.create(proto,[propertiesObject])方法创建一个新对象,使用现有的对象原创 2021-03-22 15:03:03 · 275 阅读 · 3 评论