自己总结的前端面试题
HTML5新增了哪些新特性和标签?
CSS3有哪些新特性?
列举你所知道的行内元素有哪些?块级元素有哪些? CSS的盒模型?
介绍所知道的CSS hack技巧。
常见的兼容性问题有哪些?
常使用的JS类库有哪些? 是否进行过插件开发?
若使用过Jquery,如何添加,删除,替换节点?
JS中的事件是指什么?IE与火狐的事件机制有什么区别? 如何阻止冒泡?
是否做过后台接口调用处理等操作?对Json有多少了解?
介绍一下XMLHttpRequest是指什么?该对象的常用方法和属性有哪些?
jquery 中如何将数组转化为json字符串,然后再转化回来?
Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
ajax是什么? ajax的交互模型(流程)? 同步和异步的区别?
如何解决跨域问题?
什么是闭包? 闭包主要涉及到js的哪些特性?
你有哪些性能优化的方法?
参考答案如下:
- HTML5新增了哪些新特性和标签?
答:
a) 绘画 canvas标签
b) 用于媒介回放的 video 和 audio 元素
c) 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
d) sessionStorage 的数据在浏览器关闭后自动删除
e) 语意化更好的内容元素,比如 article、footer、header、nav、section
f) 表单控件,calendar、date、time、email、url、search
- CSS3有哪些新特性?
答:
a) CSS3实现圆角(border-radius:8px)
b) 阴影(box-shadow:10px)
c) 对文字加特效(text-shadow、)
d) 线性渐变(gradient)
e) 旋转(transform)
transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);
//旋转,缩放,定位,倾斜
f) 增加了更多的CSS选择器,多背景rgba等。
- 列举你所知道的行内元素有哪些?块级元素有哪些? CSS的盒模型?
答:
行内元素span,a,var ,em,input,img,img,textarea,var,em,strong,select等。
块级标签:div,p,h1-h3,ul,ol,dl,li,dd,dt,table,td,tr等。
CSS盒模型:页面上的块级元素被看做是一个矩形框,这个框由元素的内容(content)、内边距(padding)、边框(border)和外边距(margin)组成。
- 介绍所知道的CSS hack技巧。
答:
IE都能识别*;标准浏览器(如FF)不能识别*;
IE6能识别*,但不能识别 !important,
IE7能识别*,也能识别!important;
FF不能识别*,但能识别!important;
IE6支持下划线,IE7和firefox均不支持下划线。
- 常见的兼容性问题有哪些?
例如:
a) png24位的图片在iE6浏览器上出现背景:解决方案是做成PNG8.
b) 浏览器默认的margin和padding不同:解决方案是加一个全局的{margin:0;padding:0;}来统一。
c) IE6种浮动产生的双倍边距问题:解决方案是在float的标签样式控制中加入 _display:inline;将其转化为行内属性。(_这个符号只有ie6会识别)
- 常使用的JS类库有哪些? 是否进行过插件开发?
答:最常用的库:Jquery ,YUI等。 - 若使用过Jquery,如何添加,删除,替换节点?
答:obj.appendChild , obj.removeChild , obj.replaceChild
- JS中的事件是指什么?IE与火狐的事件机制有什么区别? 如何阻止冒泡?
a) 我们在网页中的某个操作(有的操作对应多个事件)。例如:当我们点击一个按钮就会产生一个事件。是可以被 JavaScript 侦测到的行为。
b) 事件处理机制:IE是事件冒泡、火狐是事件捕获;
c) ev.stopPropagation()适用于火狐等浏览器 ; cancelBubble()只支持IE浏览器。
- 是否做过后台接口调用处理等操作?对Json有多少了解?
答:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
它是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小。
- 介绍一下XMLHttpRequest是指什么?该对象的常用方法和属性有哪些?
答:
a) XMLHttpRequest 对象提供了在网页加载后与服务器进行通信的方法。
b) open(“method”,”URL”) 建立对服务器的调用:
第一个参数是HTTP请求,方式可以为GET,POST或任何服务器所支持的您想调用的方式。
第二个参数是请求页面的URL。
send()方法,发送具体请求
abort()方法,停止当前请求
readyState属性 请求的状态 有5个可取值0=未初始化 ,1=正在加载
2=以加载,3=交互中,4=完成
responseText 属性 服务器的响应,表示为一个串
reponseXML 属性 服务器的响应,表示为XML
status 服务器的HTTP状态码,200对应ok 400对应not found
- jquery 中如何将数组转化为json字符串,然后再转化回来?
答:
$.fn.stringifyArray = function(array) {
return JSON.stringify(array)
}
$.fn.parseArray = function(array) {
return JSON.parse(array)
}
- Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
答:hasOwnProperty
- ajax是什么? ajax的交互模型(流程)? 同步和异步的区别?
答:
a)ajax是异步的 JavaScript 和 XML。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
b) 1--启动 获取XMlHttpRequest对象
2--open 打开url通道,并设置异步传输
3--send 发送数据到服务器
4--服务器接受数据并处理,处理完成后返回结果
5--客户端接收服务器端返回
c)同步:脚本会停留并等待服务器发送回复然后再继续.
异步:脚本允许页面继续其进程并处理可能的回复.
- 如何解决跨域问题?
答:几个可行的方案:
1、Web代理的方式。即用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面,由该页面代替用户页面完成交互,从而返回合适的结果。此方案可以解决现阶段所能够想到的多数跨域访问问题,但要求A网站提供Web代理的支持,因此A网站与B网站之间必须是紧密协作的,且每次交互过程,A网站的服务器负担增加,且无法代用户保存session状态。
2、on-Demand方式。动态控制script标记的生成,通过修改script标记的src属性完成对跨域页面的调用。此方案存在的缺陷是,script的src属性完成该调用时采取的方式是get方式,如果请求时传递的字符串过大时,可能会无法正常运行。不过此方案非常适合聚合类门户使用。
3、iframe方式。数据提交跟获取,采用iframe这种方式的确可以了,但由于父窗口与子窗口之间不能交互(跨域访问的情况下,这种交互被拒绝),因此无法完成对父窗口效果的影响。
4、用户本地转储方式:IE本身依附于windows平台的特性为我们提供了一种基于iframe,利用内存来“绕行”的方案,即两个window之间可以在客户端通过windows剪贴板的方式进行数据传输,只需要在接受数据的一方设置Interval进行轮询,获得结果后清除Interval即可。FF的平台独立性决定了它不支持剪贴板这种方式,而以往版本的FF中存在的插件漏洞又被fixed了,所以FF无法通过内存来完成暗渡陈仓。而由于文件操作FF也没有提供支持(无法通过Cookie跨域完成数据传递),致使这种技巧性的方式只能在IE中使用。
5、结合了前面几种方式,在访问A网站时,先请求B网站完成数据处理,再根据返回的标识来获得所需的结果。这种方法的缺点也很明显,B网站的负载增大了。优点,对session也实现了保持,同时A网站与B网站页面间的交互能力增强了。最重要的一点,这种方案满足了我们的全部需要。
- 什么是闭包? 闭包主要涉及到js的哪些特性?
答:
a) 能够读取其他函数内部变量的函数.(闭包定义大体理解对即可)
b) 作用域链,垃圾(内存)回收机制,函数嵌套等
- 你有哪些性能优化的方法?
答:(1) 减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存 ,图片服务器。(2) 前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数(3) 用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能。(4) 当需要设置的样式很多时设置className而不是直接操作style。(5) 少用全局变量、缓存DOM节点查找的结果。减少IO读取操作。(6) 避免使用CSS Expression(css表达式)又称Dynamic properties(动态属性)。(7) 图片预加载,将样式表放在顶部,将脚本放在底部,加上时间戳。(8) 避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢。
转载于:https://www.cnblogs.com/wujx9/p/7244989.html
自己总结的前端面试题相关推荐
- 「前端面试题系列7」Javascript 中的事件机制(从原生到框架)
前言 这是前端面试题系列的第 7 篇,你可能错过了前面的篇章,可以在这里找到: 理解函数的柯里化 ES6 中箭头函数的用法 this 的原理以及用法 伪类与伪元素的区别及实战 如何实现一个圣杯布局? ...
- 前端面试题整理(定期更新)
前言 因为面试的原因,最近又开始关注前端面试题,浏览过网上很多面试题集合,有很多小伙伴整理的很全面,但是我发现其中有很多技术点在当下已不再流行,而面试题一般都是映射开发中常遇到的一些技能和问题,再结合 ...
- JavaScript中的load事件的作用_史上最全的web前端面试题汇总及答案JavaScript之二(二)...
作者:樱桃小丸子儿 链接:https://www.jianshu.com/p/abadcc84e2a4 JavaScript JS的基本数据类型 number,string,boolean,objec ...
- noah的前端面试题(三)|掘金技术征文
上一篇 前端面试题(二) 1.JavaScript对于cookie的读.写操作 写入 cookie function setCookie(cName, cValue, days) { var expi ...
- 应届生web前端面试题_2020最新Web前端经典面试题试题及答案(持续更新)
Web前端面试题 Web前端面试题:说说你对webpack的看法 解析:webpack是一个模块打包工具,可以使用webpack管理你的模块依赖,并编译输出模块们所需要的静态文件.能很好的管理.打包w ...
- 前端面试题(html篇)
前端面试题(html篇) 转载于:https://www.cnblogs.com/mc67/p/5311613.html
- java 前端页面传过来的值怎么防止篡改_答对这40道经典web前端面试题,想不拿到offer都难!...
想成功就业web前端工程师,想要能高薪就业,那么除了好的web前端技能以外,还得有好的面试技巧,如果提前就了解更多企业的面试要求及面试题目,那么可以让我们的面试成功的几率大大的提高. 今天小编就整理了 ...
- 下面有关html5标签说法错误的有,前端面试题(2016含答案)
标签定义命令按钮,比如单选按钮.复选框或按钮 8) 下述有关css属性position的属性值的描述,说法错误的是? a. b. c. d. static:没有定位,元素出现在正常的流中 fixed: ...
- 前端攻城狮学习笔记七:常见前端面试题之HTML/CSS部分(二)
前端页面有哪三层构成,分别是什么?作用是什么? 1.结构层:由 HTML 或 XHTML 之类的标记语言负责创建,仅负责语义的表达.解决了页面"内容是什么"的问题. 2.表示层:由 ...
- 2017年秋招二十套前端面试题分享
前端面试--四月二十家前端面试题分享 1.正文 第一套 第二套 第三套 第四套 第五套 第六套 第七套 第八套 第九套 第十套 第十一套 第十二套 第十三套 第十四套 第十五套 第十六套 第十七套 第 ...
最新文章
- luoguP4503 [CTSC2014]企鹅QQ hash
- LruDiskCache要点--不可不用的磁盘缓存工具类
- Nmcli 网络管理命令行工具基础
- js - prototype 继承
- Scrapy -- 05
- OpenCV为Halide后端安排网络
- Shell脚本中字符串的一些常用操作
- 字符串匹配 sunday算法
- Redhat enterprise linux下安装rlwrap工具
- JVM虚拟机-Class文件之魔数
- 【华为云技术分享】云图说 | 容器交付流水线ContainerOps,提升持续交付效率
- 面向对象and正则表达式
- 关于Linux SHELL 的编程的几个练习(课本182页5-10题)
- 纯新手DSP编程--5.16--目标和主机设置
- Spark Session 与 Spark Context的区别
- 44个基于SaaS的商业智能解决方案
- Tensorflow模型量化(Quantization)原理及其实现方法
- java 前端通过浏览器下载服务器上的文件
- CCNA中文版完整教程
- C语言怎么播放背景音乐
热门文章
- 获取浏览器书签、浏览器文件夹数据
- Xray使用的一些经验分享(xray+burp的使用)
- Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient报错,问题排查...
- .Net中json序列化与反序列化
- python连接redis sentinel集群
- windows系统 安装MongoDB
- [转] Oracle学习之创建数据库(新建实例)
- bzoj 3594: [Scoi2014]方伯伯的玉米田
- 关于内置浏览器的问题
- 安卓学习第10课——listview