2023年3月4日
题目:索引的工作原理及其种类 参考答案: 数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据……
阅读全文
2023年3月4日
题目:drop,delete与truncate的区别 参考答案: drop直接删掉表 truncate删除表中数据,再插入时自增长id又从1开始 delete删除表中数据,可以加where字句。 (1) DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录……
阅读全文
2023年3月4日
题目:视图的作用,视图可以更改么? 参考答案: 视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询;不包含任何列或数据。使用视图可以简化复杂的sql操作,隐藏具体的细节,保护数据;视图创建后,可以使用与表相同的方式利用它们。 视图不能被索引,也不能有关联的触发器或……
阅读全文
2023年3月4日
题目:数据库事务的四个特性及含义 参考答案: 数据库事务transanction正确执行的四个基本要素。ACID,原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)、持久性(Durability)。 原子性:整个事务中的所有操作,要么全部……
阅读全文
2023年3月4日
题目:主键 超键 候选键 外键是什么 定义 超键(super key): 在关系中能唯一标识元组的属性集称为关系模式的超键 候选键(candidate key): 不含有多余属性的超键称为候选键。也就是在候选键中,若再删除属性,就不是键了! 主键(primary key): 用户选作元组标识的一个候选键程序主键 外键(foreig……
阅读全文
2023年3月4日
题目:浅复制和深复制?怎样实现深复制? 出题人:阿里巴巴新零售技术质量部 参考答案: 参考代码; const isObject = (item)=>{ return Object.prototype.toString.call(item) === '[object Object]'; } const isArray = (item)=>{ return Object.prototype.toString.call(item) === '[object Array]'; } const deepClone=(obj)=>{ const cloneObj=isArray(obj)?[]:isObject(obj)?{}:''; for(let key in obj){ if(isObject(obj[key])||isArray(obj[key])){ Object.assign(cloneObj,{ [key]: deepClone(Reflect.get(obj,key)) }); } else{ cloneObj[key] = obj[key]; } } return cloneObj; } PS:可以处理这样的格式,仅处理了对象类型和数组类型 const obj111 ={ a:1, b:{ c:2, d:{ e:3 }, f:[1,{a:1,b:2},3] } }……
阅读全文
2023年3月4日
title: 4.完全掌握 Next.js 文章系列 author: 知识铺 date: 2022-08-07 09:07:31+08:00 tags: [react,nextjs] 社区 GitHub Next GitHub 讨论Next.js 基本会话 博客 学习 韦尔塞尔电视 防弹 Next 文章 将 Next.js 与 FaunaDB 配合使用:如何从您的应用程序中查询数据库 如何使用ButterCMS构建无服务器Next.js博客 使用 Next 构建通用 JavaScript 应用.js Next.js — 设置应用 “Next.js — 引入数据 如何……
阅读全文
2023年3月4日
title: 3.Github1000个顶级组件应对各种业务场景 author: 知识铺 date: 2022-08-07 09:05:31+08:00 tags: [react] 用户界面组件 可编辑的数据网格/电子表格 fortune-sheet - 一种在线spreedsheet组件,提供开箱即用的功能,就像Excel一样。 AG Grid - 高级数据网格/支持Javascript / React / AngularJS / Web Components的数据表。 gigatables-react - 排……
阅读全文
2023年3月4日
题目: 找出被修改过的数字 出题人:阿里巴巴新零售技术质量部 参考答案: emmm假设背景是寻找数组中被修改的数字或者元素,我使用代理的方式来监听数组中元素的变化,并将变化的最后数值和次数储存在额外空间中 参考代码: const arr =[1,2,3,4,5,6,7,8,89,9,9,9,9,99]; const saveModifyNum={ } const watchNumChangeProxy=new Proxy(arr,{ set:function(target,key,value){ let {count} = Reflect.get(saveModifyNum,target[key])||{count:0,value}; ++count; return Reflect.set(saveModifyNum,target[key],{ count, value }); } }) watchNumChangeProxy[0]=2; watchNumChangeProxy[0]=3; watchNumChangeProxy[0]=4; //{ '1': { count: 3, value: 4 } }……
阅读全文
2023年3月4日
题目:找出数组中出现次数超过一半的数,现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。 出题人:阿里巴巴新零售技术质量部 参考答案: 遍历数组的同时用Object来储存每个元素出现的个数,每次遍历都跟max比较 参考代码: const arr =[1,2,3,4,5,6,7,8,89,9,9,9,9,99]; const maxNumObj =(arr)=>{ return arr.reduce((obj,cur)=>{ if(!obj['max']){ obj['max']=arr[0]; } obj[cur] = ++obj[cur]||1;……
阅读全文