合集-前端面试

摘要:H5 新特性 1、拖拽释放(Drap and drop) API ondrop 拖放是一种常见的特性,即抓取对象以后拖到另一个位置 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放 2、自定义属性 data-id 3、语义化更好的内容标签(header,nav,footer ,aside, 阅读全文
posted @ 2023-06-20 11:50 jialiangzai 阅读(334) 评论(0) 推荐(0)
摘要:共同点:都是保存在浏览器端、且同源的 区别: 1、cookie 数据始终在同源的 http 请求中携带(即使不需要),即 cookie 在浏览器和服务器间来回传递,而 sessionStorage 和 localStorage 不会自动把数据发送给服务器,仅在本地保存。cookie 数据还有路径(p 阅读全文
posted @ 2023-06-20 12:02 jialiangzai 阅读(153) 评论(0) 推荐(0)
摘要:1、cookie 这个存储用了很久了,而且也是以前大多网站十分喜欢的存储站点。但是也很容易被清除。同时 cookie 会在每一次通信过程中传向服务端。同时 cookie 有一个很好的地方就是,它本身有一个过期时间属性,可以用来标注一个变量的有效期。而cookie 一旦过期就会被自动删除掉 2、loc 阅读全文
posted @ 2023-06-20 12:04 jialiangzai 阅读(144) 评论(0) 推荐(0)
摘要:1、transform:描述了元素的静态样式,本身不会呈现动画效果,可以对元素进行旋转rotate、扭曲 skew、缩放 scale 和移动 translate 以及矩阵变形 matrix。 transition 和 animation 两者都能实现动画效果 transform 常常配合 trans 阅读全文
posted @ 2023-06-20 12:13 jialiangzai 阅读(135) 评论(0) 推荐(0)
摘要:!Important>行内样式>ID 选择器>类选择器>标签>通配符>继承>浏览器默认属性 阅读全文
posted @ 2023-06-20 14:39 jialiangzai 阅读(100) 评论(0) 推荐(0)
摘要:原理:HTML5 的离线存储是基于一个新建的.appcache 文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像 cookie 一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示 如何使用: 1、页面头部像下面一样加入一个 m 阅读全文
posted @ 2023-06-20 14:47 jialiangzai 阅读(132) 评论(0) 推荐(0)
摘要:![image](https://img2023.cnblogs.com/blog/2357003/202306/2357003-20230620152114586-661289661.png) 阅读全文
posted @ 2023-06-20 15:21 jialiangzai 阅读(96) 评论(0) 推荐(0)
摘要:通用方案 1、设置根 font-size:625%(或其它自定的值,但换算规则 1rem 不能小于12px)2、通过媒体查询分别设置每个屏幕的根 font-size 3、CSS 直接除以 2 再除以 100 即可换算为 rem 优:有一定适用性,换算也较为简单 劣:有兼容性的坑,对不同手机适配不是非 阅读全文
posted @ 2023-06-20 15:31 jialiangzai 阅读(291) 评论(0) 推荐(0)
摘要:当绝对定位和固定定位参照物都是浏览器窗口时的区别: 当出现滚动条时,固定定位的元素不会跟随滚动条滚动,绝对定位会跟随滚动条滚动 这句话也是做在下拉组件的时候滚动页面,下拉列表并没有滚动后来也是处理了一下 阅读全文
posted @ 2023-06-20 15:45 jialiangzai 阅读(87) 评论(0) 推荐(0)
摘要:npm install node-sass --save-dev //安装 node-sass npm install sass-loader --save-dev //安装 sass-loader npm install style-loader --save-dev //安装 style-loa 阅读全文
posted @ 2023-06-20 19:37 jialiangzai 阅读(77) 评论(0) 推荐(0)
摘要:"块级格式化上下文"。它是一个独立的渲染区域,只有 Block-level box 参与,它规定了内部的 Block-level Box 如何布局,并且与这个区域外部毫不相干 阅读全文
posted @ 2023-06-21 08:37 jialiangzai 阅读(105) 评论(0) 推荐(0)
摘要:-webkit-transform:scale(0.8) 阅读全文
posted @ 2023-06-21 10:20 jialiangzai 阅读(162) 评论(0) 推荐(0)
摘要:1、字面量对象 // 默认这个对象的原型链指向 object var o1 = {name: '01'}; 2、通过 new Object 声明一个对象 var o11 = new Object({name: '011'}); 3、使用显式的构造函数创建对象 var M = function(){t 阅读全文
posted @ 2023-06-21 12:01 jialiangzai 阅读(106) 评论(0) 推荐(0)
摘要:toLocaleString()方法是用于返回格式化对象后的字符串,该字符串格式因语言不同返回值也会不同(不同执行环境结果可能不同-比如浏览器和node就会不同),可以通过传参决定返回的语言及具体表现。 语法:object.toLocaleString(locale,options) 参数:loca 阅读全文
posted @ 2023-06-22 10:24 jialiangzai 阅读(566) 评论(0) 推荐(0)
摘要:引用MDN上的定义 let bindings are created at the top of the (block) scope containing the declaration, commonly referred to as “hoisting”. Unlike variables de 阅读全文
posted @ 2023-06-22 11:03 jialiangzai 阅读(121) 评论(0) 推荐(0)
摘要:一.原型链与作用域链 区别: 作用域是对于变量而言,原型链是对于对象的属性。 作用域链顶层是window,原型链顶层是Object。 阅读全文
posted @ 2023-06-22 11:07 jialiangzai 阅读(99) 评论(0) 推荐(0)
摘要:1、什么是 Property 每 个 DOM 节点都是一个 object 对象,它可以像其他的 js Object 一样具有自己的property和 method,所以 property 的值可以是任何数据类型,大小写敏感,原则上property 应该仅供js 操作,不会出现在 html 中(默认属 阅读全文
posted @ 2023-06-23 12:52 jialiangzai 阅读(105) 评论(0) 推荐(0)
摘要:1、什么是回流 回流:当 render tree 的一部分或全部的元素因改变了自身的宽高,布局,显示或隐藏,或者元素内部的文字结构发生变化 导致需要重新构建页面的时候,回流就产生了2、什么是重绘 重绘:当一个元素自身的宽高,布局,及显示或隐藏没有改变,而只是改变了元素的外观风格的时候,就会产生重绘。 阅读全文
posted @ 2023-06-25 00:31 jialiangzai 阅读(99) 评论(1) 推荐(1)
摘要:HTML 4.01 为标签定义了 defer 属性。标签定义了 defer 属性元素中设置defer 属性,等于告诉浏览器立即下载,但延迟执行标签定义了 defer 属性。用途:表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕之后再执行 HTML5 为标签定义了 asy 阅读全文
posted @ 2023-06-25 00:35 jialiangzai 阅读(80) 评论(0) 推荐(0)
摘要:把一段可执行的代码像参数传递那样传给其他代码,而这段代码会在某个时刻被调用执行,这就叫做回调。如果代码立即被执行就称为同步回调,如果在之后晚点的某个时间再执行,则称之为异步回调。 阅读全文
posted @ 2023-06-25 00:42 jialiangzai 阅读(73) 评论(0) 推荐(0)
摘要:JavaScript 是一种通过原型实现继承的语言与别的高级语言是有区别的,像java,C#是通过类型决定继承关系的,JavaScript 是的动态的弱类型语言,总之可以认为JavaScript 中所有都是对象,在 JavaScript 中,原型也是一个对象,通过原型可以实现对象的属性继承,Java 阅读全文
posted @ 2023-06-25 01:10 jialiangzai 阅读(99) 评论(0) 推荐(0)
摘要:继承有以下六种方法 1、原型链继承 JavaScript 实现继承的基本思想:通过原型将一个引用类型继承另一个引用类型的属性和方法 2、借用构造函数继承(伪造对象或经典继承) JavaScript 实现继承的基本思想:在子类构造函数内部调用超类型构造函数。通过使用 apply()和 call()方法 阅读全文
posted @ 2023-06-25 01:16 jialiangzai 阅读(69) 评论(0) 推荐(0)
摘要:this 的情况: 1、以函数形式调用时,this 永远都是 window 2、以方法的形式调用时,this 是调用方法的对象 3、以构造函数的形式调用时,this 是新创建的那个对象 4、使用 call 和 apply 调用时,this 是指定的那个对象 5、箭头函数:箭头函数的 this 看外层 阅读全文
posted @ 2023-06-25 01:23 jialiangzai 阅读(61) 评论(0) 推荐(0)
摘要:1、推荐在循环对象属性的时候使用 for...in,在遍历数组的时候的时候使用for...of 2、for...in 循环出的是 key,for...of 循环出的是 value 3、注意,for...of 是 ES6 新引入的特性。修复了 ES5 引入的 for...in 的不足4、for...o 阅读全文
posted @ 2023-06-25 09:08 jialiangzai 阅读(95) 评论(0) 推荐(0)
摘要:var str = 'asdfssaaasasasasaa'; var json = {}; for (var i = 0; i iMax){ iMax = json[i]; iIndex = i; } } alert('出现次数最多的是:'+iIndex+'出现'+iMax+'次'); 阅读全文
posted @ 2023-06-25 17:35 jialiangzai 阅读(70) 评论(0) 推荐(0)
摘要:jQuery 的 ajax 返回的是 deferred 对象,通过 promise 的 resolve()方法将其转换为promise 对象。var jsPromise = Promise.resolve($.ajax('/whatever.json')); 阅读全文
posted @ 2023-06-26 10:03 jialiangzai 阅读(137) 评论(0) 推荐(0)
摘要:1、原因:每一个图例在没有数据的时候它会创建一个定时器去渲染气泡,页面切换后,echarts 图例是销毁了,但是这个 echarts 的实例还在内存当中,同时它的气泡渲染定时器还在运行。这就导致 echarts 占用 CPU 高,导致浏览器卡顿,当数据量比较大时甚至浏览器崩溃2、解决方法:在 mou 阅读全文
posted @ 2023-06-26 10:36 jialiangzai 阅读(430) 评论(0) 推荐(0)
摘要:module、export、import 是 ES6 用来统一前端模块化方案的设计思路和实现方案。export、import 的出现统一了前端模块化的实现方案,整合规范了浏览器/服务端的模块化方法,用来取代传统的 AMD/CMD、requireJS、seaJS、commondJS 等等一系列前端模块 阅读全文
posted @ 2023-06-26 15:01 jialiangzai 阅读(127) 评论(0) 推荐(0)
摘要:Reflect.ownKeys(target)等同于 Object.getOwnPropertyNames 与Object.getOwnPropertySymbols 之和 阅读全文
posted @ 2023-06-26 16:05 jialiangzai 阅读(77) 评论(0) 推荐(0)
摘要:5 种常见的 HTTP 状态码以及代表的意义 200( OK):请求已成功,请求所希望的响应头或数据体将随此响应返回。303( See Other):告知客户端使用另一个 URL 来获取资源。 400( Bad Request):请求格式错误。1)语义有误,当前请求无法被服务器理解。除非进行修改,否 阅读全文
posted @ 2023-06-26 16:24 jialiangzai 阅读(115) 评论(0) 推荐(0)
摘要:1、HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(以前网易官网是 HTTP,而网易邮箱是HTTPS 。) 2、HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的SSL 加密传输协议 3、 阅读全文
posted @ 2023-06-27 00:40 jialiangzai 阅读(88) 评论(0) 推荐(0)
摘要:1、浏览器查找域名对应的 IP 地址(DNS 查询:浏览器缓存->系统缓存->路由器缓存->ISP DNS 缓存->根域名服务器) 2、浏览器向 Web 服务器发送一个 HTTP 请求(TCP 三次握手) 3、服务器 301 重定向(从 HTTP://example.com 重定向到 HTTP:// 阅读全文
posted @ 2023-06-27 00:46 jialiangzai 阅读(76) 评论(0) 推荐(0)
摘要:从浏览器地址栏的请求链接开始,浏览器通过 DNS 解析查到域名映射的IP 地址,成功之后浏览器端向此 IP 地址取得连接,成功连接之后,浏览器端将请求信息通过HTTP 协议向此 IP 地址所在服务器发起请求,服务器接收到请求之后等待处理,最后向浏览器端发回响应,此时在 HTTP 协议下,浏览器从服务 阅读全文
posted @ 2023-06-27 01:07 jialiangzai 阅读(130) 评论(0) 推荐(0)
摘要:Vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty()来劫持各个属性的 setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。1、需要 observe 的数据对象进行递归遍历,包括子属性对象的属性,都加上setter 和 阅读全文
posted @ 2023-06-28 09:59 jialiangzai 阅读(110) 评论(0) 推荐(0)
摘要:1、项目使用 keep-alive 时,可搭配组件 name 进行缓存过滤 2、DOM 做递归组件时需要调用自身 name 3、vue-devtools 调试工具里显示的组见名称是由 vue 中组件 name 决定的 阅读全文
posted @ 2023-06-28 10:05 jialiangzai 阅读(93) 评论(0) 推荐(0)
摘要:有两种方法可以监听路由参数的变化,但是只能用在包含的组件内。第一种 watch: { '$route'(to, from) { // 在此处监听 }, },第二种 beforeRouteUpdate (to, from, next) { //这里监听 } 阅读全文
posted @ 2023-06-28 10:07 jialiangzai 阅读(129) 评论(0) 推荐(0)
摘要:1、errorCaptured 是组件内部钩子,当捕获一个来自子孙组件的错误时被调用,接收error、vm、info 三个参数,return false 后可以阻止错误继续向上抛出 2、errorHandler 为全局钩子,使用 Vue.config.errorHandler 配置,接收参数与err 阅读全文
posted @ 2023-06-28 10:22 jialiangzai 阅读(113) 评论(0) 推荐(0)
摘要:不能同名,因为不管是 computed 属性名还是 data 数据名还是 props 数据名都会被挂载在vm实例上,因此这三个都不能同名 if (key in vm.$data) { warn(`The computed property "${key}" is already defined in 阅读全文
posted @ 2023-06-28 10:36 jialiangzai 阅读(169) 评论(0) 推荐(0)
摘要:当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用“就地复用”策略。如果数据项的顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素,key 的作用主要是为了高效的更新虚拟 DOM 阅读全文
posted @ 2023-06-28 10:40 jialiangzai 阅读(84) 评论(0) 推荐(0)
摘要:简而言之,就是先转化成 AST 树,再得到的 render 函数返回 Vnode(Vue 的虚拟DOM节点)1、首先通过 compile 编译器把 template 编译成 AST 语法树(abstract syntax tree 即源代码的抽象语法结构的树状表现形式),compile 是 crea 阅读全文
posted @ 2023-06-28 13:11 jialiangzai 阅读(71) 评论(0) 推荐(0)
摘要:Vnode 是 JavaScript 对象,Vnode 表示 Virtual DOM,用 JavaScript 对象来描述真实的DOM把 DOM 标签,属性,内容都变成对象的属性。就像使用 JavaScript 对象对一种动物进行说明一样{name: 'Hello Kitty', age: 1, c 阅读全文
posted @ 2023-06-28 18:23 jialiangzai 阅读(383) 评论(0) 推荐(0)
摘要:wx.navigateTo():保留当前页面,跳转到应用内的某个页面。但是不能跳到tabbar 页面wx.redirectTo():关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到tabbar 页面wx.switchTab():跳转到 abBar 页面,并关闭其他所有非 tabBar 页面wx 阅读全文
posted @ 2023-06-30 15:14 jialiangzai 阅读(89) 评论(0) 推荐(0)
摘要:微信小程序长按识别二维码 image 组件中二维码/小程序码图片不支持长按识别。仅在 wx.previewImage 中支持长按识别示例代码 阅读全文
posted @ 2023-06-30 15:18 jialiangzai 阅读(153) 评论(0) 推荐(0)
摘要:new Date 跨平台兼容性问题 在 Andriod 使用 new Date(“2018-05-30 00:00:00”)木有问题,但是在ios 下面识别不出来。因为 IOS 下面不能识别这种格式,需要用 2018/05/30 00:00:00 格式。可以使用正则表达式对做字符串替换,将短横替换为 阅读全文
posted @ 2023-06-30 15:34 jialiangzai 阅读(43) 评论(0) 推荐(0)
摘要:首先使用 wx.base64ToArrayBuffer 将 base64 数据转换为 ArrayBuffer 数据,使用FileSystemManager.writeFile 将 ArrayBuffer 数据写为本地用户路径的二进制图片文件,此时的图片文件路径在 wx.env.USER_DATA_P 阅读全文
posted @ 2023-06-30 15:35 jialiangzai 阅读(352) 评论(0) 推荐(0)
摘要:使用 wx.getUserInfo 方法 withCredentials 为 true 时可获取 encryptedData,里面有UnionID。后端需要进行对称解密 无法获取 UnionID 的问题 1、把小程序和公众号都绑定在开放平台;2、用户必须已经关注公众号。 阅读全文
posted @ 2023-06-30 16:08 jialiangzai 阅读(152) 评论(0) 推荐(0)
摘要:在正常的react的事件流里(如onClick等) setState和useState是异步执行的(不会立即更新state的结果) 多次执行setState和useState,只会调用一次重新渲染render 不同的是,setState会进行state的合并,而useState则不会 事务驱动 在s 阅读全文
posted @ 2023-06-30 17:13 jialiangzai 阅读(61) 评论(0) 推荐(0)
摘要:1、减少 http 请求 减少 HTTP 请求的方案主要有:合并 JavaScript 和 CSS文件、合并图片 CSS Sprites、图像映射(Image Map)和使用 Data URI 来编码图片,图片较多的页面也可以使用 lazyLoad 等技术进行优化。2、减少对 DOM 的操作 修改和 阅读全文
posted @ 2023-06-30 17:52 jialiangzai 阅读(102) 评论(0) 推荐(0)
摘要:Vue和React中diff算法区别 vue和react的diff算法,都是忽略跨级比较,只做同级比较。vue diff时调动patch函数,参数是vnode和oldVnode,分别代表新旧节点。 1.vue对比节点。当节点元素相同,但是classname不同,认为是不同类型的元素,删除重建,而re 阅读全文
posted @ 2023-07-01 22:02 jialiangzai 阅读(839) 评论(0) 推荐(0)
摘要:通过code换取网页授权access_token和基础支持中的access_token有以下不同之处: 获取方式:code换取网页授权access_token是在用户进行网页授权登录后获取的,而基础支持中的access_token是通过应用的AppID和AppSecret直接获取的。 作用范围:网页 阅读全文
posted @ 2023-07-04 09:34 jialiangzai 阅读(222) 评论(0) 推荐(0)
摘要:业务流程说明: (1)用户在商户侧完成下单,使用微信支付进行支付。 (2)由商户后台向微信支付发起下单请求【H5下单API】 (3)H5下单接口返回支付相关参数给商户后台,如支付跳转url(参数名“h5_url”),商户通过h5_url调起微信支付中间页 (4)中间页进行H5权限的校验,安全性检查 阅读全文
posted @ 2023-07-04 09:44 jialiangzai 阅读(130) 评论(0) 推荐(0)
摘要:首先,让我们讨论一下使用Vue前端实现微信授权、微信支付和支付宝支付的具体代码和流程。 1. 微信授权: 为了实现微信授权,你需要在Vue项目中使用微信开放平台的开发者工具创建一个应用,并获取到对应的AppID。接下来,你可以使用Vue的插件或组件来处理微信的授权流程。以下是一个使用Vue插件方式的 阅读全文
posted @ 2023-07-04 09:49 jialiangzai 阅读(3167) 评论(0) 推荐(0)
摘要:Number 转换的时候是很严格的,只要有一个字符无法转成数值,整个字符串就会被 转为 NaN parseInt 相比 Number ,就没那么严格了, parseInt 函数逐个解析字符,遇到不能转换的字符 就停下来 parseInt('32a3') //32 阅读全文
posted @ 2023-08-30 10:16 jialiangzai 阅读(58) 评论(0) 推荐(0)
摘要:在JavaScript中,箭头函数(arrow functions)是匿名函数的一种简写形式,它们没有自己的prototype属性。箭头函数使用父级作用域的this值,并且不能通过new关键字调用,因此它们没有构造函数的特性。由于没有自己的prototype,箭头函数也不能用作构造函数来创建对象实例 阅读全文
posted @ 2023-08-31 16:22 jialiangzai 阅读(56) 评论(0) 推荐(0)
摘要:``` function getQueryParams() { const params = {}; const url = new URL(window.location.href); const searchParams = new URLSearchParams(url.search); fo 阅读全文
posted @ 2023-09-02 03:10 jialiangzai 阅读(358) 评论(0) 推荐(0)
摘要:``` function clone (parent, child) { // Object.create child.prototype = Object.create(parent.prototype); child.prototype.constructor = child; } functi 阅读全文
posted @ 2023-09-02 03:11 jialiangzai 阅读(50) 评论(0) 推荐(0)
摘要:``` TypeScript是一种静态类型的编程语言,它是JavaScript的超集,具有以下优点: 1. 静态类型检查:TypeScript引入了静态类型系统,可以在编译时进行类型检查,提前发现代码中的潜在错误。这有助于减少运行时错误,并提供更好的代码可靠性和可维护性。 2. 更好的代码提示和自动 阅读全文
posted @ 2023-09-04 14:29 jialiangzai 阅读(62) 评论(0) 推荐(0)
摘要:点击查看代码 ``` 1. 同步模式:前一个任务执行完了,才能执行下一个任务——如果发请求则会阻塞,失去连接 2. 异步模式:一个任务有一个或多个回调函数,前一个任务结束后,执行回调函数,不会阻塞后面的代码,因为执行顺序不一样,所以是异步的 3. 回调函数——异步模式编程 将函数以参数的形式传递 用 阅读全文
posted @ 2023-09-04 21:35 jialiangzai 阅读(67) 评论(0) 推荐(0)
摘要:1、v-bind是单向绑定,用来绑定数据和属性以及表达式,只能将vue中的数据同步到页面。 2、v-model是双向绑定,不只能将vue中的数据同步到页面,而且可以将用户数据的数据赋值给vue中的属性。 3、v-bind可以给任何属性赋值,v-model只能给具备value属性的元素进行数据双向绑定 阅读全文
posted @ 2023-09-05 20:51 jialiangzai 阅读(116) 评论(0) 推荐(0)
摘要:``` 虚拟DOM 虚拟DOM 本质上是一个js对象 ,通过对象来表示真实的DOM结构。 key是虚拟DOM对象的标识,当状态中的数据发生变化时,Vue会根据 新数据 生成 新的虚拟DOM key的原理及作用 Key是对节点进行的一个标识,在Vue中,Key作为Vue中对比算法的标识, 在数据修改后 阅读全文
posted @ 2023-09-05 20:59 jialiangzai 阅读(92) 评论(0) 推荐(0)
摘要:在Vue 3中,与Vue 2相比,有一些改进和优化的diff算法。 1.静态模板提升(Static Template Hoisting):Vue 3使用了基于模板的静态分析技术,可以在编译阶段将静态的模板部分提升为常量,从而减少运行时的diff和渲染开销。 2.静态标记(Static Marking 阅读全文
posted @ 2023-09-05 21:13 jialiangzai 阅读(620) 评论(0) 推荐(0)
摘要:![image](https://img2023.cnblogs.com/blog/2357003/202309/2357003-20230905212631220-681669668.png) 阅读全文
posted @ 2023-09-05 21:26 jialiangzai 阅读(58) 评论(0) 推荐(0)
摘要:渲染引擎首先通过网络获得所请求文档的内容,通常以8K分块的方式完成。 下面是渲染引擎在取得内容之后的基本流程: 1.解析html为dom树,解析css为cssom。渲染引擎开始解析html,并将标签转化为内容树中的dom节点。 2. 把dom和cssom结合起来生成渲染树(render)。接着,它解 阅读全文
posted @ 2023-09-05 21:31 jialiangzai 阅读(99) 评论(0) 推荐(0)
摘要:Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组。 其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性)。 语法 Object.entries(obj) 参数 obj:可以返回其可枚举属性的键值对的对象。 阅读全文
posted @ 2023-09-05 21:46 jialiangzai 阅读(108) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/chenzhizhuo/article/details/101291652 这个大佬写的很细,强烈推荐 阅读全文
posted @ 2023-09-05 21:57 jialiangzai 阅读(79) 评论(0) 推荐(0)
摘要:## 性能代价和获得的用户体验收益不成正比 ```` 先从技术方面讲的话,无非就是数组每个下标都要添加监听器, 无疑会增加内存消耗, 而数组的sort、splice、reverse、shift、unshift等都会触发大量的数组子项的下标更改和变动, 从而触发大量getter和setter, 这在数 阅读全文
posted @ 2023-09-07 22:02 jialiangzai 阅读(86) 评论(0) 推荐(0)
摘要:这主要是由于 Vue 3 引入了响应式系统的重写和虚拟 DOM 的改进所致。 响应式系统重写:Vue 3 的响应式系统使用了 Proxy,相对于 Vue 2 的 Object.defineProperty,Proxy 会对访问的每个属性进行拦截和处理。尽管 Proxy 在功能上更加强大和灵活,但其性 阅读全文
posted @ 2023-09-07 22:05 jialiangzai 阅读(496) 评论(0) 推荐(0)
摘要:问题:表单验证正则匹配数字,但输入汉字仍然通过 原因:.number会将input里的值用parseFloat()转化,这样用正则匹配数字后,输入的即使是:123四五六;也不会报错,因为123四五六被转换成了123 解决办法:将.number去除即可 除了.number修饰符外,还有 .lazy 、 阅读全文
posted @ 2023-09-08 13:51 jialiangzai 阅读(377) 评论(0) 推荐(0)
摘要:use strict 阅读全文
posted @ 2023-10-14 15:42 jialiangzai 阅读(29) 评论(0) 推荐(0)
摘要:js手写一个call /** * 手写一个call方法 * 函数名字为myCall * symbol优化 */ let obj = { name: '白衣', age: 3, } function getYaer (name, age) { // console.log('函数内的this',thi 阅读全文
posted @ 2023-10-14 16:13 jialiangzai 阅读(87) 评论(0) 推荐(0)
摘要:js手写一个apply /** * 手写一个apply方法 * 函数名字为 myApply * symbol优化 */ Function.prototype.myApply = function (targetObj, args) { // symbol优化 let key = Symbol('ke 阅读全文
posted @ 2023-10-14 21:30 jialiangzai 阅读(46) 评论(0) 推荐(0)
摘要:手写一个 bind 方法 /** * 手写一个 bind 方法 * 函数名字为 myBind */ Function.prototype.myBind = function (targetObj, ...args) { return (...argus) => this.call(targetObj 阅读全文
posted @ 2023-10-14 21:50 jialiangzai 阅读(34) 评论(0) 推荐(0)
摘要:说明 构造函数继承实现属性继承 以父类原型纯净对象 改变constructor的指向(如果不改变就会指向父类,要想实现继承要指向子类) create的第二个参数会覆盖掉第一个参数中的相同数据 阅读全文
posted @ 2023-10-14 22:23 jialiangzai 阅读(42) 评论(0) 推荐(0)
摘要:点击查看代码 对于为什么要传入一个函数来更新状态,是为了确保在更新状态之前,使用最新的状态值进行计算。 让我解释一下。在React中,当我们调用setXXX钩子来更新状态时,React并不会立即更新状态值。相反,它将更新请求加入到一个队列中,并在稍后的时间点批量处理这些更新请求。这样做是为了优化性能 阅读全文
posted @ 2023-10-15 11:53 jialiangzai 阅读(734) 评论(0) 推荐(0)
摘要:函数柯里化 function setSumMark (length) { let arr1 = [] function myCurrying (...argus) { arr1.push(...argus) if (arr1.length length) { let res = arr1.slice 阅读全文
posted @ 2023-10-20 16:33 jialiangzai 阅读(60) 评论(0) 推荐(0)
摘要:点击查看代码 axios请求中断_下载中断和下载进度 <script setup lang="ts"> import axios from 'axios' import { ref } from 'vue' let abort: AbortController const progress = re 阅读全文
posted @ 2023-10-20 17:10 jialiangzai 阅读(234) 评论(0) 推荐(1)
摘要:点击查看代码 <script setup lang="ts"> import axios from 'axios' const request = axios.create({ baseURL: 'http://localhost:3000', // 设置请求超时时间为5秒 timeout: 200 阅读全文
posted @ 2023-10-20 17:11 jialiangzai 阅读(207) 评论(0) 推荐(0)
摘要:axios请求重试_axios-retry插件 <script setup lang="ts"> import axios from 'axios' import axiosRetry from 'axios-retry' const request = axios.create({ baseURL 阅读全文
posted @ 2023-10-20 17:12 jialiangzai 阅读(277) 评论(0) 推荐(0)
摘要:简介 虚拟列表是一种优化长列表渲染的技术,它可以在保持流畅性的同时,渲染大量的数据。 在传统的列表渲染中,如果列表非常长,会导致渲染时间过长,页面卡顿,用户体验变得非常差。而虚拟列表则是只渲染可见区域内的数据,而非全部渲染,这样就可以大大提高渲染效率,保持页面流畅性。 应用场景 虚拟列表技术在大数据 阅读全文
posted @ 2023-10-21 21:46 jialiangzai 阅读(417) 评论(0) 推荐(0)
摘要:支持多种文件(docx、excel、pdf)预览的 vue 组件库。 同时支持 vue2/3 使用简单 支持本地文件 支持远程地址 pdf 预览 安装依赖 npm i @vue-office/pdf <script setup lang="ts"> // 引入 VueOffice 组件 import 阅读全文
posted @ 2023-10-21 22:14 jialiangzai 阅读(4751) 评论(0) 推荐(0)
摘要:![image](https://img2023.cnblogs.com/blog/2357003/202310/2357003-20231022114323824-964048896.png) 阅读全文
posted @ 2023-10-22 11:43 jialiangzai 阅读(92) 评论(0) 推荐(0)
摘要:把原生 DOM 标签转换后加入到 3D 场景空间中显示 function domTo3D() { // 1. 准备原生 DOM 标签 const tag = document.createElement('span') tag.innerHTML = '我是文字' tag.style.color = 阅读全文
posted @ 2023-10-24 19:03 jialiangzai 阅读(110) 评论(0) 推荐(0)
摘要:原生 DOM 还用原生的 DOM 点击事件,要注意开启 pointerEvents CSS3DRenderer 是一个新的渲染器,需要在渲染循环调用并适配 labelRenderer.domElement.style.pointerEvents = 'none' // 让标签触发鼠标交互事件 thr 阅读全文
posted @ 2023-10-24 19:25 jialiangzai 阅读(78) 评论(0) 推荐(0)
摘要:点击查看代码 // 目标:初始化 three.js 基础环境 import * as THREE from 'three' import { OrbitControls } from 'three/addons/controls/OrbitControls.js' import { CSS3DRen 阅读全文
posted @ 2023-10-25 00:24 jialiangzai 阅读(62) 评论(0) 推荐(0)
摘要:二分查找算法 const func = (array, target) => { let left = 0 let right = array.length - 1 while (left <= right) { let mid = Math.floor((left + right) / 2) if 阅读全文
posted @ 2023-10-26 10:54 jialiangzai 阅读(64) 评论(0) 推荐(0)
摘要:js判断字符串是否连贯 var name="ABCDEF"; //需要验证的字符串 var lcontinuity=0; //用于连贯个数的计数 for(var i=1;i<name.length;i++){ if(((name[i].charCodeAt())-(name[i-1].charCod 阅读全文
posted @ 2023-10-26 11:39 jialiangzai 阅读(121) 评论(0) 推荐(0)
摘要:世界坐标系:场景空间的中心点 模型坐标系:模型物体本身的中心点 // 注意:建模师给的模型文件,物体的坐标轴原点可能不再正中心 物体位移:参考父级物体的坐标系 旋转和缩放:参考自身坐标系 阅读全文
posted @ 2023-10-28 19:36 jialiangzai 阅读(122) 评论(0) 推荐(0)
摘要:this.model.traverse(obj => { obj.castShadow = true }) 阅读全文
posted @ 2023-11-04 18:37 jialiangzai 阅读(40) 评论(0) 推荐(0)
摘要:点击查看代码 const resizeObserver = ref(null); //进行初始化和监听窗口变化 onMounted(async () => { await nextTick(() => { initChart(); setOptions(options.value, opts.val 阅读全文
posted @ 2023-11-05 21:34 jialiangzai 阅读(317) 评论(0) 推荐(0)
摘要:作用: 1 验证码是目前大多网站所支持并使用于注册登录的。就在于其作用能有效防止恶意登录注册,验证码每次都不同, 这就可以排除,用其他病毒或者软件自动申请用户及自动登陆.有效防止这种问题。 2 短信验证码等可以验证用户的合法性 1 智能选图 文字点选 短信 滑动 等一般 都是购买的服务 2 图片文字 阅读全文
posted @ 2023-11-07 16:30 jialiangzai 阅读(155) 评论(0) 推荐(0)
摘要:同一处的多个装饰器是按照洋葱模型,由外到内进入,再由内到外执行 阅读全文
posted @ 2023-11-07 17:55 jialiangzai 阅读(43) 评论(0) 推荐(0)
摘要:flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。 flex-grow :flex-grow属性定义盒子的放大比例,默认为0 不放大 其他数字按比例放大 flex-shrink:如果所有项目的flex-shrink属 阅读全文
posted @ 2023-11-07 18:02 jialiangzai 阅读(208) 评论(0) 推荐(0)
摘要:1 怎么判断是安卓还是 ios** //获取浏览器的userAgent,并转化为小写 var ua = navigator.userAgent.toLowerCase(); //判断是否是苹果手机,是则是true var isIos = (ua.indexOf('iphone') != -1) || 阅读全文
posted @ 2023-11-07 18:23 jialiangzai 阅读(159) 评论(0) 推荐(0)
摘要:URI Uniform Resource Identifier 统一资源标识符 URL Uniform Resource Locator 统一资源定位符 URN Uniform Resource Name 统一资源名称 阅读全文
posted @ 2023-11-07 18:36 jialiangzai 阅读(89) 评论(0) 推荐(0)
摘要:一、HTML考题(8题) 1. 前端页面有哪三层构成,分别是什么?作用是什么? 前端页面主要由三层构成,分别是结构层、表示层和行为层。这三层各自的作用如下: 1. HTML(HyperText Markup Language):结构层,它是网页的基础,用于定义网页的内容结构,如标题、段落、列表、图像 阅读全文
posted @ 2025-03-03 12:34 jialiangzai 阅读(96) 评论(0) 推荐(0)
摘要:第一章 面试题基础篇 ​ 1.1 HTML面试题 ​ 面试题:行内元素有哪些?块级元素有哪些? 空(void)元素有哪些? 行内元素:span、img、input... 块级元素:div、footer、header、section、p、h1...h6... 空元素:br、hr... 元素之间的转换问 阅读全文
posted @ 2025-03-03 12:34 jialiangzai 阅读(103) 评论(0) 推荐(0)