前端面试自我记录

keep-alive的原理
for of 和for of 的区别
vue原理
scss
vuex
vue-router hash和history的区别 https://www.jianshu.com/p/6f69ed8ce59d
vue-router的钩子函数 https://www.cnblogs.com/qdlhj/p/9838426.html
事件循环
浏览器地址寻址过程
网络协议http和https
一. 样式面试题

  1. 盒模型

  2. IE盒模型和标准盒模型的区别

  3. 边距坍塌

  4. 布局方式有哪些

  5. CSS优化,提高性能的方法有哪些?https://www.cnblogs.com/1463069300limingzhi/p/10853697.html

  6. 浮动 https://www.cnblogs.com/tusong1126/p/13582043.html

  7. BFC

  8. 伪类和伪元素 :hover ::after
    二. js

  9. 闭包 https://blog.csdn.net/weixin_43558749/article/details/90905723

  10. this指向问题

  11. prototype _ proto _ https://blog.csdn.net/lc237423551/article/details/80010100

  12. 垃圾回收

  13. 柯里化
    https://www.jianshu.com/p/2975c25e4d71
    用一个参数把返回的方法保存下来,这样就可以实现参数复用、提前确认、延迟运行
    https://blog.csdn.net/weixin_39798049/article/details/88648672

  14. 手写new
    function C没有返回值,既result instanceof Object : falseresult instanceof Object : false
    result instanceof Object : true为true

  15. es6 class是如何实现的
    https://blog.csdn.net/weixin_33681778/article/details/88038531

  16. 变量提升和函数提升
    function up() {
    var a = 1
    console.log(a);
    function a() {

    }
    console.log(a);
    }
    up() // 1 1

  17. 2 8 16进制和10进制的互相转换 https://blog.csdn.net/sinat_28771747/article/details/76242262?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1.pc_relevant_paycolumn_v3&spm=1001.2101.3001.4242.2&utm_relevant_index=4

  18. 隐式转换和显示转换
    二. 网络

  19. https 实现原理
    HTTPS在传输的过程中会涉及到三个密钥:
    服务器端的公钥和私钥,用来进行非对称加密
    客户端生成的随机密钥,用来进行对称加密
    一个HTTPS请求实际上包含了两次HTTP传输,可以细分为8步。
    1.客户端向服务器发起HTTPS请求,连接到服务器的443端口
    2.服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人。
    3.服务器将自己的公钥发送给客户端。
    4.客户端收到服务器端的证书之后,会对证书进行检查,验证其合法性,如果发现发现证书有问题,那么HTTPS传输就无法继续。严格的说,这里应该是验证服务器发送的数字证书的合法性,关于客户端如何验证数字证书的合法性,下文会进行说明。如果公钥合格,那么客户端会生成一个随机值,这个随机值就是用于进行对称加密的密钥,我们将该密钥称之为client key,即客户端密钥,这样在概念上和服务器端的密钥容易进行区分。然后用服务器的公钥对客户端密钥进行非对称加密,这样客户端密钥就变成密文了,至此,HTTPS中的第一次HTTP请求结束。
    5.客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。
    6.服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文。
    7.然后服务器将加密后的密文发送给客户端。
    8.客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成。
    三. 算法
    直接选择排序 https://blog.csdn.net/qq_42381297/article/details/100011020
    四、vue

  20. 路由传参
    https://www.jianshu.com/p/d276dcde6656
    https://blog.csdn.net/weixin_45644335/article/details/120786797
    问题记录:params传参时
    在这里插入图片描述
    在这里插入图片描述
    这样无法正常跳转
    在这里插入图片描述
    这样可以跳转,原因未知。但是如果是2个以上的参数就都可以正常跳转。

  21. vue2.x响应式之Object.defineProperty()局限性 https://blog.csdn.net/weixin_45780818/article/details/119083648

  22. vue2.x重写了数组的哪些方法
    https://blog.csdn.net/wytraining/article/details/114321846
    五、面试记录

  23. 数组去重

  24. 数组交集 https://blog.csdn.net/MMFerry/article/details/114022052

  25. Map和Object的区别
    https://blog.csdn.net/ckwang6/article/details/89215396

  26. Promise.all有一个失败会进入reject。如何让一个reject了但是其他方法继续执行。如果在单个请求中定义了catch方法,那么就不会进Promise.all的catch方法。因此,可以在单个的catch中将失败的promise放入一个list,待一轮请求完成后,再去请求失败的请求。
    https://blog.csdn.net/q3254421/article/details/84347433
    const promise1 = function () {
    return new Promise((resolve, reject) => {
    const timer = setTimeout(() => {
    resolve(“promise1 success”);
    }, 5000);
    });
    };
    const promise2 = function () {
    return new Promise((resolve, reject) => {
    const timer = setTimeout(() => {
    resolve(“promise2 success”);
    }, 3000);
    });
    };
    const promise3 = function () {
    return new Promise((resolve, reject) => {
    const timer = setTimeout(() => {
    reject(“promise3 failed”);
    }, 2000);
    })
    .catch(err => {
    console.log(‘catch’,err);
    })
    };
    // 注意需要加括号去调用方法
    const prList = [promise1(), promise2(), promise3()]
    const prAll = function () {
    Promise.all(prList).then(
    (res) => {
    console.log(‘all’, res);
    },
    (rej) => {
    console.log(‘all’, rej);
    }
    )
    };
    document.querySelector("#debounce").addEventListener(“click”, prAll);

  27. 严格模式的特点 https://blog.csdn.net/weixin_33672109/article/details/88738336

  28. 垂直水平居中 https://blog.csdn.net/weixin_42291381/article/details/81624935

  29. 提高首屏加载速度,检测加载时间 https://blog.csdn.net/VhWfR2u02Q/article/details/80115498

  30. 怎样检测内存泄露

  31. 箭头函数的特点 https://blog.csdn.net/lan128lan/article/details/105409837

  32. 继承重定向的问题 https://blog.csdn.net/u013578282/article/details/46595755

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值