自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

祈澈菇凉

90后前端妹子,爱编程,爱运营,文艺与代码齐飞,魅力与智慧共存的程序媛一枚。

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

原创 我在小公司,当了五年的前端切图仔

我正在参与CSDN《新程序员》有奖征文:征文链接回顾自己的职业生涯,不知不觉当中,原来自己已经当了五年的程序媛了。五年仿佛一瞬之间的事情,但这一瞬间,深深回顾起来,却有着千言万语也道不完的故事~毕业之后初次入行2016年的那个难忘的夏天,暑假放假了,大家都高高兴兴的背起行囊,回家度过人生中最后一个有暑假的学生时代了。我也不例外,收拾好行李,却被一个电话告知,家乡处于一个暴雨抗洪的阶段,十几年难得一见的暴雨,已经淹没了回家必经的道路了,也就是说,回不去了。就这样被迫留在学校,想着呆在学校的两个月的无聊

2021-07-14 17:39:56 3565 37

转载 闷声发大财,赚钱别声张

在如今的环境中,人们常感叹大环境变差,然而,这对于不同阶层的影响是有差异的。对于底层和中产而言,大环境的变化似乎更为显著,本质上是人们的可支配收入减少,消费变得更加谨慎。比如,经济环境好时,人们逛街看到喜欢的包包可能毫不犹豫就买了;而环境差时,看上一套衣服都要再三斟酌价格。但实际上,人的需求并未改变,只是在消费时更加追求性价比,更希望每一分钱都花得值。这种变化对于企业有着不同的影响。那些缺乏竞争力...

2024-06-22 22:32:57 14

转载 人活着就是为了家庭搞钱

在追寻财富的道路上,我们常常困惑:为何富人越来越富,而自己努力许久却仍未收获理想的成果?其实,富人的财富积累并非单纯依靠埋头苦干,更多是源于对机遇的敏锐捕捉和对行业周期的精准判断。学校教育给予我们的书本知识,在现实的商业世界中往往难以直接套用。当我们怀揣着这些理论踏入充满变数的社会时,难免会遭遇挫折。财富从来都是对认知的补偿,而非对勤劳的嘉奖。富人深知行业周期的规律,在上升期全力以赴。当行业处于供...

2024-06-22 22:32:57 8

转载 生意模式:越简单,越挣钱

在商海中浮沉,似乎每个人都在寻找那个能让自己一夜暴富的神秘公式。然而,真正的商业智慧往往隐藏在那些看似简单却深刻的道理之中。复杂不等于成功我们常常听到一些创业者高谈阔论,谈论着如何构建商业生态,颠覆行业,甚至是改变世界。他们的商业计划充满了复杂的策略和宏伟的愿景,但往往忽视了一个基本的事实:生意的核心是交易,而交易的基础是需求。当一个生意模式变得过于复杂,涉及的变量太多,它失败的风险也在急剧增加。...

2024-06-22 22:32:57 31

转载 人到中年 闷声搞钱 绝不告诉熟人

最近,一则“42 岁月薪 5500 元的哥们儿被岳父母狠批”的消息在网上闹得沸沸扬扬,引发了无数人的关注和讨论。这看似是一个家庭内部的矛盾,但其背后所折射出的问题,却深深触动了我们每一个在现实生活中挣扎前行的人。身处钢城,周围皆是水泥丛林,我们都在为了生存而拼尽全力。然而,很多时候,即便我们耗尽心力,却依然难以获得令人满意的收入。就像这位 42 岁的男子,兢兢业业从事着普通工种,每月领着 5500...

2024-06-22 22:32:57 41

转载 信仰已经崩塌,大多数人只是活着

在这个纷繁复杂的世界里,我们每天都在为生活奔波,为梦想努力。但你是否曾停下来思考过,是什么在支撑着你的内心,让你在困难面前不屈不挠,让你在黑暗中依然保持光明?那就是信仰,每个人心中的那份独特的光芒。小时候,我们天真无邪,信仰如同童话般纯真。但随着年龄的增长,我们渐渐发现,人与人之间的差异不仅仅在于外表和经历,更在于内心深处的那份信仰。它决定了我们的选择,塑造了我们的性格,也决定了我们未来的道路。然...

2024-06-22 22:32:57 47

转载 不贷款!不生娃!不结婚!年轻人现状

朋友们,刚过去的周末,社融数据出炉了。5 月新增人民币贷款才 950 亿元,同比竟然少了 4100 亿!再看居民消费贷,新增只有 289 亿,而去年同期是 1988 亿。这明摆着告诉我们,大家在投资消费上那是相当保守,上杠杆的勇气是一点儿都没有。当下的年轻人都啥样呢?就说我上周末去吃烧烤的时候,隔壁桌四个女生,结账时抢着买单,其中一个上班的女生喊着:“就我在上班,你们抢啥!” 我当时啃着鸡翅,直接...

2024-06-22 22:32:57 37

原创 揭秘富人财富积累的秘密!

在探讨富人财富来源的问题时,我们常常陷入一种误区,认为他们的成功完全源于个人的努力。然而,如果我们仔细分析那些白手起家,最终积累巨额财富的富人的故事,我们会发现一个共同的模式:他们的财富往往源自于某个关键时刻的一次重大机遇,而这个机遇并非完全靠努力就能获得。我们要认识到,社会上大多数人对于财富的认知还停留在较为传统和保守的阶段。许多人认为,只要足够勤奋,就一定能够获得相应的回报。然而,现实情况远比...

2024-06-21 14:49:56 268

原创 Prop 和 State 有什么区别?

Prop 代表着组件的外部数据依赖,而 State 代表着组件的内部状态。合理地使用 Prop 和 State 有助于构建可复用、可维护的 React 组件。

2024-06-04 01:00:00 227

原创 什么是hoisting?

在上述代码中,变量 x 的声明被提升到了顶部,所以可以在赋值之前访问它,只不过它的值是 undefined。而函数 foo() 的整个声明(包括函数名和函数体)也被提升到了顶部,所以可以在声明之前调用它。Hoisting 是 JavaScript 中的一个特性,它指的是变量和函数声明在代码执行之前会被"提升"(Hoist)到它们所在作用域的顶部。这意味着你可以在声明变量或函数之前就使用它们。理解 Hoisting 有助于你更好地理解 JavaScript 的工作原理,并编写出更加可靠和预期的代码。

2024-06-03 10:02:06 449

原创 描述一下 Array.forEach() 循环和 Array.map() 方法之间的主要区别

forEach() 和 map() 都是非常有用的数组方法,但在具体使用时需要根据需求来选择合适的方法。

2024-06-03 10:00:46 556

原创 null、未定义或未声明的变量之间有什么区别?

null 是一个特殊的值,表示"没有值",而未定义的变量和未声明的变量都会导致 ReferenceError 异常。区分这三种情况有助于更好地理解 JavaScript 中变量的行为,并编写出更健壮、更可靠的代码。

2024-06-03 09:59:24 419 1

原创 解释 JavaScript 中“this”的工作原理

例如: function foo() { console.log(this.a);例如: const obj = { foo: function() { console.log(this);例如: const obj = { foo: () => { console.log(this);当函数被直接调用时(不是作为对象的方法),this 会默认指向全局对象(浏览器中为 window, Node.js 中为 global)。例如: function foo() { console.log(this);

2024-06-03 09:58:38 315

原创 可以举例说明 Vue 的模板语法在实际开发中的应用场景吗?

1:插值和指令:场景: 在一个博客页面上显示文章标题和内容。应用:使用 {{ title }} 插值来显示文章标题。使用 v-html 指令来渲染富文本格式的文章内容。2:事件处理:场景: 在一个按钮上添加点击事件,弹出提示框。应用:使用 @click 指令绑定点击事件,并调用 methods 中定义的事件处理函数 showAlert()。3:条件渲染:场景: 根据用户的登录状态显示不同的导航菜单。应用:使用 v-if 和 v-else 指令根据 isLoggedIn 状态渲染不同的

2024-06-03 09:49:29 469

原创 介绍 Vue 的常用模板语法,如插值、指令、事件处理、条件渲染、列表渲染

这些语法元素是 Vue 模板系统的核心部分,开发者可以利用它们构建出复杂的 UI 界面,实现各种交互效果。使用 v-if/v-else/v-else-if 指令根据表达式的值来决定是否渲染元素。使用 v-show 指令控制元素的显示/隐藏,适用于需要频繁切换的情况。指令是带有 v- 前缀的特殊属性,用于在模板中添加动态行为。使用 v-for 指令遍历数组或对象,并渲染相应的模板。v-if/v-else/v-else-if: 条件渲染。也可以使用 v-text 指令来设置元素的文本内容。

2024-06-03 09:46:54 194

原创 解释 Vuex 的核心概念,如 state、 getter、 mutation、 action 等,以及在大型项目中的应用

Vuex 提供了一种集中式的状态管理解决方案,在大型项目中能够帮助开发者更好地管理应用程序的复杂性,提高代码的可维护性和可扩展性。在 Vuex 中,所有的状态都集中在 store 中,这样可以确保数据的单一数据源。Getter 是 Vuex 中的计算属性,用于从 store 中派生新的状态。Mutation 必须是同步的,因为 Vuex 无法追踪异步操作的状态变化。Mutation 是 Vuex 中唯一可以直接修改 state 的方法。Vuex 的状态树,用于存储应用程序的数据。

2024-06-03 09:44:49 31

原创 介绍 Vue 中组件之间通信的几种方式,如 props、 event、 Vuex、 provide/inject 等

这种方式适用于简单的父子组件关系,但不推荐在复杂的组件树中使用,因为会破坏组件的独立性。Vuex 提供了统一的状态管理机制,适用于跨层级或无直接关系的组件之间的通信。父组件向子组件传递数据,子组件通过 props 接收父组件传递的数据。这种方式适用于跨层级的组件通信,尤其是当需要向深层子组件传递数据时。这种方式适用于无直接关系的组件之间的通信,但需要手动管理事件监听。父组件监听子组件的自定义事件,并在事件回调中处理数据。这是最基本的组件通信方式,适用于简单的父子组件关系。

2024-06-03 09:43:34 153

原创 如何在 Vue 中实现自定义的响应式系统?

在 Vue 组件中,我们使用 this.reactive() 方法将 state.count 属性转换为响应式数据。当 state.count 被修改时,setter 会触发相关依赖的更新。通过实现自定义的响应式系统,我们可以根据具体需求,扩展 Vue 的响应式行为,比如添加批量更新、性能优化、跨组件依赖管理等功能。在 Vue 中,我们可以通过自定义响应式系统来实现更复杂的数据处理需求。在这个示例中,我们定义了一个 ReactiveSystem 类,它包含了依赖收集、依赖通知和响应式化等核心功能。

2024-06-03 09:41:27 145

原创 Vue 的响应式系统原理

Vue 的响应式系统通过数据观测、依赖收集、变化检测和异步更新等机制,使得组件能够高效地响应数据的变化,从而实现了 UI 与数据的自动同步更新。当这些属性被访问或修改时,会触发相应的依赖收集或更新通知。Vue 将对组件的更新操作放入一个异步队列,并使用 nextTick 机制在下一个事件循环tick时批量更新队列中的组件,从而优化更新性能。当组件渲染时,Vue 会将所有被访问的数据属性记录为该组件的依赖。当数据对象的属性发生变化时,setter 会通知依赖跟踪系统,从而触发与该属性相关的组件的重新渲染。

2024-06-03 09:40:32 169

原创 如何使用 Vue CLI 创建和管理一个 Vue 项目

通过 Vue CLI,开发者可以快速搭建 Vue.js 项目,并通过丰富的插件和脚本命令来管理项目的各个方面,提高开发效率。掌握好 Vue CLI 的使用,对于 Vue.js 开发非常有帮助。Vue CLI 是一个基于 Node.js 的命令行工具,可以快速创建和管理 Vue.js 项目。可以在 vue.config.js 文件中自定义 webpack 配置、设置环境变量等。这将检查项目代码是否符合 ESLint 规则。1:安装 Vue CLI。

2024-06-03 09:39:12 201

原创 解释 Vue 组件的各个生命周期钩子函数及其用途

Vue 组件有一系列的生命周期钩子函数,每个钩子函数都有特定的用途。合理使用这些生命周期钩子函数,可以帮助开发者更好地管理组件的状态和行为。

2024-06-03 09:37:16 138

原创 在 Vue 组件中,如何确保 data 函数的正确使用?

在 data 函数内部,你可以访问组件实例的其他属性和方法,比如 this.someMethod()。为组件的 data 函数添加文档注释,解释每个数据属性的用途,以及如何初始化这些数据。通过遵循这些最佳实践,你可以确保在 Vue 组件中 data 函数的正确使用,提高代码质量和可维护性。这样可以确保每个组件实例都有独立的数据副本。为 data 函数编写单元测试,确保它返回正确的数据对象,并且能正确访问组件实例的属性和方法。将复杂的初始化逻辑放在 data 函数中,可以延迟到组件实例化时再执行,提高性能。

2024-06-03 09:33:21 68

原创 如何在 Vue 组件中正确地使用 data 函数?

在 Vue 组件中正确使用 data 函数可以确保每个组件实例都有独立的数据副本,并且可以更好地组织和管理组件的状态。遵循以上原则,可以写出更加高质量和可维护的 Vue 组件。

2024-06-03 09:31:22 224

原创 vue组件中data为什么必须是一个函数?

如果 data 是一个对象,那么当我们创建多个组件实例时,它们会共享同一个 data 对象。这意味着当一个组件实例修改了 data 中的数据,其他组件实例也会受到影响。这通常不是我们所期望的行为。当其中一个组件实例递增 count 时,另一个实例的 count 也会跟着变化,这可能不是我们想要的结果。总之,使用函数返回 data 对象可以确保每个组件实例都有独立的数据副本,避免了组件之间数据的相互影响。在 Vue.js 组件中,data 必须是一个函数,而不能是一个对象,这是因为组件是可复用的实例。

2024-05-31 16:59:09 128

原创 vue父组件如何向子组件传递数据?

在这个例子中,父组件将 parentMessage 数据传递给子组件的 message prop。子组件通过 props 选项接收并使用这个数据。总之,父子组件之间的数据传递是 Vue.js 中非常常见和重要的概念。掌握好这个概念对于理解和使用 Vue.js 至关重要。Vue.js 中,父组件向子组件传递数据的主要方式是通过 props。

2024-05-31 16:55:24 619

原创 请描述一下 cookies sessionStorage和localstorage区别

根据具体需求,合理选择使用哪种存储机制,以确保数据安全和应用性能。

2024-05-28 18:22:15 301

原创 Javascript中的定时器有哪些?他们的区别及用法是什么?

这些定时器函数各有特点,应根据具体需求选择合适的使用方式。例如,setTimeout 适用于延迟执行单次任务,setInterval 适用于重复执行任务,requestAnimationFrame 适用于流畅的动画,setImmediate 和 process.nextTick 则更适合在 Node.js 环境下使用。

2024-05-28 18:21:29 301

原创 了解CSS中的link和@import引入CSS的区别

【代码】了解CSS中的link和@import引入CSS的区别。

2024-05-28 13:09:25 226

原创 如何使用navigator对象,手写一个正则表达式验证邮箱

这个正则表达式可以满足大部分常见的邮箱地址格式,但也不能完全保证 100% 的准确性,因为邮箱地址的格式规则可能会随时变化。在实际应用中,最好结合其他验证手段,如服务端验证等,以确保邮箱地址的有效性。navigator 对象是 JavaScript 中的一个内置对象,用于获取浏览器和操作系统的信息。1:如何使用 navigator 对象。2:手写一个正则表达式验证邮箱。

2024-05-28 13:07:39 535

原创 XML和JSON的区别

JSON更加简洁紧凑,解析更加高效,因此在现代Web开发中更加流行。但XML可以表达更丰富的数据结构,在一些特定领域(如配置文件、文档格式等)仍有广泛应用。具体使用哪种格式,需要根据实际项目需求进行权衡和选择。

2024-05-28 13:06:04 622

原创 使用XMLHttpRequest对象进行网络请求的步骤

这就是使用XMLHttpRequest对象进行网络请求的基本步骤。现在大多数情况下会使用更简单的Fetch API或者基于Axios的库来发送网络请求,它们提供了更简洁的API和更好的错误处理等功能。如果需要设置请求头,可以在此步骤完成。

2024-05-28 13:04:13 376

原创 解释浏览器缓存和本地存储的区别,以及如何实现事件的防抖和节流

浏览器缓存和本地存储是两种不同的数据存储机制,前者是临时性的,后者是持久性的。事件的防抖和节流则是用于限制事件触发频率的技术,可以提高页面性能。

2024-05-28 13:01:50 96

原创 React和Vue的难点在哪里,以及它们各自的双向绑定原理和响应式系统

React和Vue各有优缺点,选择使用哪个框架需要结合实际项目需求和开发团队的技术栈。React更适合追求性能和灵活性的项目,而Vue则更适合追求快速开发和易上手的项目。

2024-05-28 12:59:19 46

原创 解释“this”的工作原理,原型继承如何工作,以及如何实现手写JS继承。还包括Array对象自带的方法列举,以及如何使用闭包。

这些概念涵盖了 JavaScript 的核心知识点,掌握它们能够帮助你更好地理解和使用 JavaScript。

2024-05-28 12:58:36 163

原创 如何使低版本浏览器支持HTML5标签,以及如何实现布局中的左边固定宽度、右边自适应,并设置滚动条自动选择最高的那个

同时,我们设置容器的高度为视口高度 height: 100vh,并添加 overflow: auto 属性,这样当内容超出容器高度时,会自动出现滚动条。Modernizr 是一个功能更强大的 JavaScript 库,不仅可以让低版本浏览器支持 HTML5 标签,还可以检测浏览器对 HTML5 和 CSS3 的支持情况,并根据支持情况做出相应的处理。HTML5 Shiv 是一个 JavaScript 库,可以让低版本的 IE 浏览器(IE6-IE9)识别和渲染 HTML5 标签。

2024-05-28 12:53:49 144

原创 已知sqrt(2)约等于1.414,要求不用数学库,求sqrt(2)精确到小数点后10位

3,在每次迭代中,我们使用当前的猜测值 guess 计算出新的猜测值 root。4,我们不断迭代,直到当前猜测值 root 和上一次猜测值 guess 的差的绝对值小于所需的精度 (这里是 10^-10)。它的核心思想是,从一个初始猜测值开始,通过不断迭代更新猜测值,最终收敛到方程的根。通过这种方法,我们不需要使用任何数学库,就可以求出 sqrt(2) 的值,精确到小数点后 10 位。2,对于求平方根,我们可以将方程表述为 x^2 - a = 0,其中 a 是待求的平方根。

2024-05-28 12:50:52 140

原创 如何实现一个高效的单向链表逆序输出?

这个方法首先调用 reverse_list() 函数来反转链表,得到新的头节点 new_head。然后,我们遍历反转后的链表,将每个节点的值添加到结果列表 result 中,最终返回该列表。这种方法的时间复杂度为 O(n),其中 n 是链表的长度,因为我们需要遍历整个链表两次:一次是反转链表,一次是输出链表。这是一种高效的单向链表逆序输出的方法,既不需要使用额外的数据结构,也不需要进行递归调用,因此性能较好。3,当 current 为 None 时,链表已经完全逆序,此时 prev 指向链表的新头节点。

2024-05-28 12:48:27 228

原创 什么是浏览器的同源策略(Same-Origin Policy),以及如何通过CORS(跨源资源共享)解决跨域访问的问题

如果服务器设置了合适的CORS头部,浏览器在收到响应时会检查该头部的值,如果当前页面的域名在允许的访问列表中,就会允许跨域访问。同源策略的目的是保护用户的隐私和安全,防止恶意网站获取或篡改其他网站的数据。CORS是一种机制,允许服务器在响应中设置一些特殊的HTTP头部,以授权其他域名下的页面访问自己的资源。需要注意的是,CORS是在浏览器端实施的安全机制,服务器需要进行相应的配置以支持CORS。同源策略规定,当一个页面加载了来自特定源的资源后,该页面只能与同源的资源进行交互,而无法直接访问其他源的资源。

2024-04-09 16:04:09 284

原创 什么是虚拟DOM(Virtual DOM),以及它在React或其他前端框架中的作用?

通过使用虚拟DOM,框架可以避免频繁的实际DOM操作,从而提高页面的渲染性能。另外,虚拟DOM的比对算法通常是高度优化的,只需要对比树的结构和属性的变化,而不是每个具体的DOM元素。在传统的前端开发中,当页面中的数据发生变化时,通常需要直接操作实际的DOM元素来更新页面。这会导致频繁的DOM操作,而DOM操作通常是相对较慢的,尤其是在大规模的数据变更时。虚拟DOM的作用是在数据变化时,通过对比新旧虚拟DOM树的差异,仅对真正需要更新的部分进行实际的DOM操作,以减少不必要的性能开销。

2024-04-09 16:03:03 867 1

原创 什么是盒模型(Box Model)并说明其组成部分?

在CSS中,可以使用box-sizing属性来定义元素的盒模型类型。还有一个常用的值是border-box,它使得元素的宽度和高度包括了内容区域、内边距和边框的总和,更方便进行布局计算。每个HTML元素都可以看作是一个矩形的盒子,这个盒子由四个部分组成:内容区域(content)、内边距(padding)、边框(border)和外边距(margin)。盒模型的大小可以通过宽度(width)和高度(height)属性来定义,而内边距、边框和外边距的大小会影响盒子在页面中的布局和相互之间的间距。

2024-04-09 16:02:06 448

空空如也

空空如也

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

TA关注的人

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