暂时未有相关云产品技术能力~
暂无个人介绍
继承的图形化概念:用最形象的图像来说明继承的概念其实很简单,就拿三角形和等腰三角形和等边三角形来说 等腰三角形和等边三角形都具有三角形的性质就是三个角三条边,那么三角形就是父类,等腰三角形和等边三角形就是三角形的子类,然而等边三角形是特殊的等腰三角形,所以在等腰三角形和等边三角形两者之间,等腰三角形是父类,等边三角形是子类!
Pycharm的安装并且连接已有的Python环境实现自由编译(附中文配置)|并通过Pycharm实现增加网站访问
三、注意事项 1.永远不要把 v-if 和 v-for 同时用在同一个元素上,带来性能方面的浪费(每次渲染都会先循环再进行条件判断) 2.如果避免出现这种情况,则在外层嵌套template(页面渲染不生成dom节点),在这一层进行v-if判断,然后在内部进行v-for循环 3.如果条件出现在循环内部,可通过计算属性computed提前过滤掉那些不需要显示
它们有以下参数。 ●to::即将要进入的目标路由对象。 ●from:当前导航正要离开的路由。 ●next: 一定要用这个函数才能到达下一个路由,如果不用就会遭到拦截。
new 操作符的作用是什么? :作用如下。 (1)创建一个空对象。 (2)由this变量引用该对象。 (3)该对象继承该函数的原型(更改原型链的指向)。 (4)把属性和方法加入到this引用的对象中。 (5)新创建的对象由this引用,最后隐式地返回this, 过程如下: var obj={}; obj._proto_=Base.prototype; Base.cail(obj)
解决方案 1.控制按钮,在短时间内被多次点击,第一次以后的点击无效。 2.控制按钮,在点击按钮触发的请求响应之前,再次点击无效。 3.配置特殊的URL,然后控制这些URL请求的最小时间间隔。如果再次请求跟前一-次请求间隔很小,弹窗二次提示,是否继续操作。 防止无意识复点击按钮 给按钮添加控制,在control 毫秒内,第一次点击事件之后的点击事件不执行。
二、记忆化搜索 如果我们使用四维表记录的话,那就太浪费空间了 我们可以减少一维,使用三维表 递归参数设置为
进度条数据 分块进度数据利用 axios 中的 onUploadProgress 配置项获取数据,通过使用computed 根据分块进度数据的变化自动自动计算当前文件的总进度. // 总进度条
永远在找头节点右树上的最左 它如果到了最后一层,左边直接公式求出来了 它如果没到最后一层, 右边一个公式求出来,之后走左边递归。 永远都看右树最左决定你走左还是走右
设置请求头与超时时间 大部分情况下,请求头都是固定的,只有少部分情况下,会需要一些特殊的请求头,这里将普适性的请求头作为基础配置。当需要特殊请求头时,将特殊请求头作为参数传入,覆盖基础配置
请说明< keep-alive >组件的作用 当< keep-alive >包 裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。 < keep-alive >是一个抽象组件,它自身不会渲染一个DOM元素,也不会出现在父组件链中。 当在< keep-alive >内切换组件时,它的activated 和deactivated 这两个生命周期钩子函数将会执行。
力扣原题:剑指 Offer 62. 圆圈中最后剩下的数字 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3
文章目录 选项卡结构 css样式 如何选择切换选项 选项卡结构 用一个盒子把三个选项都包起来,使用flex布局的justify-content:space-between,使选项间距相等
插槽的默认内容 可以在子组件的slot标签中写入内容,当父组件没有写入内容时会显示子组件的默认内容,当父组件写入内容时,会替换子组件的默认内容
因此在线上部署基于 history API 的单页面应用的时候,一定要后端配合支持才行,否则会出现大量的 404。以最常用的 Nginx 为例,只需要在配置的 location / 中增加下面一行即可 try_files $uri /index.html; 总结一下 history 模式的优缺点: 优点:路径比较正规,没有井号 # 缺点:兼容性不如 hash,且需要服务端支持,否则一刷新页面就404了
使用场景 ●如果只需要简单的存储key-value的数据,并且key不需要存储复杂类型的,直接用对象 ●如果该对象必须通过JSON转换的,则只能用对象,目前暂不支持Map ●map的阅读性更好,所有操作都是通过api形式去调用,更有编程体验
用一个数组存储26个字母结尾的字符串数量, all加上之前的all,如果出现过相同的字母,就减去数组中的相同字母的数 来到b,all=2 空串和{b} 来到第一个c,newAll=2,all=4,记录c:2 来到第2个c,newAll=4,all=8 因为c有记录,因此all要减2,
使用场景 loading关闭 需要每次发送请求,都会有loading提示,请求发送完毕,就需要关闭loading提示框,不然界面就无法被点击。不管请求成功或是失败,这个loading都需要关闭掉,这时把关闭loading的代码写在finally里再合适不过了
第一片的队列curs跟record cur记录的1的一维坐标 next代表感染的一维坐标 在第二个1中 可以往下扩展 因此next填入8,也就是正方形的位置
解题思路 两个人A, B都从左下角走到右下角,都只能向下或者向右走,但是A跟B能做出不同的选择 如果,某一时刻,AB进入相同的一 个格子,A和B只获得一份 A走到之后,就认为B就是回来的路径 A来到了a行b列, B来到了c行d列,如果它们跳进不同的格子里。 只获得一个的情况下,问你a跟b获得整体的最大。 如果某一个位置A也来过,B也来过,AB-定是同时来的,而不
左边跟上边拽出来进堆 一直到收集K个为止 注意:防止同一个位置进入堆 要保证进大根堆不要重复进 代码
从报错信息来看,new Parent.num执行顺序是这样的:先执行Parent.num,此时返回结果为undefined;后执行new,因new后面必须跟构造函数,所以new undefined会报错。 new Parent().num相当于(new Parent()).num,所以结果返回1。
/ node这个节点的次数+1了,这个节点原来在oldNodeList里。 // 把node从oldNodeList删掉,然后放到次数+1的桶中 // 整个过程既要保证桶之间仍然是双向链表,也要保证节点之间仍然是双向链表 private void move(Node node, NodeList oldNodeList) { oldNodeList.deleteNode(node); // preList表示次数+1的桶的前一个桶是谁 // 如果oldNodeList删掉node之后还有节点,oldNodeList就是次数+1的桶的前一个桶 // 如果oldNodeLis
解题思路 有序表 非常方便的查到所有数字最小值,也可以非常方便的查到所有数字的最大直 每个数组中的第一个数加入有序表, 取出最大值跟最小值,可以找到一个区间 这个区间一定每个数组都有一个数落在这个区间上 然后删除最小值,把这个最小值来自数组的下一个值加入有序表,排序后重新取出最小值跟最大值 构成一个新的区间,跟之前的区间比较是否更优 当你有一个数组耗尽了,不用再继续了,你找到的最窄区间出来了
●前端路由:根据不同的事件来显示不同的页面内容,是事件与事件处理函数之间的对应关系 前端路由:根据不同的事件来显示不同的页面内容,是事件与事件处理函数之间的对应关系 概念:根据不同的用户事件,显示不同的页面内容(地址与事件产生对应关系) 本质:用户事件与事件处理函数之间的对应关系
解题思路 定义f函数void类型 把先序遍历数组,跟范围L1, R1. 把中序遍历数组,跟范围L2, R2 填后序遍历数组,范围L3, R3,三段范围等长 在中序遍历定位X确定左树跟右树规模 但定位了前序,中序,后序的X后 调用递归,生成左树,右树
结论 ●根实例对象data可以是对象也可以是函数(根实例是单例),不会产生数据污染情况 ●组件实例对象data必须为函数,目的是为了防止多个组件实例对象之间共用一个data,产生数据污染。采用函数的形式,initData时会将其作为工厂函数都会返回全新data对象
1.导航被触发。 2.在失活的组件里调用 beforeRouteLeave 守卫。 3.调用全局的 beforeEach 守卫。 4.在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+)。 5.在路由配置里调用 beforeEnter。 6.解析异步路由组件。 7.在被激活的组件里调用 beforeRouteEnter。 8.调用全局的 beforeResolve 守卫 (2.5+)。 9.导航被确认。 10.调用全局的 afterEach 钩子。 11.触发 DOM 更新。 12.调用 beforeRouteEnter 守卫中传给 next 的回调函数,创建好的组件实例
v-slot属性只能在上使用,但在只有默认插槽时可以在组件标签上使用 默认插槽名为default,可以省略default直接写v-slot 缩写为#时不能不写参数,写成#default 可以通过解构获取v-slot={user},还可以重命名v-slot=“{user: newName}“和定义默认值v-slot=”{user = ‘默认值’}”
过滤器 Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:
让L到R的距离为K,L…R是中间的子数组,k=3 问题变为中间数组必须是3~ 5的话,0~ 2范围和6~12范围上怎么选一个子数组最好, 左右两边的信息直接查表可以得到 第一回, L来到3, R来到5,我们查0~ 2
文章目录 前言 解题思路 代码 前言 给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。
比如说在你来到最后数字之前map里面有一个插值是1百万的基线10亿, 这说明有一一个集合它{10亿+ 100万},还有集合叫{10亿}。这时候你的一百万进去, 正好怼出一个差值为零的来。 所以为什么map要记录所有的差值,你不知道后面哪一个奇葩数能拱出大的来, 我不知道后面有什么奇葩的数,能让我一个重新插值为季的集合基线变得巨大, 不知道,所以我都留着。
●搜索框搜索输入。只需用户最后一次输入完,再发送请求 ●手机号、邮箱验证输入检测 ●窗口大小resize。只需窗口调整完成后,计算窗口大小。防止重复渲染。
注意事项 如果不是某些特定任务需要使用闭包,在其它函数中创建函数是不明智的,因为闭包在处理速度和内存消耗方面对脚本性能具有负面影响 例如,在创建新的对象或者类时,方法通常应该关联于对象的原型,而不是定义到对象的构造器中。 原因在于每个对象的创建,方法都会被重新赋值
●代码复杂度方面简单动画:css代码实现会简单一些,js复杂一些。 复杂动画的话:css代码就会变得冗长,js实现起来更优。 ●动画运行时,对动画的控制程度上 js 比较灵活,能控制动画暂停,取消,终止等css动画不能添加事件,只能设置固定节点进行什么样的过渡动画。 ●兼容方面 css 有浏览器兼容问题,js大多情况下是没有的。 ●性能方面 css动画相对于优一些,css 动画通过GUI解析js动画需要经过js引擎代码解析,然后再进行 GUI 解析渲染。
N * M的棋盘 每种颜色的格子数必须相同的 上下左右的格子算相邻 相邻格子染的颜色必须不同 所有格子必须染色 返回至少多少种颜色可以完成任务
Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,因此你可以调用 context.commit 提交一个 mutation,或者通过 context.state 和 context.getters 来获取 state 和 getters。当我们在之后介绍到 Modules 时,你就知道 context 对象为什么不是 store 实例本身了。
patch 阶段根据 VNode 创建真实节点树,核心方法为 createElm,首先遇到组件类型的 VNode,内部会执行 $mount,再走一遍相同的流程。普通节点类型则创建一个真实节点,如果它有子节点开始递归调用 createElm,使用 insert 插入子节点,直到没有子节点就填充内容节点。最后递归完成后,同样也是使用 insert 将整个节点树插入到页面中,再将旧的根节点移除。
setTimeout运行机制 setTimeout 和 setInterval的运行机制,其实就是将指定的代码移出本次执行,等到下一轮 Event Loop 时,再检查是否到了指定时间。如果到了,就执行对应的代码;如果不到,就等到再下一轮 Event Loop 时重新判断。 这意味着,setTimeout指定的代码,必须等到本次执行的所有同步代码都执行完,才会执行。
★每个模块都相当于一个小型的Vuex 每个模块里面都会有state getters actions mutations ★切记在导出模块的时候加一个 namespaced:true 主要的作用是将每个模块都有独立命名空间 ★namespace:true在多人协作开发的时候,可能子模块和主模块中的函数名字会相同,这样在调用函数的时候,相同名字的函数都会被调用,就会发生问题。为了解决这个问题,导出模块的时候要加namespace:true.
省一个变量 那么我们可不可以在简化一个变量 可以的 用matrix[0][0]记录第一列的情况 把第一行和第一列分离出来,那就可以不用row0了
★主要用来监听某些特定数据的变化,从而进行某些具体的业务逻辑操作,可以看作是 computed 和 methods 的结合体; ★可以监听的数据来源:data,props,computed内的数据; ★watch支持异步; ★不支持缓存,监听的数据改变,直接会触发相应的操作; ★监听函数有两个参数,第一个参数是最新的值,第二个参数是输入之前的值,顺序一定是新值,旧值
找到对应的真实dom,称为el 如果都有都有文本节点且不相等,将el文本节点设置为Vnode的文本节点 如果oldVnode有子节点而VNode没有,则删除el子节点 如果oldVnode没有子节点而VNode有,则将VNode的子节点真实化后添加到el 如果两者都有子节点,则执行updateChildren函数比较子节点 updateChildren主要做了以下操作:
●拖放(Drag and drop) API. ●语义化更好的内容标签( header、nav、footer、 aside、 article、 section )。 ●音频、 视频(audio、video) API。 ●画布( Canvas) API。 ●地理( Geolocation) API。 ●本地离线存储( localStorage),即长期存储数据,浏览器关闭后数据不丢失。 ●会话 存储( sessionStorage),即数据在浏览器关闭后自动删除。 ●表单控件包括calendar、date、 time、 email、 url、 search ●新的技术包括webworker、we
★三者都可以改变函数的this对象指向 ★三者第一个参数都是this要指向的对象,如果如果没有这个参数或参数为undefined或null,则默认指向全局window ★三者都可以传参,但是apply是数组,而call是参数列表,且apply和call是一次性传入参数,而bind可以分为多次传入 ★bind 是返回绑定this之后的函数,apply 、call 则是立即执行
CS:C是英文单词Client首字母,即客户端的意思,C/S就是"Client/Server"的缩写,即"客户端/服务器"模式,主要用于局域网内。 它是一种软件系统体系结构,它是将需要处理的的 业务合理的分配到客户端和服务器端,这样可以降低通信成本,但是升级相对困难,就像我们手机中安装的微信,qq,王者农药等应用程序都是C/S结构的。 C/S架构软件有一个特点,就是如果用户要使用的话,要下载一个客户端,安装后就可以使用
★Navagator:提供有关浏览器的信息 ★Window: Window对象处于对象层次的最顶层, 它提供了处理Navagator窗口的方法和属性 ★Location:提供了与当前打开的URL-工作的方 法和属性,是一个静态的对象 ★History:提供了与历史清单有关的信息 ★Document:包含与文档元素一起工作的对象,它将这些元素封装起来供编程人员使用
为什么要在fill方法中加空格:因为不加空格就会使他执行不正确,无法达到效果 为什么要输出内存空间吗:如果在同一个内存空间,一个数组改变之后另一个也会随之改变,会影响后续程序执行 copyOfRange方法如果超出索引最大限度会怎么样:如果超出,则超出部分默认为0! 为什么有些要方法要创建新数组有些不用:因为有些方法是对一个数组进行改变,有些是要重新创建数组!
一个私人书柜有3层2列,分别向该书柜第1层第1列放入历史类读物,向该书柜第2层第1列放入经济类读物,向该书柜第2层第2列放入现代科学类读物。创建一个二维数组,并给该二维数组赋值。