获得徽章 7
#每天一个知识点# call/apply/bind有什么区别?
参数列表格式不一样,一个是把参数放到第二个第三个一次类推。另一个是把所有参数放到一个数组里面。
1
#每天一个知识点# Hash模式
基于浏览器的hashchange事件,当url发生变化时,通过 window.location.hash 获取地址上的hash值,并通过Router类,配置routes对象设置与hash值对应的组件内容
优点:

hash值会出现在url中,但是不会被包含在http请求中,因此hash值改变不会重新加载页面
hash改变会触发hashchange事件,能控制浏览器的前进后退
兼容性好
缺点:

地址中携带#,不美观
只可修改#后面的部分,因此只能设置与当前URL同文档的URL
hash有体积限制,故只可以添加短字符串
设置的新值必须与原来不同才会触发hashchange事件,并将记录添加到栈中
每次URL的改变不属于一次http请求,所以不利于seo优化
展开
评论
#每天一个知识点# 路由hash模式和history模式的区别
hash 模式是一种把前端路由的路径用 # 拼接在真实 url 后面的模式。当 # 后面的路径发生变化时,浏览器并不会重新发起请求,而是会触发 onhashchange 事件。
hash模式的特点:
hash变化会触发网页跳转,即浏览器的前进和后退
hash 可以改变 url ,但是不会触发页面重新加载(hash的改变是记录在 window.history 中),即不会刷新页面。也就是说,所有页面的跳转都是在客户端进行操作。因此,这并不算是一次 http 请求,所以这种模式不利于 SEO 优化。hash 只能修改 # 后面的部分,所以只能跳转到与当前 url 同文档的 url
hash 通过触发 hashchange 事件,来监听 hash 的改变,借此实现无刷新跳转的功能
hash 永远不会提交到 server 端(可以理解为只在前端自生自灭)
展开
1
#每天一个知识点#

函数组件中利用hooks模拟生命周期主要使用的就是useEffect
如果useEffect的依赖数组为空数组, 此时,模拟的是componentDidMount
如果useEffect的依赖数组不为空,此时, 模拟的是componnetDidUpdate
如果useEffect的回调函数中返回一个函数, 此时,这个返回的函数模拟的是componentWillUnmount
展开
评论
#每天一个知识点#
执行上下文
执行上下文是评估和执行 JavaScript 代码的环境的抽象概念。每当 Javascript 代码在运行的时候,它都是在执行上下文中运行
执行上下文有三种类型:
全局执行上下文:任何不在函数内部的都是全局执行上下文,它首先会创建一个全局的window对象,并且设置this的值等于这个全局对象,一个程序中只有一个全局执行上下文
函数执行上下文: 每当一个函数被调用时, 都会为该函数创建一个新的上下文。每个函数都有它自己的执行上下文,不过是在函数被调用时创建的。函数上下文可以有任意多个。每当一个新的执行上下文被创建,它会按定义的顺序(将在后文讨论)执行一系列步骤
eval函数执行上下文:执行在 eval 函数内部的代码也会有它属于自己的执行上下文
展开
评论
#每天一个知识点#
Undefined与Null
Undefined 和 Null 都是基本数据类型,这两个基本数据类型分别都只有一个值,就是 undefined 和 null
undefined 代表的含义是未定义,null 代表的含义是空对象。一般变量声明了但还没有定义的时候会返回 undefined,null主要用于赋值给一些可能会返回对象的变量,作为初始化
undefined 在 JavaScript 中不是一个保留字,这意味着可以使用 undefined 来作为一个变量名,但是这样的做法是非常危险的,它会影响对 undefined 值的判断。我们可以通过一些方法获得安全的 undefined 值,比如说 void 0
typeof null 的返回值为object,且undefined == null返回true
展开
评论
#每天一个知识点# Cookie是最早被提出来的本地存储方式,在此之前,服务端是无法判断网络中的两个请求是否是同一用户发起的,为解决这个问题,Cookie就出现了。Cookie的大小只有4kb,它是一种纯文本文件,每次发起HTTP请求都会携带Cookie
特性:
Cookie一旦创建成功,就无法修改
Cookie是无法跨域的
每个域名下Cookie的数量不能超过20个,每个Cookie的大小不能超过4kb
存在安全问题,一旦被拦截,即可获得session的所有信息
Cookie在请求一个新的页面的时候都会被发送出去
展开
评论
#每天一个知识点# 改变this指向call、apply与bind区别:

前两个可以自动执行,bind不会自动执行,需要手动调用
call、bind与apply区别:前两个都有无数个参数,apply只有两个参数,而且第二个参数为数组
评论
#每天一个知识点# 微任务和宏任务的区别

1.宏任务:当前调用栈中执行的代码成为宏任务。(主代码快,定时器等等)。
2.微任务: 当前(此次事件循环中)宏任务执行完,在下一个宏任务开始之前需要执行的任务,可以理解为回调事件。(promise.then,proness.nextTick等等)。
3. 宏任务中的事件放在callback queue中,由事件触发线程维护;微任务的事件放在微任务队列中,由js引擎线程维护。
微任务:process.nextTick、MutationObserver、Promise.then catch finally
宏任务:I/O、setTimeout、setInterval、setImmediate、requestAnimationFrame
展开
评论
#每天一个知识点# 盒模型
盒模型由四个部分组成,分别是margin、border、padding、content
标准盒模型和IE盒模型的区别在于:在设置width和height时,所对应的范围不同

标准盒模型的width和height属性的范围只包含了content
IE盒模型的width和height属性的范围包含了border、padding和content
可以通过修改元素的box-sizing属性来改变元素的盒模型:

box-sizing: content-box 表示标准盒模型(默认值)
box-sizing: border-box 表示IE盒模型(怪异盒模型)
展开
评论
#每天一个知识点#
伪元素和伪类的区别和作用
伪元素:
在元素前后插入额外的元素或样式,插入的元素没有子文档中生成,它们只在外部显示可见
css3中伪元素在书写是使用双冒号::,比如::before
伪类:
将特殊的效果添加到特定的选择器上。它是在现有元素上添加类别,并不会产生新的元素
冒号:用于伪类,比如:hover
展开
评论
#每天一个知识点#
为什么POST请求会发送两次?
第一次请求为options预检请求,状态码为204
作用1:询问服务器是否支持修改的请求头,如果服务器支持,则在第二次中发送真正的请求
作用2: 检测服务器是否为同源请求,是否支持跨域
第二次请求为真正的POST请求
展开
评论
#每天一个知识点# 继承有哪些方法
原型链继承
借用构造函数继承(伪造对象、经典继承)
实例继承(原型式继承)
组合式继承
寄生组合继承
es6继承 extends
展开
评论
#每天一个知识点# 如果要做优化,CSS提高性能的方法有哪些?
内联首屏关键CSS
异步加载CSS
资源压缩
合理使用选择器
减少使用昂贵的属性
不要使用@import
展开
评论
#每天一个知识点# transition和animation的区别:
transition:
过渡属性,强调过渡,需要触发事件来实现过渡效果。
animation:
动画属性,不需要触发事件,可自己执行,并且可以循环
评论
#每天一个知识点# Cookie
Cookie是最早被提出来的本地存储方式,在此之前,服务端是无法判断网络中的两个请求是否是同一用户发起的,为解决这个问题,Cookie就出现了。Cookie的大小只有4kb,它是一种纯文本文件,每次发起HTTP请求都会携带Cookie
特性:
Cookie一旦创建成功,就无法修改
Cookie是无法跨域的
每个域名下Cookie的数量不能超过20个,每个Cookie的大小不能超过4kb
存在安全问题,一旦被拦截,即可获得session的所有信息
Cookie在请求一个新的页面的时候都会被发送出去
展开
1
#每天一个知识点#
如何解决无法跨域问题?
使用Nginx反向代理
在一个站点登陆之后,往其他网站写Cookie。服务端的Session存储到一个节点,Cookie存储sessionId
评论
#每天一个知识点# 单页面应用有什么 SEO 方案?
服务器端渲染首屏(SSR 基于 vue 的服务端下载);让服务端把首屏的数据渲染在页面上;进行基本的 css 模板 js 的编译合并;减少请求次数,使用 gulp 工具,把 css 打包成一个文件, js 打包成一个文件, 模板打包成一个 js 文件($templateCache) 可以和 js 文件打包成一起(促使模板 JS 文件和 JS 文件一次性请求);代码分块,如果首屏不需要的块,就不用加载了;路由组件懒加载。当打包构建应用时,Javascript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样更加高效;如果有大量图片使用懒加载。
展开
评论
#每天一个知识点# jrm,谁知道在一个页面发送了很多请求,突然点击了浏览器上的另外一个tab页,怎么阻止当前页面发送的那些请求呀?[衰]
16
就是要贴贴
heronCCC于2023-06-09 09:57发布的图片
5
下一页
个人成就
文章被点赞 1
文章被阅读 480
掘力值 11
收藏集
6
关注标签
0
加入于