JS
文章平均质量分 77
记录学习JS的过程吧
樱丸小桃子啊
有人见星辰 有人见尘埃
展开
-
react原生函数实现页面滚动到一定高度后显示悬浮按钮
需求背景:当页面很长的时候,我们希望当滑过某一按钮后,它能在接下来的区域以一个小的悬浮按钮的形式固定在页面右侧,类似于一键回到顶部那种按钮的效果,不过这个按钮的事件我们可以随意添加,不一定是要用来回到页面顶部。整体逻辑就是 监听页面滚轮高度 当达到某个值以后 将按钮的display值置为block 让他展示出来 用的是react hook原创 2022-10-12 16:50:13 · 733 阅读 · 1 评论 -
带你秒懂 SSR-服务端渲染
首先回顾一下页面的渲染其实就是浏览器将HTML文本转化为页面帧的过程。而如今我们大部分WEB应用都是使用 JavaScript 框架(Vue、React、Angular)进行页面渲染的,也就是说,在执行 JavaScript 脚本的时候,HTML页面已经开始解析并且构建DOM树了,JavaScript 脚本只是动态的改变 DOM 树的结构,使得页面成为希望成为的样子,这种渲染方式叫动态渲染,也可以叫(CSR)。原创 2022-09-18 23:18:00 · 3395 阅读 · 0 评论 -
【动态规划】- js 求解打家劫舍问题
首先来看最简单的两种情况,如果只有一间房屋,那这个屋子就是最高的金额,如果有两间房屋,那不能同时偷,只能偷其中其中金额高的那间,如果大于两间屋子,就要进行讨论了。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。.原创 2022-08-14 23:08:13 · 400 阅读 · 1 评论 -
【动态规划】- js 求解买卖股票问题
遍历数组,如果当前数组元素小于最小值民,就更新最小值,始终让其保持最小。给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。同时,你不能在买入前卖出股票。我们需要对股票进行一次买入、一次卖出,卖出在买入之后,并且要计算最大的利润。...原创 2022-08-14 22:58:47 · 492 阅读 · 1 评论 -
【二叉树】- 层序遍历( js 实现)
层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。这种遍历的方式和我们之前学习的都不太一样。需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。而这种层序遍历方式就是图论中的广度优先遍历,只不过我们应用在二叉树上。使用队列实现二叉树广度优先遍历...原创 2022-08-07 19:55:22 · 1413 阅读 · 0 评论 -
【二叉树】- 迭代遍历( js 实现前、中、后序)
递归的实现就是:每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,所以这就是递归为什么可以返回上一层位置的原因。那么大家应该知道我们用栈也可以是实现二叉树的前后中序遍历了。...原创 2022-08-07 19:31:52 · 447 阅读 · 0 评论 -
【二叉树】- 递归遍历( js 实现前、中、后序)
首先需要确定下来递归算法的三个要素。1,确定递归函数的参数和返回值> 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。2,确定终止条件> 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。3,确定单层递归的逻辑> 确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现原创 2022-08-07 18:17:34 · 141 阅读 · 0 评论 -
【网页性能优化】SPA(单页面应用)首屏加载速度慢怎么办?
首屏时间(FirstContentfulPaint),指的是浏览器从响应用户输入网址地址,到首屏内容渲染完成的时间,此时整个网页不一定要全部渲染完成,但需要展示当前视窗需要的内容首屏加载可以说是用户体验中最重要的环节资源加载优化和页面渲染优化大家可以根据自己项目的情况选择各种方式进行首屏渲染的优化https。...原创 2022-07-23 13:37:37 · 340 阅读 · 0 评论 -
遍历数组的方法有哪些?for循环 forEach for/in for/of map的性能又有什么差别 该如何选择?
如何挑选性能最佳的方法对我们的开发有非常大的帮助。数组的遍历方法有哪些?for循环,forEach,for…in,for…of,map,every,some,reduce,filter他们的性能有没有高低之分呢?原创 2022-07-22 23:52:01 · 308 阅读 · 0 评论 -
【网页性能优化】-—— 关于图片懒加载
懒加载是一种网页性能优化的方式,它能极大的提升用户体验。就比如说图片,图片一直是影响网页性能的主要元凶,现在一张图片超过几兆已经是很经常的事了。如果每次进入页面就请求所有的图片资源,那么可能等图片加载出来用户也早就走了。所以,我们需要懒加载,进入页面的时候,只请求可视区域的图片资源。全部加载的话会影响用户的体验浪费用户的流量,有些用户并不想全部看完,全部加载会耗费大量流量提示以下是本篇文章正文内容,下面案例可供参考。...原创 2022-07-21 00:16:34 · 1120 阅读 · 0 评论 -
Promise.then()的两个参数是什么,分别是干什么的?第二个参数和catch的区别
Promise.then()的第二个参数与catch的区别,哪一个更好一点?为什么?原创 2022-05-07 20:33:06 · 3337 阅读 · 1 评论 -
异步编程:一次搞懂Promise,async,await
文章目录前言一、回调函数二、Promise三、错误处理四、async/awaitawait使用时的陷阱123总结前言异步编程允许我们在执行一个长时间任务时,程序不需要进行等待,而是继续执行之后的代码,知道这些任务完成之后再回来通知你,通常是以回调函数(callback)的形式,这种编程模式避免了程序的阻塞,大大提高了CPU的执行效率,尤其适用于IO密集的,例如需要经常进行网络操作数据库访问的应用。如果大家还不是很清楚并发、并行、异步、同步的概念,可以先去看看我之前的博客并发&并行&原创 2022-03-21 19:12:07 · 1341 阅读 · 2 评论 -
vscode中使用npm安装babel
文章目录前言一、检查是否已经安装了npm二、配置bable三、在VScode中进行配置前言上篇介绍了nodejs的安装配置,这篇来介绍一下在VScode里面怎么使用bable。bable是一个广泛使用的ES6转换器,可以将ES6代码转为ES5代码一、检查是否已经安装了npm在cmd中输入npm -v 得到版本号,现在新版的nodejs在安装的时候已经自动安装了npm。还是那句话,最好还是以管理员身份打开终端。二、配置bable在终端中安装bable,输入 npm install –g原创 2021-08-01 21:28:48 · 1872 阅读 · 0 评论 -
Windows环境下node.js安装及环境配置【超详细】
文章目录前言一、安装包下载及安装二、配置相关环境1.环境配置2.测试三、安装cnpm前言今天自己在家安装node.js真的是遇到了好多问题(虽然别的同学根据网上的教程都很顺利的完成了)呜呜呜为什么我从来都没有顺顺利利的独立完成过软件的安装所以在历经千辛万苦终于装好以后我一定要好好记录一下(我怕下次就又忘了(;′⌒`))一、安装包下载及安装这里我还是按照自己的电脑来说(别的我也不太会〒▽〒 )1.前往nodejs官网下载→点这里下载这个Windows64位的2.点击安装,选择自己要原创 2021-08-01 20:31:48 · 6791 阅读 · 1 评论 -
ES6_新的声明方式
ES6_新的声明方式作用域全局作用域函数作用域块状作用域动态作用域let1. let 声明的全局变量不是全局对象window的属性2. 用let定义变量不允许重复声明3. let声明的变量不存在变量提升4. let声明的变量具有暂时性死区5. let 声明的变量拥有块级作用域作用域什么是作用域?几乎所有编程语言就是在变量中存储值,并且能读取和修改此值。事实上,在变量中存储值和取出值的能力,给程序赋予了状态。 如果没有这样的概念,一个程序虽然可以执行一些任务,但是它们将会受到极大的限制而且不会非常有趣。原创 2021-07-21 16:24:29 · 139 阅读 · 0 评论