
js编程题
初学js时,当时有点疑惑的js题目本
柳晓黑胡椒
new Promise((resolve, reject) => {
(async (三人行必有我师焉) => {
switch (true) {
case todo:
return await 一个乐于造轮子的webgis开发者(resolve);
case new Int8Array(请教).length / 321 >> 0:
return await wx17607967993(reject);
}
})()
})
展开
-
js异步编程-题目29 实现异步任务执行器 AsyncWorker
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦。原创 2023-09-20 09:15:26 · 411 阅读 · 0 评论 -
js基础编程-题目1 *两数之和
整理下之前做的有点疑惑的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] ==原创 2021-11-10 09:14:14 · 167 阅读 · 0 评论 -
js基础编程-题目2 *缩减函数
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦reduce(缩减函数)使用缩减函数在数字数组中找最小值const arr = [5,10,12,4,2,1]我的答案在下面这里我设置一个哨兵,加入我要比较的数组中的成员无限大,我需要找个比他大的哨兵和他比较。Number.MAX_SAFE_INTEGER 最大安全整数arr.reduce( (init,val)=> init < val ? init :val, Number.MAX_原创 2021-11-10 09:29:26 · 297 阅读 · 0 评论 -
js基础编程-题目3 *数组去重
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦数组去重将数组 [1,1,2,3,3]实现去重,分别用ES5和ES6的方法ES5 filter(过滤)arr.filter( (val,i)=> arr.indexOf(val)===i)ES6 Set数据结构[...new Set(arr)]这里扩展下封装filterArray.prototype.myFilter = function(callback,context){ le原创 2021-11-10 13:32:19 · 631 阅读 · 0 评论 -
js基础编程-题目4 *递归实现1-100的和
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦递归用js递归的方式实现 1 到 100 的和实现100内的累加const add = (n1,n2)=>{ const num = n1 + n2 return n2 === 100 ? num :add(num,n2+1) }console.log(add(1,2))//5050这里我做一下扩展斐波那契数列(递归实现)let test = n => n===1||n===2?原创 2021-11-10 13:56:01 · 703 阅读 · 0 评论 -
js基础编程-题目5 防抖节流
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦防抖节流什么是防抖和节流?有什么区别?如何实现?这里我换一种答题方法,我先把概念讲清楚 定义防抖(debounce):强制函数在某一时间段只执行一次节流(throttle):强制函数以固定的频率执行 debounce 和 throttle 的区别用 scroll 事件测试防抖节流的区别:链接:scroll事件测试链接用 mousemove 事件测试防抖节流的区别:链接:mousemove事件测原创 2021-11-11 07:58:38 · 343 阅读 · 0 评论 -
js基础编程-题目6 *定时器<-->延时器
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦定时器用setTimeout实现setInterval这里需要用到递归,就是一个延时器走完了,要接上下一个延时器function mySetInterval(fn,delay,timer=null){ const interval =()=>{ fn() timer = setTimeout(interval,delay) } setTimeout(interval,delay)原创 2021-11-11 10:05:16 · 184 阅读 · 0 评论 -
js基础编程-题目7 *树<-->数组
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦数组转化为树形解构给定原始数据(arr),期待生成一个树形结构的对象(tree)let arr = [{ id: 1, pid: 0,//parentId name: 'body'}, { id: 2, pid: 1, name: 'title'}, { id: 3, pid: 2, name: 'div'},{ id: 4, pid: 1, name: 'p'}原创 2021-11-11 10:44:06 · 382 阅读 · 0 评论 -
js基础编程-题目8 *柯里化
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦柯里化函数写一个sum方法,当使用下面的语法调用时,他将正常工作console.log(sum(2,3))console.log(sum(2)(3))柯里化的编程思想实现function sum(x,y){ if(typeof y !== "undefined"){ return x+y }else{ return (y)=>{ return x+y } }原创 2021-11-11 10:59:52 · 257 阅读 · 0 评论 -
js基础编程-题目9 深拷贝
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦对象的深拷贝完成一个对象的深度克隆方法function deepClone(obj){ if(obj === null || typeof obj !== "object")return obj if(obj instanceof RegExp)return new RegExp(obj) if(obj instanceof Date)return new Date(obj) let cloneObj原创 2021-11-11 12:57:24 · 293 阅读 · 0 评论 -
js基础编程-题目10 ajax的promise版本
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦ajax将原生的Ajax封装为prmiseconst ajax = (option) => new Promise((resolve, reject) => { let xmlhttp, timer xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP") if原创 2021-11-11 13:50:19 · 156 阅读 · 0 评论 -
js基础编程-题目11 数据双向绑定
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦vue响应式数据定义一个data对象,实现对象内属性值的改变的监听操作这里问的是数据劫持,我直接来实现一个vue2.0数据上下绑定首先 我们得有一个html<div id="app"> <div> <input type="text" v-model="name" placeholder="姓名"> <input type="text" v原创 2021-11-12 08:34:35 · 564 阅读 · 0 评论 -
js基础编程-题目12 push与pop
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦push 和 pop用代码实现一个数组的push方法首先,我们要了解,push和pop方法都是改变原数组的方法push:在数组末尾添加成员,返回添加后数组长度pop:在数组末尾剪切一个成员,返回剪切的值封装push方法:Array.prototype.myPush = function(...args){ for(let i = 0;i<args.length;i++){ this[this原创 2021-11-12 13:49:35 · 774 阅读 · 0 评论 -
js基础编程-题目13 对象合并
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦扩展运算符写一个方法将下列对象进行合并let a = { foo: 1 }let b = { bar: 2 }let c = { baz: 3 }使用扩展运算符合并对象function test(...args){ return args.reduce((init,val)=>{ return init = {...val,...init} },{})}...原创 2021-11-12 16:06:41 · 247 阅读 · 0 评论 -
js基础编程-题目14 绑定多个事件
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦事件绑定请用两种方式给一个按钮绑定两个 onclick 事件第一种方式通过 addEventListener 直接绑定let btn = document.querySelector('button')btn.addEventListener('click', fn1, false)btn.addEventListener('click', fn2, false)第二种方式,通过函数执行let btn =原创 2021-11-13 14:13:03 · 452 阅读 · 0 评论 -
js基础编程-题目15 判断数组相同
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦数组写一个方法判断两个数据是否完全相同方法一:转换为字符串function test(a,b){ a = a.sort((a,b)=>a-b) b = b.sort((a,b)=>a-b) return a + '' === b + ""}简写为const test = (a,b)=>a.sort((a,b)=>a-b) + "" === b.sort((a,b)=>原创 2021-11-13 14:20:46 · 275 阅读 · 0 评论 -
js基础编程-题目16 JS拖拽
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦JS运动实现JS拖拽首先,我写是考虑三个部分第一部分:运动函数:让拖拽元素运动,通过事件源对象的 e.pageX 和 e.pageY 属性 取得鼠标点击位置,用固定定位position:fixed 改变 left 和 top 属性 使其运动,考虑拖拽部分的移动范围,用判断限制 left 和 top 值的范围 。第二部分:运动控制函数:声明一个 lock 变量,值为true,监听拖拽原始的父级的 mousedown原创 2021-11-14 07:22:27 · 426 阅读 · 0 评论 -
js基础编程-题目17 数组的动态累加
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦定时器使用JS实现一个数字从0到1024动态累加的效果<input type="button" id="btn" value="点击数字累加" /><div id="num" style="font-size: 50px">0</div>用定时器和once属性实现const btn = document.querySelector('#btn')const num = do原创 2021-11-14 09:29:07 · 174 阅读 · 0 评论 -
js基础编程-题目18 转圈游戏
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦编号1到100的一百个人围成一圈,以123123的方式进行报数,数到3的人自动退出圈子,剩下的人继续报数,问最后剩下的人编号是多少?双指针function test(n){ let arr = new Array(n).fill().map((_,i)=>i+1)//flag1 let num = 1; let index = 0; while(arr.length > 2){ i原创 2021-11-14 12:23:42 · 449 阅读 · 0 评论 -
js基础编程-题目19 括号闭合
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦匹配括号字符串给定一个包括"(","{","[","]","}",")"的字符串,判断是否有效,有效字符串需满足 1.做括号必须用相同类型的右括号闭合2.左括号必须以正常顺序闭合采用入栈出栈的方式实现function test(str) { let temp let res = [] strArr = str.match(/(\(|\)|\{|\}|\[|\]){1}/g) while (tem原创 2021-11-15 07:37:52 · 268 阅读 · 0 评论 -
js基础编程-题目20 proxy
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦proxy写一个方法,实现arr[-1] = arr[arr.length-1]const arr = createArr(1,2,3)console.log(arr[-1])//3方法:使用数据代理 proxy 实现function createArr(...args){ let arr = Array.of(...args) return new Proxy(arr,{ get(_,key)原创 2021-11-15 08:14:35 · 114 阅读 · 0 评论 -
js基础编程-题目21 递归实现扁平化
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦数组扁平化使用递归的形式实现数组的扁平化let a = [1,[2,[3,4,5]]];方法一:创建新的堆内存function flat(arr){ let res = [] const flatFn = (arr)=> arr.forEach((val)=>{ Array.isArray(val) ? flatFn(val):res.push(val) }) fla原创 2021-11-15 08:35:12 · 321 阅读 · 0 评论 -
js基础编程-题目22 Date
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦Date按下面的期待值实现日期格式的转换的操作给定日式对象 let date = '10.24/2017'期望输出值 2017-10-24采用模板字符串function dateFormat(str){ let MM = str.slice(0,2); let DD = str.slice(3,5); let YYYY = str.slice(6,10) return `${YYYY}-${MM原创 2021-11-16 07:46:55 · 244 阅读 · 0 评论 -
js基础编程-题目23 方法parseInt
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦paeseInt请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字原创 2021-11-17 16:15:47 · 142 阅读 · 0 评论 -
js基础编程-题目24 滚动吸顶
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦滚顶吸顶滚动吸顶有几种方式?1. 使用原生的 offsetTop 实现2. 使用 JQuery 的 offset().top 实现3. 使用 position:sticky 实现4. 使用 obj.getBoundingClientRect().top 实现效果:滚动吸顶效果视频链接这里详细说一下用 原生js实现原生js实现html部分<nav> <h1>导航</原创 2021-11-18 12:21:01 · 189 阅读 · 0 评论 -
js基础编程-题目25 水平垂直居中
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦css实现元素水平垂直居中css水平、垂直居中的写法,请至少写出4种? - 定位 -- 使用 margin-top:- 盒子的高度一半 - Flex - Transform - 定位 -- 使用 上下左右都为 0 ,margin:auto首先我得有两个嵌套的元素html部分//结构<div class="wrap"> <div class="inner"></di原创 2021-11-18 12:49:36 · 1030 阅读 · 3 评论 -
js基础编程-题目26 字符串最多的字符和次数
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦字符串中出现最多的字符请找出下列字符串出现最多的字符和次数let str = "abacaaabcbc"第一种方法:map(哈希表)function test(str){ let map = new Map() let maxCount = 0; let maxStr for(let i = 0;i<str.length;i++){ if(map.has(str[i])){原创 2021-11-20 18:16:08 · 136 阅读 · 0 评论 -
js基础编程-题目27 抽屉动画drawer
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦css3用css3写一个drawer 抽屉从下到上的动画视频链接:链接html部分<ul class="wrap"> <li></li> <li> <span>菜单</span> <ul class="menu"> <li>内容1</li> <li>原创 2021-11-21 20:32:41 · 896 阅读 · 0 评论 -
js基础编程-题目28 深度优先遍历(DFS)和广度优先遍历(BFS)
整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦dfs 和 bfs用js实现深度优先遍历(DFS)和广度优先遍历(BFS)概念:深度优先遍历(DFS):从根节点开始,沿着树的深度遍历树的节点广度优先遍历(BFS):从根节点开始,沿着树的宽度遍历树的节点首先我们得有一个树型结构class Tree { constructor(node, children) { this.node = node this.children = childr原创 2021-11-22 22:02:46 · 833 阅读 · 0 评论