上次由于时间有限只分享了一部分的前端面试题,所以本篇继续分享前端经典面试试题

一. 栈和队列的区别?

栈的插入和删除操作都是在一端进行的,而队列的操作却是在两端进行的。
队列先进先出,栈先进后出。
栈只允许在表尾一端进行插入和删除,而队列只允许在表尾一端进行插入,在表头一端进行删除。

二. http 和 https 有何区别?如何灵活使用?

a. http是HTTP协议运行在TCP之上。所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。
b. https是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份,如果配置了客户端验证,服务器方也可以验证客户端的身份

三. 请你谈谈Cookie的弊端

cookie虽然在持久保存客户端数据提供了方便,分担了服务器存储的负担,但还是有很多局限性的。 第一:每个特定的域名下最多生成20个cookie1.IE6或更低版本最多20个cookie
2.IE7和之后的版本最后可以有50个cookie。
3.Firefox最多50个cookie
4.chrome和Safari没有做硬性限制
IE和Opera 会清理近期最少使用的cookie,Firefox会随机清理cookie。cookie的最大大约为4096字节,为了兼容性,一般不能超过4095字节。IE 提供了一种存储可以持久化用户数据,叫做userdata,从IE5.0就开始支持。每个数据最多
128K,每个域名下最多1M。这个持久化数据放在缓存中,如果缓存没有清理,那么会一直存在。优点:极高的扩展性和可用性
1.通过良好的编程,控制保存在cookie中的session对象的大小。
2.通过加密和安全传输技术(SSL),减少cookie被破解的可能性。
3.只在cookie中存放不敏感数据,即使被盗也不会有重大损失。
4.控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。
缺点:
1.`Cookie`数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过
4KB,否则会被截掉。
2.安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事
无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。
3.有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个
计数器。如果

四. position:absolute和float属性的异同

共同点:对内联元素设置`float`和`absolute`属性,可以让元素脱离文档流,并且可以设置其
宽高。
不同点:float仍会占据位置,position会覆盖文档流中的其他元素。

五. CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算?

1.id选择器( # myid)
2.类选择器(.myclassname)
3.标签选择器(div, h1, p)
4.相邻选择器(h1 + p)
5.子选择器(ul > li)
6.后代选择器(li a)
7.通配符选择器( * )
8.属性选择器(a[rel = "external"])
9.伪类选择器(a: hover, li:nth-child)可继承的样式: font-size font-family color, text-indent;
不可继承的样式:border padding margin width height ;
优先级就近原则,同权重情况下样式定义最近者为准;
载入样式以最后载入的定位为准;优先级为:
!important >  id > class > tag
important 比 内联优先级高,但内联比 id 要高

六. 页面导入样式时,使用link和@import有什么区别?

(1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS,定义rel连接属性等作用;而
@import是CSS提供的,只能用于加载CSS;
(2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
(3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;

七. 常见的浏览器内核有哪些?

Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等。[又称MSHTML]
Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等
Presto内核:Opera7及以上。      [Opera内核原为:Presto,现为:Blink;]
Webkit内核:Safari,Chrome等。   [ Chrome的:Blink(WebKit的分支)]

八. 为什么要初始化CSS样式。

因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会
出现浏览器之间的页面显示差异。
当然,初始化样式会对SEO有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下初始
化。

九. js有哪些内置对象?

Object 是 JavaScript 中所有对象的父对象数据封装类对象:Object、Array、Boolean、Number 和 String
其他对象:Function、Arguments、Math、Date、RegExp、Error

十. Javascript作用链域?

全局函数无法查看局部函数的内部细节,但局部函数可以查看其上层的函数细节,直至全局细
节。当需要从局部函数查找某一属性或方法时,如果当前作用域没有找到,就会上溯到上层作
用域查找,直至全局函数,这种组织形式就是作用域链。

十一. JSON 的了解?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
它是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小
如:{"age":"12", "name":"back"}JSON字符串转换为JSON对象:
var obj =eval('('+ str +')');
var obj = str.parseJSON();
var obj = JSON.parse(str);JSON对象转换为JSON字符串:
var last=obj.toJSONString();
var last=JSON.stringify(obj);

十二.同步和异步的区别?

同步的概念应该是来自于OS中关于同步的概念:不同进程为协同完成某项工作而在先后次序上调
整(通过阻塞,唤醒等方式).同步强调的是顺序性.谁先谁后.异步则不存在这种顺序性.同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内
容出现,用户看到新内容,进行下一步操作。异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。等请求完,页面不刷新,
新内容也会出现,用户看到新内容。
(待完善)

十三.position的值, relative和absolute分别是相对于谁进行定位的?

absolute :生成绝对定位的元素, 相对于最近一级的 定位不是 static 的父元素来进行定位。
fixed (老IE不支持)生成绝对定位的元素,通常相对于浏览器窗口或 frame 进行定位。
relative 生成相对定位的元素,相对于其在普通流中的位置进行定位。
static 默认值。没有定位,元素出现在正常的流中
sticky 生成粘性定位的元素,容器的位置根据正常文档流计算得出

十四. 异步加载和延迟加载

1. 异步加载的方案: 动态插入 script 标签
2. 通过 ajax 去获取 js 代码,然后通过 eval 执行
3. script 标签上添加 defer 或者 async 属性
4. 创建并插入 iframe,让它异步执行 js
5. 延迟加载:有些 js 代码并不是页面初始化的时候就立刻需要的,而稍后的某些情况才需要的

转载于:https://juejin.im/post/5bcf0daff265da0afc2c3912

Web前端经典面试试题(二)相关推荐

  1. 2018最新Web前端经典面试试题及答案

    本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题,并且都给出了我在网上收集的答案.马上就要过春节了,开年就是崭新的一年,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识 ...

  2. Web前端经典面试试题(一)

    本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案.眼看新的一年马上就要开始了,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端 ...

  3. (转)2018最新Web前端经典面试试题及答案

    javascript: JavaScript中如何检测一个变量是一个String类型?请写出函数实现 typeof(obj) === "string" typeof obj === ...

  4. 2018最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)--转载

    版权声明:本文为转载文章,感谢博主小胖梅的博客,如有侵权,请联系我删除,谢谢 转载链接: https://blog.csdn.net/xm1037782843/article/details/8070 ...

  5. 最新Web前端经典面试试题(Marksheng全网最不讲武德的版本)

    第一篇 近期总结一一些面试题 都是企业的面试题笔记题 感觉薪资10k下的都会出笔试题 特别高的薪资都是直接技术面试或者是 现场编程 总结很多人的面试题,后期会对于单个知识点再说笔记详细讲解. 部分都是 ...

  6. 2019最新Web前端经典面试试题及答案,持续更新

    Ps: 文章所述内容,来源渠道平时积累以及网上摘录.按日期持续更新...目录: 转载请注明来源. -2018/6/8   1.position的定位方式 2.描述下从输入URL到整个网页加载完毕及显示 ...

  7. 2021-最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)---Vue篇

    ★★★ 如何使用原生 Node.js 操做 cookie? ★★ 什么是 Node.js?我们在哪里使用它? ★★ 为什么要使用 Node.js? ★★★ Node.js 有哪些特点? ★★★ set ...

  8. 2023最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)

    近期总结一一些面试题 都是企业的面试题笔记题 感觉薪资10k-15k的常见面试题 个人录制的最新Vue项目学习视频:B站 小胖梅-的个人空间_哔哩哔哩_Bilibili 红色为常见面试题 ====== ...

  9. 2021-最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)---手写代码篇

    ★★★ 手写代码:实现forEach map filter reduce ★★★ 手写实现一个简易的 Vue Reactive ★★★ 手写代码,监测数组变化,并返回数组长度 ★★★ 手写原生继承,并 ...

最新文章

  1. 写出现代计算机网络的三个方面的应用,《计算机应用基础》统考模拟试题一及参考答案0...
  2. 写了个Linux包过滤防火墙
  3. 浏览器的渲染原理简介
  4. My cnblogs's first day
  5. Netty实现原理浅析
  6. 白银TD盈亏计算实例介绍
  7. java+long.builder_java.lang.StringBuilder.append(long lng)方法实例
  8. Java 类型信息 —— 获取泛型类型的类对象(.class)
  9. python100例详解-Python字典实现简单的三级菜单(实例讲解)
  10. COleDateTime 使用方法
  11. 列出所有内核_Windows系统内核溢出漏洞提权
  12. STM32F103RBT6移植到STM32F103C8T6注意事项
  13. 双屏怎么快速切换鼠标_图文为您win7系统设置一键快速切换双屏显示的详细步骤...
  14. 计算机word做课程表实验报告,word表格练习(课程表的制作)
  15. SMT贴片加工防静电基础知识
  16. ⚡性能优化之首屏秒开
  17. kindle操作:传输下载的书籍、更改书籍封面
  18. win10切换输入法快捷键_分享27个使用Win10的技巧,希望能助你提升Win10的使用效率。...
  19. 小学计算机知识点总结怎么写,小学信息技术教学期末总结范文
  20. 留学目的地选择之亚利桑那州

热门文章

  1. 中国安防视频监控行业发展前景分析
  2. MAC安装Win10出现”在efi系统上,windows只能安装到gpt分区”问题的解决
  3. 软件开发过程中的回顾
  4. 小猿圈web前端之jQuery抽奖系统
  5. Android乐动力的开始启动页面开源代码
  6. 1毛钱的CDN你家的网站会用吗?
  7. AngularJs学习笔记(3)--$scope中的$apply和$digest方法
  8. gzip压缩算法: gzip 所使用压缩算法的基本原理
  9. 记一次升级Oracle驱动引发的死锁
  10. LCUI.css 0.1.2 发布, 基于 LCUI 开发的 UI 组件库