‘壹’ 前端面试上机题一般是什么
前端面试上机题,
其实就是需要用到软件,
在软件中进行一些设计版面。
‘贰’ 谁能给我出一两道 web前端笔试题 上机题啥的,呵呵,比较常考的
[面试题] 某企业前端开发面试题
【HTML & CSS】
1. Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
2. 行内元素有哪些?块级元素有哪些?CSS的盒模型?
3. CSS引入的方式有哪些? link和@import的区别是?
4. CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
5. 前端页面有哪三层构成,分别是什么?作用是什么?
6. css的基本语句构成是?
7. 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?
8. 如何居中一个浮动元素?
9. 有没有关注HTML5和CSS3?如有请简单说一些您对它们的了解情况!
10. 你怎么来实现下面这个设计图,主要讲述思路 (效果图省略)
11. 如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片?
12. 你对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?
【Javascript】
1. js是什么,js和html 的开发如何结合?
2. 怎样添加、移除、移动、复制、创建和查找节点
3. 怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别
4. 面向对象编程:b怎么继承a
5. 看看下面alert的结果是什么
view sourceprint?1.function b(x, y, a) {
.arguments[2] = 10;
.alert(a);
}
b(1, 2, 3);
如果函数体改成下面,结果又会是什么?
a = 10;
alert(arguments[2] );
6. 请编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象
var obj = parseQueryString(url);
alert(obj.key0) // 输出0
7. ajax是什么? ajax的交互模型? 同步和异步的区别? 如何解决跨域问题?
8. 什么是闭包?下面这个ul,如何点击每一列的时候alert其index?
<ul id=”test”>
<li>这是第一条</li><li>这是第二条</li><li>这是第三条</li>
</ul>
9. 最近看的一篇Javascript的文章是?
10. 常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?
11.说说YSlow(可以详细一点)
答案在参考资料里面可以找到,答案在参考资料里面可以找到,答案在参考资料里面可以找到
‘叁’ Web前端面试的常见面试题汇总
今天小编要跟大家分享的文章是关于参加Web前端面试的常见面试题汇总。准备参加Web前端面试的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助。1.渐进增强与优雅降级
渐进增强
并不是一种技术,而是一种设计思想。各个浏览器的渲染能力各不相同,要做一个每个人都能看到的网页、感受到的体验都一致的网站几乎不可能。但还是得网站的可访问性,保证用户在任何环境下都能正常访问网页得核心内容或能使用基本功能(避免网页打不开、排版错误等),并为他们提供当前条件下最好的体验,这就是渐进增强得核心思想。
优雅降级也是一种设计思想,为了保证在高版本浏览器中提供最好的体验,碰到低版本浏览器再降级进行兼容处理,使其能正常浏览。
这两种思想的区别在于:
1.渐进增强是向上兼容,优雅降级是向下兼容;
2.渐进增强是从简单到复杂,优雅降级是从复杂到简单;
3.渐进增强关注的是内容(保证核心内容),优雅降级关注的是浏览体验(为了兼容低版本浏览器)
2.DOCTYPE
作用
DTD(DocumentTypeDefinition,文档类型定义)是一系列的语法规则,用来定义XML或(X)HTML
的文档类型。浏览器会使用它来判断文档类型,决定何种协议来解析,以及切换浏览模式。
DOCTYPE是用来声明文档类型和DTD
规范的,一个主要的用途便是文件的合法性验证。如果文档代码不合法,那么浏览器解析时便会出现一些差错。
HTML5的文档类型声明:
HTML4.01Strict(HTML4.01严格模式)的DTD包含所有HTML
元素和属性,但不包括展示性的和弃用的元素(如font),它的文档类型声明:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
标准模式与怪异模式
怪异模式(Quirks
Mode)用于模拟旧浏览器的行为。早期的网站并不会遵循完整的规范,随着浏览器支持越来越多的规范,在那些旧的浏览器中开发的页面在显示时会被破坏。为了向后兼容,浏览器发明了怪异模式,一行错误或无效的
DOCTYPE都会触发怪异模式。
浏览器使用文件开头的DOCTYPE来决定用怪异模式处理或标准模式处理。DOCTYPE
可以确保不同浏览器以相同的方式解析文档,以及执行相同的渲染模式。
怪异模式与标准模式的主要区别:
1.怪异模式的宽度和高度会包含padding和border。标准模式不包含,标准模式下可以通过设置box-sizing:
border-box将标准盒模型转化成怪异模式下的盒模型。
2.怪异模式下,当内容超出容器高度时,会将容器拉伸,而不是溢出。
3.怪异模式下,在表格中的字体样式(如font-size)不会继承。
4.怪异模式下颜色值必须使用十六进制标记法。
3.语义化
HTML5
中的语义化就是让元素、属性或属性值有含义,更准确地标记特定类型的内容。对元素语义化的目的是为了让元素的语义和呈现分离,元素只负责文档内容的结构与含义,而CSS
样式控制内容的呈现,像元素,没有语义但却能将字体变粗,这类元素违背了语义化的目的,将会被废弃。
优点
·使得HTML文档结构清晰、布局合理、主体突出、可读性更强。
·有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
·方便其他设备解析,如盲人阅读器根据语义渲染网页。
·有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐。
语义化标签
·
·footer内容的页脚,通常包含该章节作者、版权数据或者与文档相关的链接等信息;
·article
文档、页面、应用或网站中的独立结构,是可独立分配的、可复用的结构,如在发布中,它可能是论坛帖子、杂志或新闻文章、博客、用户提交的评论、交互式组件,或者其他独立的内容项目;
·nav描述一个含有多个超链接的区域,该区域包含跳转到其他页面或页面内部其他部分的链接列表;
·section表示文档中的一个区域(或节),比如,内容中的一个专题组;
·main定义文档的主要内容,该内容在文档中应当是独一无二的,不包含任何在文档中重复的内容,比如侧边栏,导航栏链接,版权信息,网站
logo,搜索框(搜索框作为文档的主要内容);
·aside
表示一个和其余页面内容几乎无关的部分,被认为是独立于该内容的一部分且可以被单独的拆分出来而不会影响整体。通常表现为侧边栏或嵌入内容。
4.超链接伪类
:link、:visited、:active和:hover的声明顺序是怎样的?
:link表示未访问的链接状态;
:visited表示已访问状态;:active表示激活状态(鼠标按下);:hover表示悬停状态。
推荐顺序是LVHA,即:link:visited:hover:active。理由如下:
·当鼠标悬停在未访问的链接上时,:link和:hover都会命中,如果:hover在:link
之前声明,那么(:hover)就会被覆盖;
·当鼠标悬停在已访问的连接上时,:visited和:hover都会命中,如果:hover在:visited
之前声明,那么(:hover)就会被覆盖;
·当鼠标单击链接时,:active和:hover都会命中,我们大多是想让:hover只在悬停时展示样式,按下鼠标时使用:active
样式,因此:active在:hover之后声明;
·综上,:hover应在:link和:visited之后,在:active之前,因此active在最后。而:link和
:visited两者的顺序无所谓,互不影响。
5.CSS常见的长度单位
CSS中除了px长度单位之外,还有下面几个长度单位:
·pc六分之一英寸,1pc=12pt=1/6*1in=16px;
·pt一磅,72分之一英寸。1pt=1/12_1pc=1/72_1in≈1.33px;
·in一英寸,1in=2.54cm=96px;
·ex在含有“X”字母的字体中,它是该字体的小写字母的高度。对于很多字体来说,1ex≈0.5em;
·em1em等于父级元素的字体大小,2em就是父级元素字体大小的二倍;
·rem当用在根元素()的font-size上面时,它代表了它的初始值;
·ch代表元素所用字体font中“0”这一字形的宽度;
·vh1vh相当于视口高度的1%,100vh就是视口的高度;
·vw1vw相当于视口宽度的1%,100vw就是视口的宽度;
·vmax视口高度vw和宽度vh两者中的最小值
·vmin视口高度vw和宽度vh两种中的最大值;
·%相对于父级元素的大小来确定;
参考:CSS
CSSpercentage[2]
6.事件对象
冒泡与捕获
事件冒泡与捕获是事件处理的两种机制,主要描述当在一个元素上有两个相同类型的事件处理器被激活会发生什么。
在点击子元素时,浏览器运行了两种不同的阶段:捕获阶段和冒泡阶段。捕获阶段的行为:
·浏览器检查元素的最外层祖先,是否在捕获阶段中注册了一个onclick事件处理程序,如果是,则运行它;
·
然后,它移动到中单击元素的下一个祖先元素,并执行相同的操作,然后是单击元素再下一个祖先元素,依此类推,直到到达实际点击的元素;
而冒泡与捕获恰恰相反:
·浏览器检查实际点击的元素是否在冒泡阶段中注册了一个onclick事件处理程序,如果是,则运行它;
·然后它移动到下一个直接的祖先元素,并做同样的事情,然后是下一个,等等,直到它到达元素;
而现代浏览器在默认情况下,所有事件处理程序都在冒泡阶段进行注册。因此上面代码在点击子元素时会先执行子元素绑定的事件,然后向上冒泡,触发父元素绑定的事件。
addEventListener函数的第三个参数是个布尔值。含义:
·当布尔值是false时(这也是默认值),表示向上冒泡触发事件;
·当布尔值是true时,表示向下捕获触发事件;
不能冒泡的事件
有些事件是不会冒泡的。比如:
·blur元素失去焦点时触发,focusout事件也是失去焦点时触发,但可以冒泡;
·focus元素获取焦点时触发;
·mouseenter鼠标移动到元素上时会触发该事件,与之对应的是mouseover事件,但会冒泡;
·mouseleave鼠标离开元素时触发,与之对应的是mouseout,但会冒泡;
事件冒泡可以让我们利用事件委托,尤其是处理大量子元素时,如果给每个子元素都绑定事件,这是不优雅的,可以将事件绑定到父元素上,并让子节点上发生的事件冒泡到父节点上,利用
e.target属性可以获取到当前触发事件的子元素。
事件对象中的方法
·stopPropagation()阻止事件冒泡,当设置后,点击该元素时父元素绑定的事件就不会再触发;
·preventDefault()阻止默认事件的发生;
·stopImmediatePropagation()它用来阻止监听同一事件的其他事件监听器被调用以及阻止事件冒泡,比如给同一个div
元素绑定多个click事件(使用addEventListener方法可以注册多个),当在第二个事件函数中调用
stopImmediatePropagation方法时,点击div元素时,后面注册的click将不会被触发,而且还会阻止事件冒泡;
比如下面的例子,给p绑定多个click事件,在第二个事件函数中调用stopImmediatePropagation,第三个click
事件就不会触发,因为也阻止了冒泡,因此父元素的click事件也不会触发。
paragraph
‘肆’ web前端面试经常问到的面试题有哪些
Web前端经常被问到的面试题及答案
一、HTML+CSS
1.对WEB标准以及W3C的理解与认识
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外
链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维
护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性;
2.xhtml和html有什么区别
HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言
最主要的不同:
XHTML 元素必须被正确地嵌套。
XHTML 元素必须被关闭。
标签名必须用小写字母。
XHTML 文档必须拥有根元素。
3.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
用于声明文档使用那种规范(html/Xhtml)一般为 严格 过度 基于框架的html文档
加入XMl声明可触发,解析方式更改为IE5.5 拥有IE5.5的bug
4.行内元素有哪些?块级元素有哪些?CSS的盒模型?
块级元素:div p h1 h2 h3 h4 form ul
行内元素: a b br i span input select
Css盒模型:内容,border ,margin,padding
5.CSS引入的方式有哪些? link和@import的区别是?
内联 内嵌 外链 导入
区别 :同时加载
前者无兼容性,后者CSS2.1以下浏览器不支持
Link 支持使用javascript改变样式,后者不可
6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
标签选择符 类选择符 id选择符
继承不如指定 Id>class>标签选择
后者优先级高
7.前端页面有哪三层构成,分别是什么?作用是什么?
结构层 Html 表示层 CSS 行为层 js
8.css的基本语句构成是?
选择器{属性1:值1;属性2:值2;……}
9.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?
Ie(Ie内核) 火狐(Gecko) 谷歌(webkit) opear(Presto)
二、Javascript
1.javascript的typeof返回哪些数据类型
Object number function boolean underfind
2.例举3种强制类型转换和2种隐式类型转换?
强制(parseInt,parseFloat,number)
隐式(== – ===)
3.split() join() 的区别
前者是切割成数组的形式,后者是将数组转换成字符串
4.数组方法pop() push() unshift() shift()
Push()尾部添加 pop()尾部删除
Unshift()头部添加 shift()头部删除
5.事件绑定和普通事件有什么区别
6.IE和DOM事件流的区别
1.执行顺序不一样、
2.参数不一样
3.事件加不加on
4.this指向问题
7.IE和标准下有哪些兼容性的写法
Var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target
8.ajax请求的时候get 和post方式的区别
一个在url后面 一个放在虚拟载体里面
有大小限制
安全问题
应用不同 一个是论坛等只需要请求的,一个是类似修改密码的
9.call和apply的区别
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
10.ajax请求时,如何解释json数据
使用eval parse 鉴于安全性考虑 使用parse更靠谱
11.b继承a的方法
12.写一个获取非行间样式的函数
function getStyle(obj,attr,value)
{
if(!value)
{
if(obj.currentStyle)
{
return obj.currentStyle(attr)
}
else
{
obj.getComputedStyle(attr,false)
}
}
else
{
obj.style[attr]=value
}
}
‘伍’ Web前端面试之css高频面试题
今天小编要跟大家分享的文章是关于web前端面试之css高频面试题。想要参加web前端面试的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助。
1.什么是BFC机制
BFC(BlockFormattingContext),块级格式化上下文,是一个独立的渲染区域,让处于BFC内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。
·___シ⑻跫(以下任意一条)
§_loat的值不为none
§_verflow的值不为visible
§_isplay的值为table-cell、tabble-caption和inline-block之一
§_osition的值不为static或则releative中的任何一个
在IE下,Layout,可通过zoom:1_シ
·___FC布局与普通文档流布局区别:
BFC布局规则:
1._浮动的元素会被父级计算高度(父级元素触发了BFC)
2._非浮动元素不会覆盖浮动元素的位置(非浮动元素触发了BFC)
3._margin不会传递给父级(父级触发BFC)
4._属于同一个BFC的两个相邻元素上下margin会重叠
5._普通文档流布局:浮动的元素是不会被父级计算高度
6._非浮动元素会覆盖浮动元素的位置
7._margin会传递给父级元素
8._两个相邻元素上下的margin会重叠
·___⒅械挠τ
§_柚_argin重叠
§_梢园《亍宄诓扛《(清除浮动的原理是两个div都位于同一个BFC区域之中)
§_允视α嚼覆季
§_梢宰柚乖乇桓《馗哺
2.CSS3中新增的选择器以及属性
这里只是列出来,具体的使用,请查看我的关于css3新增选择器与属性文章
·___粜匝≡衿
td{border:1pxsolid#ccc;padding:5px;margin:auto;}
td>p{text-align:left;}
td>pspan{text-align:center;display:block;}
属性选择器
含义描述
E[att^="val"]
属性att的值以"val"开头的元素
E[att$="val"]
属性att的值以"val"结尾的元素
E[att*="val"]
属性att的值包含"val"字符串的元素
·___峁刮崩嘌≡衿
td{border:1pxsolid#ccc;padding:5px;margin:auto;}
td>p{text-align:left;}
td>pspan{text-align:center;display:block;}
选择器
含义描述
E:root
匹配文档的根元素,对于HTML文档,就是HTML元素
E:nth-child(n)
匹配其父元素的第n个子元素,第一个编号为1
E:nth-last-child(n)
匹配其父元素的倒数第n个子元素,第一个编号为1
E:nth-of-type(n)
与:nth-child()作用类似,但是仅匹配使用同种标签的元素
E:nth-last-of-type(n)
与:nth-last-child()作用类似,但是仅匹配使用同种标签的元素
E:last-child
匹配父元素的最后一个子元素,等同于:nth-last-child(1)
E:first-of-type
匹配父元素下使用同种标签的第一个子元素,等同于:nth-of-type(1)
E:last-of-type
匹配父元素下使用同种标签的最后一个子元素,等同于:nth-last-of-type(1)
E:only-child
匹配父元素下仅有的一个子元素,等同于:first-child:last-child或:nth-child(1):nth-last-child(1)
E:only-of-type
匹配父元素下使用同种标签的唯一一个子元素,等同于:first-of-type:last-of-type或:nth-of-type(1):nth-last-of-type(1)
E:empty
匹配一个不包含任何子元素的元素,注意,文本节点也被看作子元素
·___ss3新增属性
td{border:1pxsolid#ccc;padding:5px;margin:auto;}
td>p{text-align:left;}
td>pspan{text-align:center;display:block;}
属性
含义描述
兼容
transition
设置过渡效果
transform
变换效果(移动、缩放、转动、拉长或拉伸)
animation
动画效果
box-shadow
阴影效果
FF3.5,Safari4,Chrome3
text-shadow
文本阴影
FF3.5,Opera10,Safari4,Chrome3
border-colors
为边框设置多种颜色
FF3+
boder-image
图片边框
FF3.5,Safari4,Chrome3
text-overflow
文本截断
IE6+,Safari4,Chrome3,Opera10
word-wrap
自动换行
IE6+,FF3.5,Safari4,Chrome3
border-radius
圆角边框
FF3+,Safari4,Chrome3
opacity
不透明度
all
box-sizing
控制盒模型的组成模式
FF3+,Opera10,Safari4,Chrome3
outline
外边框
FF3+,safari4,chrome3,opera10
background-size
不指定背景图片的尺寸
safari4,chrome3,opera10
background-origin
指定背景图片从哪里开始显示
safari4,chrome3,FF3+
background-clip
指定背景图片从什么位置开始裁切
safari4,chrome3
rgba
基于r,g,b三个颜色通道来设置颜色值,通过a来设置透明度
safari4,chrome3,FF3,opera10
3.居中布局
·___骄又
1._行内元素:_ext-align:center
2._块级元素:_argin:0auto
3._绝对定位和移动:_bsolute+transform
4._绝对定位和负边距:_bsolute+margin
5._flex布局:_lex+
justify-content:center
·___怪本又
1._子元素为单行文本:_ine-height:height
2._absolute+transform
3._flex+align-items:center
4._table:_isplay:table-cell;vertical-align:
middle
5._利用position和top和负margin
·___酱怪本又_HAPE*MERGEFORMAT
1.已知元素宽高:绝对定位+margin:auto:
_div{
___idth:200px;
___eight:200px;
___ackground:
green;
___osition:absolute;
___eft:0;
___op:0;
___ottom:0;
___ight:0;
___argin:
auto;
_
2.已知元素宽高:_远ㄎ+负margin
_div{
___idth:200px;
___eight:200px;
___ackground:
green;
___osition:absolute;
___eft:0;
___op:0;
___ottom:0;
___ight:0;
___argin:
auto;
_
3.absolute+transform
_div{
__width:200px;
__height:200px;
__background:
green;
__position:absolute;
__left:50%;_/*定位父级的50%*/
__top:50%;
__transform:translate(-50%,-50%);/*自己的50%*/
_}
4.flex+justify-content
+align-items
.box{
_height:600px;
_display:flex;
_justify-content:center;//子元素水平居中
_align-items:center;__//子元素垂直居中
__/*aa只要三句话就可以实现不定宽高水平垂直居中。*/
__
.box>div{
__ackground:
green;
__idth:200px;
__eight:200px;
_
4.清除浮动有哪些方法,各有什么优缺点
·___褂_lear属性的空元素
在浮动元素后使用一个空元素如
‘陆’ web前端面试十大总结,不了解一下吗
在互联网时代,浏览器几乎主宰着一切,而前端开发人员决定着浏览器的内容展现形式和信息的提供,是不可或缺的一部分。前端开发实际上具有很明显的时代特征,它在很大程度上决定着大众的信息摄入,以及用户读取信息的有效方式。那么今天小编为大家总结了一些web前端的面试题,希望对大家有帮助哦!
一:字体高亮函数
题目:请你完成highlight函数,可以把模版字符串中的插入内容替换掉,并且插入文档以后显示红色。例如:
constyourName='ScriptOJ'
constmyName='Jerry'
document.body.innerHTML=highlight`Hello,${yourName}.Iam
${myName}.`
上面例子的页面显示如下:
0_1498033735172_upload-2abd65b1-1e98-46ba-b46f-df4188a036a5
请你完成highlight函数的编写。
答案:
css:
.highlight{
color:red;
}
js:
//考察的是Taggedtemplateliterals的使用
//
#/en-US/docs/Web/JavaScript/Reference/Template_literals
consthighlight=(strings,...args)=>{
returnstrings.rece((str,cur,i)=>{
return`${str}${cur}${args[i]?`class="highlight">${args[i]}`:''}`
},'')
}
二:数组去重
题目:编写一个函数unique(arr),返回一个去除数组内重复的元素的数组。例如:
unique([0,1,2,2,3,3,4])//=>[0,1,2,3,4]
unique([0,1,Ƈ',Ƈ',2])//=>[0,1,Ƈ',2]
答案:
constunique=(arr)=>[...newSet(arr)]
三:解析字串
题目:完成一个extractStr函数,可以把一个字符串中所有的:到.的子串解析出来并且存放到一个数组当中,例如:
extractStr('Mynameis:Jerry.Myageis:12.')//=>['Jerry',']
注意,:和.之间不包含:和.。也即是说,如果::abc..,则返回['abc']。
(本题来源:《JavaScriptCookbook》)
答案:·
constextractStr=(str)=>{
constret=str.match(/:([^:.])*?./g)||[]
returnret.map((subStr)=>subStr.replace(/[:.]/g,''))
}
四:spacify题目:
请你给字符串都添加上原型方法spacify,可以让一个字符串的每个字母都多出一个空格的间隔:"ScriptOJ".spacify()//=>
"ScriptO
J"(本题来源:#/interview-questions)答案:String.prototype.spacify
=function(){
returnthis.split('').join('')
}
五:safeGet
题目:有时候我们需要访问一个对象较深的层次,但是如果这个对象某个属性不存在的话就会报错,例如:
vardata={a:{b:{c:'ScriptOJ'}}}
data.a.b.c//=>scriptoj
data.a.b.c.d//=>报错,代码停止执行
console.log('ScriptOJ')//=>不会被执行
请你完成一个safeGet函数,可以安全的获取无限多层次的数据,一旦数据不存在不会报错,会返回undefined,例如:
vardata={a:{b:{c:'ScriptOJ'}}}
safeGet(data,'a.b.c')//=>scriptoj
safeGet(data,'a.b.c.d')//=>返回undefined
safeGet(data,'a.b.c.d.e.f.g')//=>返回undefined
console.log('ScriptOJ')//=>打印ScriptOJ
答案:
constsafeGet=(o,path)=>{
try{
returnpath.split('.').rece((o,k)=>o[k],o)
}catch(e){
returnvoid666
}
}
六:判断两个矩形是否重叠
题目:用一个对象的数据来表示一个矩形的位置和大小:
{
x:100,
y:100,
width:150,
height:250
}
它表示一个宽为150高为250的矩形在页面上的(100,100)的位置。
请你完成一个函数isOverlap可以接受两个矩形作为参数,判断这两个矩形在页面上是否重叠。例如:
constrect1={x:100,y:100,width:100,height:100}
constrect2={x:150,y:150,width:100,height:100}
isOverlap(rect1,rect2)//=>true
答案:
//原理:#/find-two-rectangles-overlap/
constisOverlap=(rect1,rect2)=>{
constl1={x:rect1.x,y:rect1.y}
constr1={x:rect1.x+rect1.width,y:rect1.y+rect1.height}
constl2={x:rect2.x,y:rect2.y}
constr2={x:rect2.x+rect2.width,y:rect2.y+rect2.height}
if(
l1.x>r2.x||
l2.x>r1.x||
l1.y>r2.y||
l2.y>r1.y
)returnfalse
returntrue
}
七:按下标插入
题目:现在有一个数组存放字符串数据:
['item1','item2','item3','item4','item5']
有另外一个数组存放一组对象:
[
{content:'section1',index:0},
{content:'section2',index:2}
]
它每个对象表示的是会往原来的数组的index坐标插入content数据(index不会重复):
01234
item1itme2item3item4item5
^^
||
section1section2
最后结果是:['section1','item1','item2','section2','item3','item4',
'item5']
请你完成injectSections函数,可以达到上述的功能:
injectSections(
['item1','item2','item3','item4','item5'],
[
{content:'section1',index:0},
{content:'section2',index:2}
]
)//=>['section1','item1','item2','section2','item3','item4',
'item5']
答案:
constinjectSections=(items,sections)=>{
/*需要插入坐标对应数据存放到map里面*/
constsectionsMap=newMap(sections.map(({index,content})=>[index,
content]))
/*新建一个数组,然后往里面push原来数组的数据*/
returnitems.rece((ret,item,index)=>{
/*push的时候先检查map里面有没有,有的话先pushmap里面的数据*/
if(sectionsMap.has(index))ret.push(sectionsMap.get(index))
/*再push原来的数据*/
ret.push(item)
returnret
},[])
}
八:数组拍平(二)
题目:编写一个JavaScriptgenerator函数,接受一个仅包含数字的多维数组
,返回一个迭代器,可以遍历得到它拍平以后的结果。例如:
constnumbers=flatten2([1,[[2],3,4],5])
numbers.next().value//=>1
numbers.next().value//=>2
numbers.next().value//=>3
numbers.next().value//=>4
numbers.next().value//=>5
答案:
function*flatten2(arr){
for(leti=0;i
constitem=arr[i]
/*yield*的使用可以大大简化程序编写*/
Array.isArray(item)?yield*flatten2(item):yielditem;
}
}
/*用flatten2来完成flatten也是很方便的*/
//constflatten=(arr)=>[...flatten2(arr)]
九:判断两个Set是否相同
题目:完成isSameSet函数,它接受了两个Set对象作为参数,请你返回true/false来表明这两个set
的内容是否完全一致,例如:
consta={}
constb=1
constc='ScriptOJ'
constset1=newSet([a,b,c])
constset2=newSet([a,c,b])
isSameSet(set1,set2)//=>true
答案:
//codefrom#/js-example.html
/*这道题不能简单地使用sort,使用sort并不靠谱。因为Set里面的内容可能有很多种类
*字符串、对象、数字,不同类型之间是不可对比的,所以排序结果并不会一致
*
*最好的方式是按照数学上集合相等的定义:
*A=B当且仅当A是B的子集并且B是A的子集。
*
*这种判断方式还可以用在对象、map等其他数据类型的判断当中。
*/
constisSameSet=(s1,s2)=>{
/*获取一个集合所有的值,判断另外一个集合是否全部包含该这些值*/
constisSame=(a,b)=>{
constvalues=[...a]
for(letvalofvalues){
/*及时跳出循环,可以降低算法复杂度*/
if(!b.has(val))returnfalse
}
returntrue
}
/*a包含b,b包含a,那么两个集合相同*/
returnisSame(s1,s2)&&isSame(s2,s1)
}
/*By陈小俊*/
//constisSameSet=(set1,set2)=>
//[...set1].every((o)=>set2.has(o))&&
//[...set2].every((o)=>set1.has(o))
十:记忆化斐波那契函数(Memoization)
题目:斐波那契数列指的是类似于以下的数列:
1,1,2,3,5,8,13,....
也就是,第n个数由数列的前两个相加而来:f(n)=f(n-1)+f(n-2)
请你完成fibonacci函数,接受n作为参数,可以获取数列中第n个数,例如:
fibonacci(1)//=>1
fibonacci(2)//=>1
fibonacci(3)//=>2
...
测试程序会从按顺序依次获取斐波那契数列中的数,请注意程序不要超时,也不要添加额外的全局变量。
本题来源:《JavaScript语言精髓》
答案:
constfibonacci=((memo=[0,1])=>{
constfib=(n)=>{
letresult=memo[n]
if(typeofresult!=="number"){
result=fib(n-1)+fib(n-2)
memo[n]=result
}
returnresult
}
returnfib
})()
最后就是反应能力,临场出现意外什么的了,这就看你自己了,万一自己一不留神说错话了,大神给你指出来,请记得谢谢一定要谦虚!在这里小编也希望每一位web培训班毕业的学员都能顺利找到称心的工作!
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容
在互联网时代,浏览器几乎主宰着一切,而前端开发人员决定着浏览器的内容展现形式和信息的提供,是不可或缺的一部分。前端开发实际上具有很明显的时代特征,它在很大程度上决定着大众的信息摄入,以及用户读取信息的有效方式。那么今天小编为大家总结了一些web前端的面试题,希望对大家有帮助哦!
一:字体高亮函数
题目:请你完成highlight函数,可以把模版字符串中的插入内容替换掉,并且插入文档以后显示红色。例如:
constyourName='ScriptOJ'
constmyName='Jerry'
document.body.innerHTML=highlight`Hello,${yourName}.Iam
${myName}.`
上面例子的页面显示如下:
0_1498033735172_upload-2abd65b1-1e98-46ba-b46f-df4188a036a5
请你完成highlight函数的编写。
答案:
css:
.highlight{
color:red;
}
js:
//考察的是Taggedtemplateliterals的使用
//
#/en-US/docs/Web/JavaScript/Reference/Template_literals
consthighlight=(strings,...args)=>{
returnstrings.rece((str,cur,i)=>{
return`${str}${cur}${args[i]?`class="highlight">${args[i]}`:''}`
},'')
}
二:数组去重
题目:编写一个函数unique(arr),返回一个去除数组内重复的元素的数组。例如:
unique([0,1,2,2,3,3,4])//=>[0,1,2,3,4]
unique([0,1,Ƈ',Ƈ',2])//=>[0,1,Ƈ',2]
答案:
constunique=(arr)=>[...newSet(arr)]
三:解析字串
题目:完成一个extractStr函数,可以把一个字符串中所有的:到.的子串解析出来并且存放到一个数组当中,例如:
extractStr('Mynameis:Jerry.Myageis:12.')//=>['Jerry',']
注意,:和.之间不包含:和.。也即是说,如果::abc..,则返回['abc']。
(本题来源:《JavaScriptCookbook》)
答案:·
constextractStr=(str)=>{
constret=str.match(/:([^:.])*?./g)||[]
returnret.map((subStr)=>subStr.replace(/[:.]/g,''))
}
四:spacify题目:
请你给字符串都添加上原型方法spacify,可以让一个字符串的每个字母
‘柒’ Web前端岗位面试题有哪些
前端面试题汇总,基本上会有四大类问题,具体如下:
一、HTML
1、Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
2、HTML5 为什么只需要写 <!DOCTYPE HTML>?
3、行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
4、页面导入样式时,使用link和@import有什么区别?
5、介绍一下你对浏览器内核的理解?
6、常见的浏览器内核有哪些?
7、html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
8、简述一下你对HTML语义化的理解?
9、HTML5的离线储存怎么使用,工作原理能不能解释一下?
10、浏览器是怎么对HTML5的离线储存资源进行管理和加载的呢?
11、请描述一下 cookies,sessionStorage 和 localStorage 的区别?
12、iframe有那些缺点?
13、Label的作用是什么?是怎么用的?(加 for 或 包裹)
14、HTML5的form如何关闭自动完成功能?
15、如何实现浏览器内多个标签页之间的通信? (阿里)
16、webSocket如何兼容低浏览器?(阿里)
17、页面可见性(Page Visibility)API 可以有哪些用途?
18、如何在页面上实现一个圆形的可点击区域?
19、实现不使用 border 画出1px高的线,在不同浏览器的Quirksmode和CSSCompat模式下都能保持同一效果。
20、网页验证码是干嘛的,是为了解决什么安全问题?
21、tite与h1的区别、b与strong的区别、i与em的区别?
二、css
1、介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?
2、CSS选择符有哪些?哪些属性可以继承?
3、CSS优先级算法如何计算?
4、CSS3新增伪类有那些?
5、如何居中div?如何居中一个浮动元素?如何让绝对定位的div居中?
6、display有哪些值?说明他们的作用。
7、position的值relative和absolute定位原点是?
8、CSS3有哪些新特性?
9、请解释一下CSS3的Flexbox(弹性盒布局模型),以及适用场景?
10、用纯CSS创建一个三角形的原理是什么?
11、一个满屏 品 字布局 如何设计?
三、常见兼容性问题?
1、li与li之间有看不见的空白间隔是什么原因引起的?有什么解决办法?
2、经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧 ?
3、为什么要初始化CSS样式。
4、absolute的containing block计算方式跟正常流有什么不同?
5、CSS里的visibility属性有个collapse属性值是干嘛用的?在不同浏览器下以后什么区别?
6、position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?
7、对BFC规范(块级格式化上下文:block formatting context)的理解?
8、CSS权重优先级是如何计算的?
9、请解释一下为什么会出现浮动和什么时候需要清除浮动?清除浮动的方式
10、移动端的布局用过媒体查询吗?
11、使用 CSS 预处理器吗?喜欢那个?
12、CSS优化、提高性能的方法有哪些?
13、浏览器是怎样解析CSS选择器的?
14、在网页中的应该使用奇数还是偶数的字体?为什么呢?
15、margin和padding分别适合什么场景使用?
16、抽离样式模块怎么写,说出思路,有无实践经验?[阿里航旅的面试题]
17、元素竖向的百分比设定是相对于容器的高度吗?
18、全屏滚动的原理是什么?用到了CSS的那些属性?
19、什么是响应式设计?响应式设计的基本原理是什么?如何兼容低版本的IE?
20、视差滚动效果,如何给每页做不同的动画?(回到顶部,向下滑动要再次出现,和只出现一次分别怎么做?)
21、::before 和 :after中双冒号和单冒号 有什么区别?解释一下这2个伪元素的作用。
22、如何修改chrome记住密码后自动填充表单的黄色背景 ?
23、你对line-height是如何理解的?
24、设置元素浮动后,该元素的display值是多少?(自动变成display:block)
25、怎么让Chrome支持小于12px 的文字?
26、让页面里的字体变清晰,变细用CSS怎么做?(-webkit-font-smoothing: antialiased;)
27、font-style属性可以让它赋值为“oblique” oblique是什么意思?
28、position:fixed;在android下无效怎么处理?
29、如果需要手动写动画,你认为最小时间间隔是多久,为什么?(阿里)
30、display:inline-block 什么时候会显示间隙?(携程)
31、overflow: scroll时不能平滑滚动的问题怎么处理?
32、有一个高度自适应的div,里面有两个div,一个高度100px,希望另一个填满剩下的高度。
33、png、jpg、gif 这些图片格式解释一下,分别什么时候用。有没有了解过webp?
34、什么是Cookie 隔离?(或者说:请求资源的时候不要让它带cookie怎么做)
35、style标签写在body后与body前有什么区别?
四、JavaScript
1、介绍JavaScript的基本数据类型。
2、说说写JavaScript的基本规范?
3、JavaScript原型,原型链 ? 有什么特点?
4、JavaScript有几种类型的值?(堆:原始数据类型和 栈:引用数据类型),你能画一下他们的内存图吗?
5、Javascript如何实现继承?
6、Javascript创建对象的几种方式?
7、Javascript作用链域?
8、谈谈This对象的理解。
9、eval是做什么的?
10、什么是window对象? 什么是document对象?
11、null,undefined的区别?
12、写一个通用的事件侦听器函数(机试题)。
13、[“1”, “2”, “3”].map(parseInt) 答案是多少?
14、关于事件,IE与火狐的事件机制有什么区别? 如何阻止冒泡?
15、什么是闭包(closure),为什么要用它?
16、javascript 代码中的”use strict”;是什么意思 ? 使用它区别是什么?
17、如何判断一个对象是否属于某个类?
18、new操作符具体干了什么呢?
19、用原生JavaScript的实现过什么功能吗?
20、Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
21、对JSON的了解?
22、[].forEach.call($$("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16) }) 能解释一下这段代码的意思吗?
23、js延迟加载的方式有哪些?
24、Ajax 是什么? 如何创建一个Ajax?
25、同步和异步的区别?
26、如何解决跨域问题?
27、页面编码和被请求的资源编码如果不一致如何处理?
28、模块化开发怎么做?
29、AMD(Moles/Asynchronous-Definition)、CMD(Common MoleDefinition)规范区别?
30、requireJS的核心原理是什么?(如何动态加载的?如何避免多次加载的?如何 缓存的?)
31、让你自己设计实现一个requireJS,你会怎么做?
32、谈一谈你对ECMAScript6的了解?
33、ECMAScript6 怎么写class么,为什么会出现class这种东西?
34、异步加载的方式有哪些?
35、documen.write和 innerHTML的区别?
36、DOM操作——怎样添加、移除、移动、复制、创建和查找节点?
37、.call() 和 .apply() 的含义和区别?
38、数组和对象有哪些原生方法,列举一下?
39、JS 怎么实现一个类。怎么实例化这个类
40、JavaScript中的作用域与变量声明提升?
41、如何编写高性能的Javascript?
42、那些操作会造成内存泄漏?
43、JQuery的源码看过吗?能不能简单概况一下它的实现原理?
44、jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this?
45、jquery中如何将数组转化为json字符串,然后再转化回来?
46、jQuery 的属性拷贝(extend)的实现原理是什么,如何实现深拷贝?
47、jquery.extend 与 jquery.fn.extend的区别?
48、jQuery 的队列是如何实现的?队列可以用在哪些地方?
49、谈一下Jquery中的bind(),live(),delegate(),on()的区别?
50、JQuery一个对象可以同时绑定多个事件,这是如何实现的?
51、是否知道自定义事件。jQuery里的fire函数是什么意思,什么时候用?
52、jQuery 是通过哪个方法和 Sizzle 选择器结合的?(jQuery.fn.find()进入Sizzle)
53、针对 jQuery性能的优化方法?
54、Jquery与jQuery UI有啥区别?
55、JQuery的源码看过吗?能不能简单说一下它的实现原理?
56、jquery 中如何将数组转化为json字符串,然后再转化回来?
57、jQuery和Zepto的区别?各自的使用场景?
58、针对 jQuery 的优化方法?
59、Zepto的点透问题如何解决?
60、jQueryUI如何自定义组件?
61、需求:实现一个页面操作不会整页刷新的网站,并且能在浏览器前进、后退时正确响应。给出你的技术实现方案?
62、如何判断当前脚本运行在浏览器还是node环境中?(阿里)
63、移动端最小触控区域是多大?
64、jQuery 的 slideUp动画 ,如果目标元素是被外部事件驱动, 当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行,该如何处理呢?
65、把 Script 标签 放在页面的最底部的body封闭之前 和封闭之后有什么区别?浏览器会如何解析它们?
66、移动端的点击事件的有延迟,时间是多久,为什么会有? 怎么解决这个延时?(click 有 300ms 延迟,为了实现safari的双击事件的设计,浏览器要知道你是不是要双击操作。)
67、知道各种JS框架(Angular, Backbone, Ember, React, Meteor, Knockout…)么? 能讲出他们各自的优点和缺点么?
68、Underscore 对哪些 JS 原生对象进行了扩展以及提供了哪些好用的函数方法?
69、解释JavaScript中的作用域与变量声明提升?
70、那些操作会造成内存泄漏?
71、JQuery一个对象可以同时绑定多个事件,这是如何实现的?
72、Node.js的适用场景?
(如果会用node)知道route, middleware, cluster, nodemon, pm2, server-side rendering么?
73、解释一下 Backbone 的 MVC 实现方式?
74、什么是“前端路由”?什么时候适合使用“前端路由”? “前端路由”有哪些优点和缺点?
75、知道什么是webkit么? 知道怎么用浏览器的各种工具来调试和debug代码么?
76、如何测试前端代码么? 知道BDD, TDD, Unit Test么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
77、前端templating(Mustache, underscore, handlebars)是干嘛的, 怎么用?
78、简述一下 Handlebars 的基本用法?
79、简述一下 Handlerbars 的对模板的基本处理流程, 如何编译的?如何缓存的?
80、用js实现千位分隔符?(来源:前端农民工,提示:正则+replace)
检测浏览器版本版本有哪些方式?
81、我们给一个dom同时绑定两个点击事件,一个用捕获,一个用冒泡,你来说下会执行几次事件,然后会先执行冒泡还是捕获
‘捌’ 求web前端开发笔试题
腾讯WEB前端开发三轮面试经历及面试题
【一面】~=110分钟 2013/04/24 11:20 星期三
进门静坐30分钟做题。
填空题+大题+问答题
>>填空题
何时接触电脑 何时接触前端
运算符 字符串处理 延时 display position XMLHttpRequest 正则
Jquery绑定事件 cookie
>>大题
BOM浏览器信息
浏览器兼容性举例
闭包作用与举例
新闻ul列表,插入3个,获取index
全文单词首字母大写
ajax过程
>>逻辑题
任何时间分针和时针夹角
文章单词(字母)频率出现最高
30分钟等到车概率是70%,那10分钟呢?
一个班学舞蹈的有75%,学唱歌的有85%,问同时学习舞蹈和唱歌的最多多少,最少多少?
两个很大数的加法运算
>>我的提问
为什么不问我框架
你觉得我哪些方面还有欠缺,觉得我如何
如果有望进入二面,什么时候可以得到通知
>>完了之后一起下楼时
我说其他几家公司的问题和腾讯的有比较大的区别,
区别是XXXXXX
然后他问我家在哪里
然后说深圳还是比较适合我
我说但愿还能见到你
他笑了笑
【二面】~=40分钟 2013/04/25 14:00 星期四
面试时间是两点钟,两点过几分进入了面试官所在的包间。
进去之前楼下签到的hr要我把一摞草稿纸带到621房间的面试官,进门给他之后,他说那把大椅子是坏的,
要我往后坐一点(防止向前倾倒)。
开始的时候他没怎么说话,埋头看着我的简历,于是我主动开始扯了几句关于自己的介绍。也不知他听到没
有,等我说完,马上又说:好吧,你先自我介绍下。(一脸黑线...)
期间问了我为什么不打算考研,为什么选择前端,我做的最自豪的事情是什么。
叽哩吧啦一阵子后,他要我说说我的人生规划和职业规划(颇为蛋疼,这些问题不是应该HR面才会问的么
),我顺着他的来,也比较xx的说了一番。
反向代理
输入网址到出现页面的过程(IP解析,DNS解析等)
页面流量
堆栈
接着,问了我-1在计算机中怎么表示,如何判断数组A是否为数组B的子集。
然后是一个概率问题,假设长江以北有80W人,长江以南有20W人,A向B打电话算一个电话,如果打了
10W个电话,那么长江以北打向长江以南的电话有多少个?
没问太多问题,都是些基础的,最后他问我有什么问题。
>>我问了问
为什么不问我前端的问题
如果通过二面,什么时候可以给我回复
对我有什么学习上的建议
面试官留言:“一把刀有刀锋和刀背,刀锋要磨锐利,但是刀背的锻炼也要加强。”
【HR面】~=30分钟 2013/04/27 20:00 星期六
进去先看上几位面试官对我的评价,安静时刻我跟她扯淡了几句,缓和了下尴尬的气氛。
然后她瞄了瞄我的简历,接着就问我考不考研,很明显我的答案是不。然后她又问为什么~
接着让我说说自己最满意的一件事和最不满意的一件事,自己最大的缺点和最大的优点
扯了半天之后(此处略去20分钟扯淡),又开始看我的简历,问了我项目中遇到哪些困难,我说了一个还未
解决的bug,她反问为什么不解决,然后叽哩吧啦了一阵子。
最后问我有没有什么问题。按惯例,问了问最早什么时候给通知,然后问了问期间如果有不明白问题可以通过
什么方式联系她之类的。
整个过程还算顺利。
HR告诉我五一之后可以查询录取状态,求人品吧~
顺便把在搜狐和网易的面试笔试经历也说说吧~
>>搜狐
搜狐的太久了,记不太清楚了
那次只为攒经验,是俺平生第一次参加公司面试。不过收获还是有的~
时间太久了,也记不清了,没有提交笔试题,但是还是要我去面试了。
问他有几轮面试,告诉我因时间匆忙,只给一轮技术面,如果满意直接HR。
大概问题记不太清。
虽然感觉答的还不错,但是最后还是被刷了。
【技术面】~=60分钟
-问了下我在团队学了些什么。
-然后就是很多“你是怎么理解XX”。。
-XX中有 闭包,原型链, 框架结构等
>>网易
今天4.27,好像是3.26参加的面试,时间太久,也记得不是很清楚了。
我没有把任何面试官当做正经的面试官,男的就是我的学长,女的就是我的学姐,仅此而已,所以每次交流都是平和的心态。
学长们(每次面我的都是个男的)时不时露出笑意,现场气氛没有那么紧张。
【一面】 ~=30分钟
闭包
IE6趋势
框架
【二面】 ~=90分钟
框架比较 jQuery prototype YUI
框架特点
css兼容性 IE6 bug
seaJS AMD CMD kissy
JS原型链 闭包
JS基础细节
不让谈网络框架
【HR面】~=25分钟
自我介绍
身边人的评价
最不满意的一件事情
规划
为什么不想考研
有什么困难
薪资待遇
何时通知
‘玖’ web前端经典面试题
为大家带来一些web前端的面试题,希望可以帮助到大家啊。
1.css3有哪些新特性?
选择器、圆角、动画、多重背景、背景的宽度高度flex布局响应式布局边框阴影文本阴影
2.响应式布局怎么理解的,响应式布局是通过什么实现?
根据不同的屏幕加载不同的css样式
1).移动端适配
2).一套代码适配pc端移动端多个
3.js创建对象有哪几种方式?
1).自面量
2).newObject
3).构造函数
4.es6有哪些新特性?
1).letconst
2).模板字符串
3).方法的简写属性的简写
4).三点运算符
5).解构赋值
6).箭头函数
7).setmap
8).class类
9).模块化
5.箭头函数和普通的方法有什么区别?
1).箭头函数省略了function
2).箭头函数里面的this指向上下文(可以改变this指向)
6.gulp可以干什么
gulp自动化构建工具。
压缩代码合并代码压缩图片自动处理前缀创建web服务处理sass
7.清除浮动有哪些方法。
1).浮动元素的父元素overflow:hiddenoverflow:auto
2).浮动元素的最后面加一个空div给他clear:both
3).after伪类清除浮动
.clearfix:after{
content:"";
dislpay:block;
height:0px;
clear:both;
}
4)、给父元素设置高度。
8.行内元素块元素的区别?
1)块元素默认独占一行,行内元素默认情况不独占一行,行内元素的的宽度就是内容的宽度
2)默认情况块元素可以设置宽度高度默认情况行内元素不可以设置宽度高度
3)默认可以margin上下左右,行内默认只能margin左右不能上下。
9.网站加载速度优化?
1).图片不失真尽量小
2).多个背景图片合并
3).代码压缩代码合并
4).js写到页面最底部
5).懒加载
6).不要有冗余代码
7).服务器带宽款一些
8).服务器固态硬盘
9).开启缓存
10.以前写代码什么情况会成出现乱码怎么解决?
解决乱码文件保存的编码和设置的编码必须保持一致
11.以前如何测试调试移动端页面
1).首先在浏览器自带的调试工具模拟器里面调试
2).真机的内置浏览器调试
3).真机上面的UC里面调试
4).真机上的微信里面调试。
‘拾’ 阿里巴巴web前端开发面试题
第一部分:用CSS实现布局
让我们一起来做一个页面
首先,我们需要一个布局。
请使用CSS控制3个div,实现如下图的布局。
第二部分:用javascript优化布局
由于我们的用户群喜欢放大看页面
于是我们给上一题的布局做一次优化。
当鼠标略过某个区块的时候,该区块会放大25%,
并且其他的区块仍然固定不动。
提示:
也许,我们其他的布局也会用到这个放大的效果哦。
可以使用任何开源代码,包括曾经你自己写的。
关键字:
javascript、封装、复用
第三部分:处理紧急情况
好了,我们的页面完成了。
于是我们将页面发布上网。
突然,晴天霹雳,页面无法访问了,这时候,你会怎么做?
第一题个人实现:
___
______body,_iv{margin:0;padding:0;}
______.fl{float:_eft;_isplay:_nline;}
______.bc_C{background-color:#CCC;}
______.h120{height:120px;}
______.h250{height:250px;}
______.w120{width:120px;}
______.w220{width:220px;}
______.t130{top:130px;}
______.pa{position:_bsolute;}
______.mr10{margin-right:10px;}
______.mb10{margin-bottom:10px;}
___
___
______