本篇文章是前端基础练习题第二十七天的答案及解析部分,纯题目部分请移步前端基础练习题 第27天
正文
1.请简述GET
请求与POST
请求的区别。
区别如下所示:
- 参数传递方式不同。
get
请求会将参数跟在URL后进行传输,而post
请求则是作为HTTP消息的实体内容发送给Web服务器的,这种传递是对用户不可见的。 - 数据传输大小不同。
get
方式传输的数据大小不能超过2KB
,而post
要大得多。 - 安全问题。
get
方式请求的数据会被浏览器缓存起来,因此有安全问题。
2.试比较CORS
与JSONP
的区别。
区别如下所示:
CORS
与JSONP
的使用目的相同,但是它比JSONP
更强大。JSONP
只支持GET
请求,CORS
支持所有类型的HTTP
请求。JSONP
的优势在于支持老式浏览器,以及可以向不支持CORS
的网站请求数据。
3.函数声明与函数表达式有何区别?
函数声明必须始终带有一个标识符,而函数表达式可以省略。在JS中,解析器会率先读取函数声明,并使其在执行任何代码之前可以访问,即变量提升现象,而函数表达式必须等到解析器执行到它所在的代码行,才会真正的解析执行。
4.form
中的input
可以设置为readonly
和disabled
,两者有什么区别?
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;
}
说明
题目中出现的JS指的是采用ECMAScript 2015及之后标准的JavaScript
答案中,若有错误和需完善的地方,可在下方留言反馈哈~~
查看纯习题版,请点击前端基础练习题 第27天