
JS
程序媛Lisa
这个作者很懒,什么都没留下…
展开
-
替换函数this指向的三种方式
3、bind: 函数.bind(this对象,参数,参数...) 延迟触发,返回绑定this的新对象;2、apply: 函数.apply(this对象,[参数,参数...]) 立即触发;1、call:函数.call(this对象,参数,参数...) 立即触发;原创 2024-05-08 09:41:38 · 272 阅读 · 0 评论 -
JavaScript作用域链
当函数在使用一个变量时,会先在当前作用域查找,如果没有的话,会向上级作用域进行查找,直至找到或者返回undefined。作用域链--由多级作用域串联形成的链式结构。作用域---当前的执行上下文。原创 2024-04-15 11:52:17 · 136 阅读 · 0 评论 -
new做了什么
实例对象._proto_=构造函数.prototype。创建实例对象,并将函数的this指向该实例对象。原创 2024-04-15 11:51:04 · 98 阅读 · 0 评论 -
JavaScript原型链
访问一个对象的属性或方法时,会先在对象自身查找,没有的话沿着_proto_这条链向上查找,直到找到或者返回null。js中所有对象包含一个_proto_内部属性,它所对应的就是该对象的原型。原创 2024-04-15 11:50:20 · 127 阅读 · 0 评论 -
ES6转ES5的配置
"useBuiltIns": "usage" //这个的含义是引入的@babel/polyfill按需加载,只使用项目中需要转为es5的部分,减少项目大小。5)、成功,如果是编写插件,不影响全局代码,就应该使用@babel/plugin-transform-runtime,.babelrc配置如下。"corejs": 2, //一般使用2。2)、项目根目录webpack.config.js中配置rules。4)、在main.js中引入@babel/polyfill。1)、安装babel。原创 2024-04-15 11:06:28 · 515 阅读 · 0 评论 -
Cookie、Session和Token
1、虽然session保存在服务器,但它还是需要客户端浏览器的支持,因为session需要使用cookie作为识别标志。cookie的生存时间是长久有效的:手动将cookie保存在客户端的硬盘中,浏览器关闭的话,cookie页不会清除;4、隐私策略不同:cookie是对客户端是可见的,可以分析存放在本地的cookie并进去cookie欺骗;session存储在服务器上,对于客户端是透明的,不存在敏感信息泄露的风险。加入并发访问的用户太多,会产生很多的session,对服务器是一个很大的负担,耗费大量内存。原创 2024-04-15 11:03:36 · 530 阅读 · 0 评论 -
事件修饰符
self:只在event.target是当前元素自身时触发处理函数。.passive:事件的默认行为将立即触发。.prevent:阻止默认事件行为。.capture:捕获事件冒泡。.native:监听子组件行为。.once:事件只触发一次。.stop:阻止事件冒泡。原创 2024-04-15 10:59:14 · 122 阅读 · 0 评论 -
数组去重的方法
方法5:原始for循环加splice,此时数组长度减1。方法1:双层for循环加push,添加到新数组。) {//遍历出新数组中没有的元素并且添加进去。方法3:数组的forEach加indexOf。//过滤出来第一次出现的元素。方法2:数组的filter方法。方法4:用Set方法去重。方法6:includes。原创 2024-04-15 10:56:57 · 590 阅读 · 0 评论 -
检测对象是否有某属性
属性名’ in 对象 true->存在 false->不存在。对象.属性名===undefined true->不存在 false->存在。对象.hasOwnProperty(‘属性名’) true->存在 false->不存在。原创 2024-04-15 10:56:05 · 95 阅读 · 0 评论 -
前端性能优化
13. **JavaScript性能**:避免昂贵的操作,如大量的DOM操作和复杂的计算,使用节流(throttling)和防抖(debouncing)技术优化事件处理。性能优化是一个持续的过程,需要不断地评估、测试和调整。6. **异步加载和延迟执行**:通过异步加载和动态导入(如使用`async`和`defer`属性)来优化脚本的加载和执行,减少页面渲染的阻塞。4. **图片优化**:采用适合的图片格式(如WebP或AVIF),提供正确尺寸的图片,并使用图片懒加载技术,只在图片进入可视区域时加载。原创 2024-04-15 10:42:25 · 324 阅读 · 0 评论 -
call,apply,bind区别
Bind:延时触发,把函数触发时的this对象和参数都规定好,会返回一个新的函数,不会马上触发函数,通过函数名()来触发。Apply:同call,差异是参数用数组储存;目的是把原本需要一个一个传递参数的函数,改成接受数组类型的参数。Call:把函数临时放在对象中,立即执行函数;目的是让函数的this指向这个对象。原创 2024-04-11 14:56:10 · 108 阅读 · 0 评论 -
v-if和v-show
(因为懒加载,初始为 false 时,不会渲染,但是因为它是通过添加和删除 dom元素来控制显示和隐藏的,因此初始渲染开销较小,切换开销比较大)。v-show 其实就是在控制 css ,v-if 切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件。(无论 true 或者 false 初始都会进行渲染,此后通过 css 来控制显示隐藏,因此切换开销比较小,初始开销较大),v-show 都会编译,初始值为 false,只是将 display 设为 none,但它也编译了;原创 2024-04-11 14:52:39 · 217 阅读 · 0 评论 -
methods、watch和computed的区别
watch:用来监听属性的变化,当值发生变化的时候来执行特定的函数,watch监听属性的时候会有2个参数newVal和oldVal,一个新值一个旧值;computed:计算属性,对数据进行处理并返回新的值,调用时不需要括号,依赖缓存,一旦数据发生改变则触发。methods:普通的函数方法,执行的时候需要事件的触发;原创 2024-04-11 14:50:07 · 120 阅读 · 0 评论 -
浏览器渲染页面的过程
1、根据html文件构建DOM树和CSSOM树。构建的过程中如果遇到js文件阻塞DOM树及CSSOM树的构建,则优先加载js文件,加载完毕,再继续构建DOM树和CSSOM树;3、页面的重绘(repaint)和重排(reflow,也叫回流),页面渲染完成后,若js操作了DOM节点,根据js对DOM的操作,浏览器对页面进行重绘或者重排。2、构建渲染树(Render Tree);原创 2024-04-11 12:14:26 · 99 阅读 · 0 评论 -
深拷贝和浅拷贝
浅拷贝:对于基础类型的数据,进行值的拷贝;如果是引用类型的数据,只进行地址值的拷贝,也就是指向同一个地址值。那么修改其中任何一个对象的属性,其他对象的属性也会被修改掉。深拷贝:对于基础类型的数据,还是进行值的拷贝;如果是引用类型的话,是对其中具体数据进行拷贝,不再只是地址值的拷贝。原创 2024-04-11 12:07:57 · 465 阅读 · 0 评论