前端基础练习题第27天 答案及解析

本篇文章是前端基础练习题第二十七天的答案及解析部分,纯题目部分请移步前端基础练习题 第27天

正文

1.请简述GET请求与POST请求的区别。

区别如下所示:

  • 参数传递方式不同。get请求会将参数跟在URL后进行传输,而post请求则是作为HTTP消息的实体内容发送给Web服务器的,这种传递是对用户不可见的。
  • 数据传输大小不同。get方式传输的数据大小不能超过2KB,而post要大得多。
  • 安全问题。get方式请求的数据会被浏览器缓存起来,因此有安全问题。

2.试比较CORSJSONP的区别。

区别如下所示:

  • CORSJSONP的使用目的相同,但是它比JSONP更强大。
  • JSONP只支持GET请求,CORS支持所有类型的HTTP请求。
  • JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。

3.函数声明与函数表达式有何区别?

函数声明必须始终带有一个标识符,而函数表达式可以省略。在JS中,解析器会率先读取函数声明,并使其在执行任何代码之前可以访问,即变量提升现象,而函数表达式必须等到解析器执行到它所在的代码行,才会真正的解析执行。

4.form中的input可以设置为readonlydisabled,两者有什么区别?

设置了readonly属性的input不可编辑,但其中的内容可以选择和复制,并且值可以传递到后台;设置了disabledinput不可编辑,但其中的内容不可选择和复制,并且值不能被传递到后台。

5.未声明变量和未定义变量有什么区别?

未声明的变量是指在程序中不存在且未声明(Undeclared)的变量,如果程序尝试读取未声明变量的值,则会抛出错误;未定义变量是在程序中声明但尚未初始化(Undefined)的变量,访问未定义变量的值,会得到undefined

6.谈谈你对渐进增强与优雅降级这两种设计模式的理解。

渐进增强是优先考虑低版本,先保证系统最基本的功能可用,然后再逐步做加法,针对高版本浏览器进行效果、交互、追加功能以达到更好的用户体验;优雅降级是一开始就针对高版本浏览器构建应用的完整功能,然后再逐步做减法,针对低版本的浏览器设置兼容性方法、hack方案等。

7.使用语义化元素有哪些好处?

使用语义化元素有以下好处:

  • 去掉或样式丢失时能让页面呈现清晰的结构
  • 便于屏幕阅读器等设备正确“阅读”你的页面,以实现无障碍访问
  • 有利于SEO,有助于网络爬虫根据标签和权重抓取更多的有效信息
  • 便于团队开发和维护,语义化的代码具有可读性且能减少差异性

8.如何视觉隐藏网页内容,只让它们在屏幕阅读器中可用?

可采用以下两种方式:

  • visibility: hidden;缺陷:隐藏内容会占据它所应该占据的物理空间
  • overflow: hidden; 一种可供参考的样式如下所示:
    1
    2
    3
    4
    5
    6
    .text-hidden {
    display: block;
    width: 0;
    height: 0;
    overflow: hidden;
    }
    这样既不会占据物理空间,又会被屏幕阅读器所读取。

说明

  1. 题目中出现的JS指的是采用ECMAScript 2015及之后标准的JavaScript

  2. 答案中,若有错误和需完善的地方,可在下方留言反馈哈~~

  3. 查看纯习题版,请点击前端基础练习题 第27天

--本文结束 感谢阅读--
创作十分不易,原创更应鼓励