• js 面试题学习笔记一


    1、什么是防抖和节流?有什么区别?如何实现?

    防抖:触发高频事件后N秒内函数只会执行一次,如果N秒高频事件再次被触发,则重新计算时间。(a时间触发,5秒内执行一次,但是第4秒的时候,又触发,时间又重置为5秒,待5秒后,触发事件)。

    节流:高频事件触发,但在n秒内只会执行一次,所以节流会稀释函数的执行频率。(5秒内执行一次时间,在第4秒的时候,有触发了该事件,事件不会触发)。

    思路:每次触发事件时,都会平拿不到那当前是否有等待执行的延时函数。

    2、get传参长度的误区,get和post请求在缓存方面的区别

    误区:通常以为get请求传参大小存在限制,而post请求的传参大小在2m以内;

    注意:

            http协议未规定get和post传参长度的限制。

            get的最大长度因为浏览器和web服务器限制了uri的长度。

            不同的浏览器和web服务器,限制的最大长度不一样。

            如果要求支持ie,最大长度限制为2083byte(2M),如只支持谷歌浏览器,则最大长度为8182byte(8M)。

    这一段扩大了认知。原来get不是协议限制了,是浏览器限制了;如果有一款浏览器不做长度限制,那就意味着,get请求不会受到限制;服务端限制uri;以下是nginx对uri请求体大小的限制:

    1. http {
    2. client_max_body_size 100m; # 限制请求体大小为100MB
    3. }

    get 和 post缓存的区别

            get请求类似于查找过程,获取数据,不用每次都连接数据库,所以可以使用缓存

            post一般用于修改和删除工作,所以必须与数据交互,不能用缓存

    get 和 post请求方式的区别

            get 产生一个tcp数据包,而post产生两个tcp数据包。

            get请求,浏览器会将header和data一起发送出去,服务器相应200。

            post请求,浏览器先发送header,服务端相应100;接着浏览器在大宋data,服务器相应200。

    get和post请求差异很大,推荐在读取数据时,用get;修改和删除时,用post。

    3、npm 安装机制,为什么输入npm install 就可以自动安装对应的模块?

            1、发出npm install 命令,先查询本地的node_modules目录中是否存在指定模块;

            如果模块存在,则不再重新安装;

            如果模块不存在,从对应的registry查询模块压缩的地址;如果存在,就下载压缩包,存放到根目录下的.npm目录里;解压压缩包到当前项目的node_modules目录里;

    主要阅读的文章是:

    前端经典面试题 30道_前端面试题-CSDN博客

  • 相关阅读:
    golang八股文整理(持续搬运)
    详细讲解一下JVM的内存模型与实现?
    Springboot 跨域 session 不一致的问题
    WEB逆向—X-Bogus逆向分析(纯算+补环境)
    ARM day4
    计算材料学学习记录2
    QT学习_15_线程间通信以及注意事项
    win11 右键关闭显示更多选项 修改右键菜单
    STM32 float浮点数转换成四个字节
    8+铜死亡+分型+预后模型
  • 原文地址:https://blog.csdn.net/weixin_44565776/article/details/139124836