- 博客(149)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 JavaScript睡前练习题来啦
1.现有一组人员年龄的数据,要求将这些人员的年龄按照从小到大的顺序进行排列起来,要怎样来实现()function numberSort(a,b){ return a - b;}var arr=new Array("23","6","12","35","76");document.write(arr.push(numberSort));function numberSort(a,b){ return b - a;}var arr=new Array("23","6","12"
2022-03-18 17:09:21 2234 2
原创 canvas画星星
实现点击按钮播放与暂停,实现随机放置星星。详细技术:canvas画布。web前端技术基础大作业2。技术:html+css。
2023-03-27 11:55:38 478 2
原创 七夕特辑之心形的线
为什么会有两个方程表达式?因为心形线的水平方向 和 垂直方向 对应的方程表达式不同,而用相同的方程表达式画的心形线,把每个点的 x 坐标和 y 坐标交换下,又会改变方向,所以会有两个方程表达式。心形线,是一个圆上的固定一点在它绕着与其相切且半径相同的另外一个圆周滚动时所形成的轨迹,因其形状像心形而得名。根据方程表达式得到所有点的坐标,然后把每个点连接起来,然后填充,最后就行成一个心形了。上面的代码是画一个实心的心形,当然我们也可以画空心的,只需要做出一点点的修改就可以。:是一个常数,用来控制心形的大小,..
2022-08-04 21:06:13 821
原创 多行文本的展开和收起(纯css)
点击按钮时展开,文本铺满后收起,全程无js代码,不获取dom元素实现这个过程。毫无疑问需要有一个总体的容器包裹以下元素:text内容,按钮由于纯css实现,则需要利用input的checkbox + label for来实现点击按钮的操作。...
2022-07-22 13:53:01 2892 1
原创 git上传代码至远程仓库(超详细)
git真的在团队开发中必不可少。自己看文档踩了无数次坑,报了无数次错,一直晕忽忽。终于终于在请教了同事的帮助下,可以自己完成独立上传了,我太开心了,同事们真好呜呜,那么让我来教还不会的同学一步一步git上传吧!会了之后真的很简单。不要怕!首先,下载好git这个插件,看清楚电脑是32位还是64位。直接傻瓜式安装就好。下一步 --> 下一步的点击就可以。安装好之后右键点击设置可以看到“git bash here” 就是安装成功了进入页面后输入创建一个新的仓库: 然后,添加你的远程仓库地址:...
2022-07-12 14:12:29 21904
原创 二叉树的层序遍历与镜像翻转js
题目:给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]思路:首先把根节点放在queue数组中,再另外创建now=[ ],作为每一个返回数组的外壳。for循环遍历数组queue,循环条件=queue的长度。第一次循环长度就为root根节点,也就是一次。在for循环中取出queue的头节点放在now数组中,第一个[3]成功获得。(
2022-05-06 23:35:07 459
原创 React Redux步骤详细分析2
首先建立counter.js,是抽离出的页面UI的组件。//01UI组件function Counter(props){ const {value,increament,decreament} = props return ( <p> Clicked:{value} times <button onClick={increament}>+</button> <button onC
2022-05-05 23:48:02 422 1
原创 找出游戏中的获胜者
题目:共有 n 名小伙伴一起做游戏。小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号。确切地说,从第 i 名小伙伴顺时针移动一位会到达第 (i+1) 名小伙伴的位置,其中 1 <= i < n ,从第 n 名小伙伴顺时针移动一位会回到第 1 名小伙伴的位置。游戏遵循如下规则:从第 1 名小伙伴所在位置 开始 。沿着顺时针方向数 k 名小伙伴,计数时需要 包含 起始时的那位小伙伴。逐个绕圈进行计数,一些小伙伴可能会被数过不止一次。你数到的最后一名小伙伴需要离开圈子,并视作输掉
2022-05-04 09:14:14 205
原创 redux初学思路清晰
redux是javascript状态容器,我觉得它分为三部分:reducer,store,action。三者之间的关系:每个应用中只有一个store,每个store中可以有很多个reducer,在reducer中有一个action属性。例如: action{type:"increatment",data}。每个状态都是存在于store中的,如果想改变状态就要触发action。描述action是如何改变state的,需要编写reducer.js。也就是说,有store中的index.js,引入
2022-05-03 16:59:41 374
原创 k个一组翻转链表js
输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5]如果我设法把前 2 个节点反转,那么后面的那些节点怎么处理?后面的这些节点也是一条链表,而且规模(长度)比原来这条链表小,这就叫子问题。因为子问题和原问题的结构完全相同,这就是所谓的递归性质。输入:head = [1,2,3,4,5], k = 3输出:[3,2,1,4,5]思路:有很多组个k需要反转,例如图1,有两组k个值需要反转;图2有一组k个值需要反转。设置每组头节点为a,第k...
2022-05-03 11:08:54 474
原创 Can‘t resolve ‘redux‘ in
特意查了官网后发现我的步骤没有出错,大可能是稳定版与新版本有差异还是怎么的,安装redux稳定版就可以找到redux了,不建议构建react现在18.0版本,,,实在是太新了,,总报错.....解决方法: npm install --save redux react-redux亲测有效!...
2022-05-01 14:07:57 936 1
原创 困难:k个一组翻转链表js
输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5]如果我设法把前 2 个节点反转,那么后面的那些节点怎么处理?后面的这些节点也是一条链表,而且规模(长度)比原来这条链表小,这就叫子问题。因为子问题和原问题的结构完全相同,这就是所谓的递归性质。输入:head = [1,2,3,4,5], k = 3输出:[3,2,1,4,5]思路:有很多组个k需要反转,例如图1,有两组k个值需要反转;图2有一组k个值需要反转。设置每组头节点为a,第k...
2022-04-29 11:46:41 930
原创 合并两个有序链表js
题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]分析:设置一个伪指针作为拉链,同时在两个链表上分别放置一个指针,两串链表相当于拉索,尾指针在两串链表之间移动,模拟拉拉链的模样。起初letdummy=...
2022-04-27 20:36:31 1040
原创 移动零JS
题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]分析:两个指针分别在头部开始,右指针移动,如果右指针不是零,则给左指针赋值,如果右指针是0,直接跳过。代码:/** * @param {number[]} nums * @return {void} Do not return an
2022-04-26 17:34:05 515
原创 三数之和JS详细解说
题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]思路:(注意:不重复的三元数组,所以需要不断判断来去重的)首先,将数组从小到大sort一下排序,令i从第一位开始固定,从i往后设置两个指针(头指针与尾指针),使这两个
2022-04-23 20:38:39 1698
原创 js查找数组下标
题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。方法1:递归思路:先找到中间位置,判断是否是需要寻找的目标值,如果是就返回,不是的话判断目标值和中间元素的大小,然后继续向左右子树递归寻找复杂度:时间复杂度O(logn),空间复杂度O(logn),递归栈大小方法2:非递归思路:定义left、right指针,比较目标元素和中间元素的大小,然后不断缩小左右指针的范围继续
2022-04-21 12:43:16 7656
原创 js返回元素的第一个和最后一个位置
题目:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。分析:题目中提到开始位置与结束位置,我们立马就想到双指针,指向头指针与尾指针。因为数组已经有序,所以可以利用二分查找来找目标值target的具体位置。循环条件:左指针小于等于右指针。二分查找:mid=(left+right)>>1,(向上取整),如果目标值恰好等于中间值,则跳出循环,我们先放着等会说。
2022-04-20 17:44:19 1182
原创 手撕JavaScript代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>D.
2022-04-19 13:57:51 193
原创 todolist简单草图react版
无组件分布,无组件分布,无组件分布,全是css全是js的dom节点。是简单的草图首先定义两个变量tasks 与 task ,分别装li里的数据与Input里面的数据。 state = { tasks: [], task: "" }在input中设置状态改变事件,当改变时把输入框中的内容同步给此时的task添加任务时,点击按钮,并且加入index与date。 //添加任务 h
2022-04-17 21:55:07 400
原创 vue中data为什么是函数而不是一个对象呢
我们需要清楚js中的对象是引用类型的数据,当多个实例引用同一个对象的时候,只要其中一个实例对这个对象进行操作,其他实例中的数据也会发生改变。而在vue中,我们更多的是想要复用组件,那就需要每个组件都有自己独立的数据,这样组件之间才不会相互干扰。所以组件中的数据要写成函数的形式。数据以函数返回值的形式定义,这样当我们每次复用组件时,就会返回一个新的data,也就是说每个组件都有自己的私有数据空间,维护自己的数据,不会干扰其他组件的正常运行。css实现水平/垂直居中的几种方法1.利用flex,将
2022-04-15 12:39:13 405
原创 react获取输入框的内容ref
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Do.
2022-04-15 12:17:43 390
原创 react练习题
1.在函数组件中使用哪个Hook可以包裹副作用(改变 DOM、添加订阅、设置定时器、记录日志等)useReduceruseStateuseEffectuseCallback2.以下不属于react支持的剪贴板事件的onCopyonPasteonCutonBeforeCopy3.class组件生命周期方法对应到函数组件和Hook,以下说法错误的是render => 这是函数组件体本身getSnapshotBeforeUpdate 目前没
2022-04-09 17:25:48 1954
原创 解决跨域的方式?
Ajax解决跨域方案一:(jsonp)jsonp:jsonp是json的一种使用模式,可以让网页从别的域名那里获取数据。Ajax解决跨域方案二:(cors)当Ajax发送请求时,服务器会返回一个响应头,相当于服务器指定了可以访问该接口的白名单。Ajax解决跨域方案三:(服务器转发)服务器端向第三方服务器发送请求,得到数据并返回给客户端。扩展:和跨域有关的cors几个响应头和请求头。(九个)请求头三个:origin access-control-request-headers
2022-04-08 14:43:34 4994
原创 javascript练习题
1.假设document是HTML文档中的一个节点,点击该节点后会发生什么?function test() { this.flag = false; this.change = () => { this.flag = true; console.log(button.flag); };}const button = new test();document.addEventListener("click", button.change);解析:这...
2022-04-07 20:37:58 182
原创 用javascript实现用户登录验证的代码。
几种方法,仅供参考: var getCheckObject = function() { var tipP = tip = document.createElement("p"); tip.appendChild(document.createTextNode("密码错误")); var tipU = tip = document.createElement("p"); tip.appendChild(document.createTextNode("用户名错误"));.
2022-04-05 19:53:34 6058 1
原创 请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。
分析:首先设置一个空数组,两个指针,其中一个指针从第一个开始遍历Array元素,另一个指针从它的下一个开始遍历Array元素,判断这两个指针所指元素是否相等,如果相等则把这个元素push在空数组中;如果不相等,则第二个指针向后挪一位,在进行判断,直到挪到最后一位则判断完毕。再从第一个指针向后挪一位开始判断......如此循环。代码实现如下:Array.prototypr.distinct(){ var res = [] for(var i = 0 ; i<this.len.
2022-04-05 19:51:01 770
原创 箭头函数和普通函数有什么区别?在地址栏里输入一个地址回车会发生哪些事情?
箭头函数简单: 只有一个参数,可以省略() 只有一条命令语句 ,可以省略{} 只有一条命令语句 且是return,可以省略{}和 return 箭头函数与普通函数区别: 没有arguments(伪数组),有扩展运算符得到的是真数组 this指向是当前作用域以外的那个作用域 不能做构造函数 1.箭头函数没有自己的this 箭头函数不会创建自己的this,所以它没有自己的this,它只会在自己作用域的上一层继承this。所..
2022-04-04 15:09:56 93
原创 原型与原型链--清晰图解
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title&...
2022-04-04 14:58:31 646
原创 对象赋值-深拷贝-浅拷贝
当我们把一个对象赋值给一个新的变量时,赋的其实是该对象的在栈中的地址,而不是堆中的数据。也就是两个对象指向的是同一个存储空间,无论哪个对象发生改变,其实都是改变的存储空间的内容,因此,两个对象是联动的。 // 对象赋值let obj1 = { name : '浪里行舟', arr : [1,[2,3],4],};let obj2 = obj1;obj2.name = "阿浪";obj2.arr[1] =[5,6,7] ;console.log('obj1',obj1) ..
2022-04-04 14:30:43 515
原创 宏任务与微任务
首先执行顺序:同步任务->异步任务异步任务又分为:宏任务与微任务。所以整个顺序为:同步任务->微观任务->宏观任务微观任务大概有Promise.then Object.observe MutationObserver process.nextTick(Node.js 环境)宏观任务大概有script(整体代码) setTimeout setInterval I/O UI交互事件 postMessage MessageChannel setImmediate(Node.js
2022-04-03 13:17:27 1082
原创 TCP和UDP进程和线程
TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。UDP是一个非连接的协议,传输数据之前源端和终端不建立连接, 当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。进程是资源分配的最小单位,线程是CPU调度的最小单位做个简单的比喻:进程=火车,线程=车厢线程在进程下行进(单纯的车厢无法运行)一个进程可以包含多个线程(一辆火车可以有多个车厢)不同进程间数据很难共享(一辆火车上
2022-04-02 22:19:06 365
原创 以下哪些语句触发了隐式的类型转换?
parseInt(12.34, 10)0 ? 1 : 22e1 * 0xaa1 + '1'解析:parseInt() 函数可解析一个字符串,并返回一个整数。所以说,number类型的12.34发生隐式转换为string。0?1:2.三元运算符,会判断?前的表达式为true或者false。所以number类型的0发生了隐式转换为boolean。第四个选项:+运算发生了字符串的隐式转化。原本number类型的1,和string类型的'1'进行了+运算,连接了字符串。返回'11'。.
2022-04-01 13:11:33 1019
原创 每日一练,刷技能
下面哪些属于JavaScript的typeof运算符的可能结果:()symbol 。intboolean 。nullarrayundefined 。string 。2.存在变量 var a = 10.42; 取出 a 的整数部分,以下代码哪些是正确的?parseInt(a); Math.floor(a); //向下取整 //向上取整Math.ceil(a);a.split('.')[0];3.下列哪些会返回false?null
2022-03-31 14:05:55 883
原创 javascript清晨练习题
1.写出程序运行的结果() 1 2 3 4 5 vark=0; for(vari=0,j=0;i<10,j<6;i++,j++){ k+=i+j; } console.log(k) 023060解析:循环结束看的是后面的条件,即i<10,j<6,当满足j=6时跳出循环。0+0=0 1+1+0=2 2+2+2=6 3+3+6=1...
2022-03-29 09:08:05 483
原创 框架TodoMVC(react)
实现:创建四个组件,分别是头组件,尾组件,list组件,item组件,存在于这个mvc中的。在APP.js中分别引入前三个个组件(item组件是存在于list中的,所以在list中引入item组件)在app.js中写好初始数据,在list中显示出来 const {todos} = this.props return( <ul> { todos.map(todo=>{ return <Item key={
2022-03-28 22:45:33 728
原创 二维数组中的查找javascript算法
描述在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]给定 target= 7,返回true。给定target=3,返回false。数据范围:矩阵的长宽满足0 \le n,m \le 5000≤n,m≤500, 矩...
2022-03-27 14:52:56 689
原创 算法:数组中重复的数字javascript
描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1数据范围:0\le n \le 10000 \0≤n≤10000进阶:时间复杂度O(n)\O(n) ,空间复杂度O(n)\O(n)示例1输入:[2,3,1,0,2,5,3]复制返回值:
2022-03-27 14:29:11 208
原创 链表中倒数最后k个结点
描述输入一个长度为 n 的链表,设链表中的元素的值为 ai,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。数据范围:0 \leq n \leq 10^50≤n≤105,0 \leq a_i \leq 10^90≤ai≤109,0 \leq k \leq 10^90≤k≤109要求:空间复杂度O(n)O(n),时间复杂度O(n)O(n)进阶:空间复杂度O(1)O(1),时间复杂度O(n)O(n)例如输入{1,2,3,4,5},2...
2022-03-24 23:31:03 978
webpack-dev-server --open报错
2022-01-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人