【前端--面试】常见面试题(十五)—— 简答题

609 阅读3分钟

这是我参与8月更文挑战的第27天,活动详情查看:8月更文挑战

null和undefined的区别?

null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。

  undefined

  (1)变量被声明了,但没有赋值时,就等于undefined。

  (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

  (3)对象没有赋值的属性,该属性的值为undefined。

  (4)函数没有返回值时,默认返回undefined。

  null

  (1) 作为函数的参数,表示该函数的参数不是对象。

  (2) 作为对象原型链的终点。

new操作符的作用

(1)创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。

(2)属性和方法被加入到 this 引用的对象中。

(3)新创建的对象由 this 所引用,并且最后隐式的返回 this 。

call() 和 apply() 的区别和作用?

apply()函数有两个参数:第一个参数是上下文,第二个参数是参数组成的数组。如果上下文是null,则使用全局对象代替。

  如:function.apply(this,[1,2,3]);

call()的第一个参数是上下文,后续是实例传入的参数序列。

  如:function.call(this,1,2,3);

常见HTTP状态码含义

  • 100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息

  •   200 OK 正常返回信息

  •   201 Created 请求成功并且服务器创建了新的资源

  •   202 Accepted 服务器已接受请求,但尚未处理

  •   301 Moved Permanently 请求的网页已永久移动到新位置。

  •   302 Found 临时性重定向。

  •   303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。

  •   304 Not Modified 自从上次请求后,请求的网页未修改过。

  •   400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。

  •   401 Unauthorized 请求未授权。

  •   403 Forbidden 禁止访问。

  •   404 Not Found 找不到如何与 URI 相匹配的资源。

  •   500 Internal Server Error 最常见的服务器端错误。

  •   503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。

优雅降级和渐进增强

优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。由于IE独特的盒模型布局问题,针对不同版本的IE的hack实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效。

渐进增强:从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器才支持的功能,向页面增加无害于基础浏览器的额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用。