每天10个js面试题(四)

1、new一个对象的过程?

  • 开辟一个堆内存,创建一个空对象
  • 执行构造函数,对这个空对象进行构造
  • 给这个空对象添加__proto__属性

2、实现new操作符?

  • new操作符的执⾏过程:
  • 1、在函数内部创建⼀个新的空对象,
  • 2、将创建好的对象的__proto__指向该函数的prototype;
  • 3、执⾏构造函数中的代码,将其中的this指向当前新创建的对象,
  • 4、将该对象作为函数的返回值通过return将该对象返回

3、http 和 https 的区别?

  • https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

4、http状态码?

  • 1xx 信息,表示临时响应并需要请求者继续执行操作
  • 100:(继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
  • 101:(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。
  • 102:由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。
  • 2XX 成功
  • 200 表示从客户端发来的请求在服务器端被正确处理 ✨
  • 201  请求已经被实现,⽽且有⼀个新的资源已经依据请求的需要⽽建⽴
  • 202  请求已接受,但是还没执⾏,不保证完成请求
  • 204 表示请求成功,但响应报⽂不含实体的主体部分
  • 206 进⾏范围请求 ✨
  • 3XX 重定向
  • 301 永久性重定向,表示资源已被分配了新的 URL
  • 302 临时性重定向,表示资源临时被分配了新的 URL ✨
  • 303 表示资源存在着另⼀个 URL,应使⽤ GET ⽅法丁⾹获取资源
  • 304 表示服务器允许访问资源,但因发⽣请求未满⾜条件的情况
  • 307 临时重定向,和302含义相同
  • 4XX 客户端错误
  • 400 请求报⽂存在语法错误 ✨
  • 401 表示发送的请求需要有通过 HTTP 认证的认证信息 ✨
  • 403 表示对请求资源的访问被服务器拒绝 ✨
  • 404 表示在服务器上没有找到请求的资源 ✨
  • 408  客户端请求超时
  • 409 请求的资源可能引起冲突
  • 5XX 服务器错误
  • 500 表示服务器端在执⾏请求时发⽣了错误 ✨
  • 501 请求超出服务器能⼒范围,例如服务器不⽀持当前请求所需要的某个功能,或者请求是服务器不⽀持的某个⽅法
  • 503 表明服务器暂时处于超负载或正在停机维护,⽆法处理请求
  • 505 服务器不⽀持,或者拒绝⽀持在请求中使⽤的 HTTP 版本

5、懒加载和预加载?

  • 懒加载:懒加载也叫延迟加载,延迟加载网络资源或符合某些条件时才加载资源。常见的就是图片延时加载。
  • 懒加载的意义:懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数。
  • 懒惰实现方式:
  • 1.第一种是纯粹的延迟加载,使用setTimeOut或setInterval进行加载延迟.
  • 2.第二种是条件加载,符合某些条件,或触发了某些事件才开始异步下载。
  • 3.第三种是可视区加载,即仅加载用户可以看到的区域,这个主要由监控滚动条来实现,一般会在距用户看到某图片前一定距离遍开始加载,这样能保证用户拉下时正好能看到图片。
  • 预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染。
  • 两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载。懒加载对服务器前端有一定的缓解压力作用,预加载则会增加服务器前端压力。预加载应用如广告弹窗等。

6、less和sass的区别?

1.处理方面

  • Less是基于JavaScript,是在客户端处理的。
  • Sass是基于Ruby的,是在服务器端处理的。

2.变量方面

  • Less用@
  • Sass用$

3.输出设置方面

  • Less没有输出设置。
  • Sass提供4中输出选项:nested, compact, compressed 和 expanded。

4.条件语句方面

  • Less不支持。
  • Sass支持条件语句,可以使用if{}else{},for{}循环

7、闭包?

  • 闭包就是函数内部返回另一个函数,并且在外部有变量接收这个函数,就会形成闭包
  • 闭包的优点:
  • 1.保存变量不被销毁
  • 2.保护变量不被外部作用域访问
  • 闭包的缺点:
  • 1.产生的闭包内存不会被销毁,容易造成内存泄露

8、http请求类型?

  • GET: 通常⽤于请求服务器发送某些资源
  • HEAD: 请求资源的头部信息, 并且这些头部与 HTTP GET ⽅法请求时返回的⼀致. 该请求⽅法的⼀个使⽤场景是在
  • 下载⼀个⼤⽂件前先获取其⼤⼩再决定是否要下载, 以此可以节约带宽资源
  • OPTIONS: ⽤于获取⽬的资源所⽀持的通信选项
  • POST: 发送数据给服务器
  • PUT: ⽤于新增资源或者使⽤请求中的有效负载替换⽬标资源的表现形式
  • DELETE: ⽤于删除指定的资源
  • PATCH: ⽤于对资源进⾏部分修改
  • CONNECT: HTTP/1.1协议中预留给能够将连接改为管道⽅式的代理服务器
  • TRACE: 回显服务器收到的请求,主要⽤于测试或诊断

9、==和===的区别?

  • “==”:不全相等,只⽐较数据,不⽐较类型,如果两边的类型不⼀致,则会进⾏强制类型转化后再进⾏⽐较
  • “===”:全等,既要⽐较数据,也⽐较数据类型,如果两边的类型不⼀致时,不会做强制类型准换,直接返回 false

10、事件冒泡和事件捕获?

  • 事件冒泡(Event Bubbling)。事件从子级向父级,传递事件从触发元素开始,逐级向上传播到DOM树的最顶层,通常是document对象。
  • 事件捕获(Event Capturing)。事件从父级传递向子级,事件从DOM树的根节点开始,逐级向下传播到最具体的元素    

    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不熬夜的臭宝

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值