- 博客(37)
- 收藏
- 关注
原创 【JS】代码随想录算法训练营第一天 | leetcode704二分查找,27移除元素
衡量一个算法的快慢,一定要考虑数据规模的大小。所谓数据规模,一般指输入的数字个数、输入中给出的图的点数与边数等等。一般来说,数据规模越大,算法的用时就越长。而在算法竞赛中,我们衡量一个算法的效率时,最重要的不是看它在某个数据规模下的用时,而是看它的用时随数据规模而增长的趋势,即。,因此看到有序数组都要第一时间反问自己是否可以使用二分。看起来没什么特别的,二分的最大优势是在于其。时间复杂度是O(logn)(1)使用前提:有序数组。(2)找中间元素的方法。
2023-05-24 11:19:28
224
原创 为什么用mid=low+ (high-low) /2 而不是 (low+high) /2?
JavaScript 采用IEEE754 标准定义的64 位浮点格式表示数字,它能表示最大值(Number.MAX_VALUE)为。两个最大值相加明显超过了JS能表示的数值范围。如果选择后者,先计算a-b,就不会有这种风险。,最小值(Number.MIN_VALUE)为±5e-324。因为使用后者很容易导致栈溢出。
2023-03-10 15:50:54
181
原创 【React hooks】useEffect的依赖项和清理函数
组件的每次重新渲染effect都会执行,有一些情况里,两次effect执行会互相影响。
2022-08-05 14:40:14
1241
原创 【react】setState()的执行流程
首先判断,组件当前处于什么阶段 (1)如果是渲染阶段 ==>不会检查state值是否相同 上面那个setCount(0)就是在渲染阶段 (2)如果不是渲染阶段 ==>会检查state的值是否相同 a、值不同,渲染 b、值相同,不重新渲染 有时候(值第一次相同时)值相同 React也会继续执行当前组件的渲染,但是不会触发其子组件的渲染,不会产生实际的效果。...
2022-08-05 14:10:19
543
原创 react + antd table +hooks 如何实现表格序号自增 翻页后序号不从1开始算起
title: '序号',render: (text, record, index) => `${(pageOption.pageNo - 1) * 8 + (index + 1)}`,
2022-05-24 09:24:10
1962
原创 ES6新增语法 - 理解箭头函数中的this关键字
关键知识点箭头函数不绑定this,箭头函数没有自己的this关键字如果在箭头函数中使用this,this关键字将指向箭头函数被定义位置中的this注意:箭头函数里this指向的是定义时所在的对象,而不是使用时所在的对象例子 function fn() { console.log(this); //输出obj对象 return() => { console.log(this);
2022-04-03 13:48:18
277
原创 JavaScript - ES6的新增语法 - 解构赋值
let person = {name:'Alieen Gu',age:'18'}; //先准备好被解构的对象 let {name,age} = person; //等号左边是被解构的属性, 等号右边是具体的被解构的对象。
2022-04-03 13:15:37
990
原创 JavaScript - 用户名表单验证
效果代码html: <input type="text" class="uname"> <span>请输入用户名</span> <div class="hint"></div>css: label { color: #ccc; } .right { color: green; }
2022-04-02 16:40:52
1855
原创 函数的6种不同调用方式决定this指向的不同
1、普通函数 this指向window 2、对象的方法 this指向的是对象o 3、构造函数 this指向alieen这个实例对象,原型对象里的this指的也是alieen这个实例对象
2022-03-31 22:51:33
311
原创 JavaScript - 选项卡切换、增加、删除、修改【面向对象方法】
/* 面向对象:把公共的属性和方法抽取出来,写到类里面,再根据类实例化对象 *///Tab对象:1、切换 2、添加 3、删除 4、修改
2022-03-28 20:43:16
1048
原创 移动端JavaScript - 手指触摸并拖动对象
div.addEventListener('touchstart', function (e) { startX = e.targetTouches[0].pageX; //每触摸一次,获得手指的初始触摸的位置,并存进(startX,startY) startY = e.targetTouches[0].pageY; x = this.offsetLeft; //获得盒子一开始的位置,并存进(x,y) y =
2022-03-25 20:20:09
1890
1
原创 JavaScript - 选项栏底色跟随鼠标移动而变化
//当鼠标经过某个li,就把current类(变红加下划线赋予给它) for (var i = 0; i < lis.length; i++) { var current = 0; //声明一个变量记录当前红色块的位置 lis[i].addEventListener('mouseenter', function () { move(cloud, this.offsetLeft);
2022-03-25 16:28:04
1760
原创 JavaScript - 侧边栏返回顶部 缓动效果(pink老师课堂案例)
// 点击【返回顶部】模块,就让窗口滚动回最上方 goBack.addEventListener('click', function () { moveTop(window, 0); })
2022-03-25 15:00:59
1125
原创 JavaScript - 鼠标经过侧边栏弹出效果(pink老师案例)
效果:代码1、封装一个缓动函数function move(obj, target, callback) { // 清除多次点击后的定时器,保留最新的那一次 clearInterval(obj.timer); // 使用obj.timer,把timer当作obj的属性,如果使用var timer = ,调用一次就会开辟一次内存空间 obj.timer = setInterval(function () { //对步长向上取整,因为除以10.
2022-03-23 22:19:56
1090
原创 JavaScript - 固定的侧边栏(附效果动图)
效果侧边栏始终和上面隔着固定距离核心代码<script> //获取元素 var side = document.querySelector('.side'); var banner = document.querySelector('.banner'); var goBack = document.querySelector('.goBack'); var main = document.q..
2022-03-23 00:20:58
1266
原创 JavaScript - 京东放大镜效果:鼠标移动查看图片放大细节
效果JS代码window.addEventListener('load', function () { //获取元素 var small = document.querySelector('.preview-img'); var big = document.querySelector('.belt'); var mask = document.querySelector('.mask'); var img = document.querySelecto
2022-03-21 22:55:11
1405
原创 Web - JavaScript - 实现拖动对话框(模态框)
title.addEventListener('mousedown', function (e) { //当鼠标按下,且移动的时候,页面坐标 - 鼠标在登录框里的位置 = 登录框和页面边的距离 var fixX = e.pageX - login.offsetLeft; var fixY = e.pageY - login.offsetTop; //鼠标移动 document.addEventL
2022-03-20 23:10:14
991
原创 Pink老师JavaScript课堂案例 - 页面跳转倒计时
var timer = setInterval(function () { if (time == 0) { //如果时间减到了0,跳转至首页(或其他指定页面) location.href = 'http://www.baidu.cn'; clearTimeout(timer); } else { //时间不等
2022-03-20 12:51:17
162
原创 Pink老师JavaScript课堂案例 - 发送验证码60秒倒计时效果
btn.addEventListener('click', function () { btn.disabled = true; var timer = setInterval(function () { if (time == 0) { clearInterval(timer); btn.disabled = false;
2022-03-20 11:19:32
370
原创 Pink老师JavaScript课堂案例 - 倒计时
function countDown() { var nowTime = +new Date(); //现在时间 var times = (inputTime - nowTime) / 1000; //现在时间和用户输入时间的时间差(单位为ms) var h = parseInt(times / 60 / 60 % 24); //时,最后用取余号是因为,我们只需要不满24小时的时,满的会升为天 h = h
2022-03-19 23:34:50
689
原创 Pink老师JavaScript课程作业 - 输入内容时 上方出现大号提示框(京东快递单号输入框模拟)
input.addEventListener('keyup', function () { //当按键抬起时 //如果输入框内容不为空,则显示提示框 if (this.value != '') { con.style.display = 'block'; //将this 当前输入的值赋给提示框 con.innerText = this.value;
2022-03-15 10:25:25
736
原创 Pink老师JavaScript课堂案例 - 按下键盘某键 输入框获得焦点
当按键按下抬起时(keyup),运行keyCode返回ASCII码,判断ASCII码是不是对应按键的ASCII码,如果是则执行.focus()方法,让输入框获得焦点。
2022-03-15 09:59:02
592
原创 Pink老师JavaScript课堂案例 - 动态创建表格
for (var k in datum[i]) { //假设i=0,对于datum[0],遍历其中的属性 /* 注: for (var k in obj) { k得到的是属性名; obj[k]得到的是属性值 } */ var td = document.createElement('td'); // 创建单元格 td.i
2022-03-15 08:58:16
612
原创 Pink老师JavaScript课堂案例 - 跟随鼠标指针移动
var img = document.querySelector('img') document.addEventListener('mousemove', function (e) { var x = e.pageX; var y = e.pageY; img.style.top = y+'px'; img.style.left = x+'px'; })
2022-03-14 20:59:51
1131
原创 Pink老师JavaScript课程作业 - 点击叉号关闭广告/悬浮窗
btn.onclick = function () { box.style.display = 'none'; }
2022-03-12 19:57:22
584
原创 Pink老师JavaScript课程作业 - 用户名输入框点击定位到搜索框和失焦
未点击时,提示文字为 邮箱/手机号/ID,且为灰色。点击输入框,边框变粉、提示文字清除,输入的文字为黑色。失焦时,若用户输入了字符,则保持原样;若用户未输入字符,则出现提示文字,且颜色为灰。
2022-03-12 19:21:41
165
2
原创 Pink老师JavaScript课程作业 - 简易数字计算器
每个功能都写一个函数 (add、minus、multiply、divide)在while(true)的前提下,用prompt()让用户选择加减乘除;再用switch 对应不同case下,运行不同的函数。
2022-03-11 15:09:39
841
2
原创 Pink老师JavaScript课程作业 - 写一个函数实现对数字数组的排序
方法:用到冒泡排序,比较相邻的元素,如果第一个比第二个大,就交换它们两个。
2022-03-11 12:53:51
839
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人