当前位置:首页 » 网页前端 » web前端逻辑题
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web前端逻辑题

发布时间: 2022-08-31 21:28:17

‘壹’ 麻烦告知这道web前端题怎么做

这就是购物车的功能

<!DOCTYPEhtml>
<html>
<head>
<metacharset="UTF-8">
<title>购物车功能实现</title>
<styletype="text/css">
*{
padding:0;
margin:0;
box-sizing:border-box;
}

.fl{float:left;}

.fr{float:right;}

.clear{clear:both;}

.main{
width:1200px;
margin:0auto;
}
.quanxuan,.quanxuan1{margin-top:20px;}
.checkbox{
width:16px;
height:16px;
border:1pxsolid#e5e5e5;
}
.checked{
background:url(images/i.png)no-repeat;
background-size:100%;
}
.rece{
margin-left:20px;
cursor:pointer;
display:block;
text-align:center;
width:20px;
height:20px;
background-color:#C1E2B3;
}
.add{
cursor:pointer;
text-align:center;
width:20px;
height:20px;
background-color:#C1E2B3;
}
.number{
width:50px;
height:20px;
padding-left:10px;
border:1pxsolid#e5e5e5;
background-color:#fff;
}
.sum{margin-left:100px;}
</style>
</head>
<body>
<divclass="main">
<divclass="quanxuan">
<pclass="checkboxfl"></p>
<pclass="fl">全选</p>
<divclass="clear"></div>
</div>
<divclass="all">
<divclass="quanxuan1">
<pclass="checkboxfl"></p>
<divclass="fl">
<divclass="fl">
<spanclass="recefl">-</span>
<spanclass="flnumber">1</span>
<spanclass="addfl">+</span>
<divclass="clear"></div>
</div>
<spanclass="flsum">300</span>
<divclass="clear"></div>
</div>
<divclass="clear"></div>
</div>
<divclass="quanxuan1">
<pclass="checkboxfl"></p>
<divclass="fl">
<divclass="fl">
<spanclass="recefl">-</span>
<spanclass="flnumber">1</span>
<spanclass="addfl">+</span>
<divclass="clear"></div>
</div>
<spanclass="flsum">300</span>
<divclass="clear"></div>
</div>
<divclass="clear"></div>
</div>
<divclass="quanxuan1">
<pclass="checkboxfl"></p>
<divclass="fl">
<divclass="fl">
<spanclass="recefl">-</span>
<spanclass="flnumber">1</span>
<spanclass="addfl">+</span>
<divclass="clear"></div>
</div>
<spanclass="flsum">300</span>
<divclass="clear"></div>
</div>
<divclass="clear"></div>
</div>
<divclass="quanxuan1">
<pclass="checkboxfl"></p>
<divclass="fl">
<divclass="fl">
<spanclass="recefl">-</span>
<spanclass="flnumber">1</span>
<spanclass="addfl">+</span>
<divclass="clear"></div>
</div>
<spanclass="flsum">300</span>
<divclass="clear"></div>
</div>
<divclass="clear"></div>
</div>
</div>
<!--计算总价-->
<spanclass="zong">0</span>
</div>
<scriptsrc="js/jquery-2.2.1.min.js"type="text/javascript"charset="utf-8"></script>
<scripttype="text/javascript"src="js/shop.js"></script>
</body>

</html>
$(function(){

//单选
$(".quanxuan1.checkbox").click(function(){
if($(this).hasClass("checked")){
$(this).removeClass("checked");
$(".quanxuan").find(".checkbox").removeClass("checked");
$(this).siblings("div").find(".sum").removeClass("yong");
vararr1=[];
varlastMoney=0;
$(".yong").each(function(){
arr1.push(parseInt($(this).text()))
})
for(vari=0;i<arr1.length;i++){
lastMoney+=arr1[i]
}
$(".zong").text(lastMoney);
}else{
$(this).addClass("checked");
$(this).siblings("div").find(".sum").addClass("yong");
vararr1=[];
varlastMoney=0;
$(".yong").each(function(){
arr1.push(parseInt($(this).text()))
})
for(vari=0;i<arr1.length;i++){
lastMoney+=arr1[i]
}
$(".zong").text(lastMoney);
}
})
//全选功能
$(".quanxuan.checkbox").click(function(){
if($(this).hasClass("checked")){
$(this).removeClass("checked");
$(".sum").removeClass("yong");
$(".quanxuan.checkbox").removeClass("checked");
$(".quanxuan1.checkbox").removeClass("checked");
vararr1=[];
varlastMoney=0;
$(".yong").each(function(){
arr1.push(parseInt($(this).text()))
})
for(vari=0;i<arr1.length;i++){
lastMoney+=arr1[i]
}
$(".zong").text(lastMoney);
}else{
$(this).addClass("checked");
$(".sum").addClass("yong");
$(".quanxuan.checkbox").addClass("checked");
$(".quanxuan1.checkbox").addClass("checked");
vararr1=[];
varlastMoney=0;
$(".yong").each(function(){
arr1.push(parseInt($(this).text()))
})
for(vari=0;i<arr1.length;i++){
lastMoney+=arr1[i]
}
$(".zong").text(lastMoney);
}
})


//增加数量
$(".add").click(function(){
what=$(this);
varnumadd=parseInt(what.prev().text());
varsum1=parseInt(what.parents("div").siblings(".sum").text());
varnum=parseInt(numadd)+1;
what.prev().text(num);
varsumd=sum1/numadd;
varsum2=sumd*num;
vara=what.parents("div").siblings(".sum").text(sum2);
vararr1=[];
varlastMoney=0;
$(".yong").each(function(){
arr1.push(parseInt($(this).text()))
})
for(vari=0;i<arr1.length;i++){
lastMoney+=arr1[i]
}
$(".zong").text(lastMoney);
})

//减少数量
$(".rece").click(function(){
what=$(this);
varnumadd=parseInt(what.next().text());
varsum1=parseInt(what.parents("div").siblings(".sum").text());
if(what.next().text()==1){
returnfalse;
}else{
varnum=parseInt(numadd)-1;
what.next().text(num);
varsumd=sum1/numadd;
varsum2=sumd*num;
vara=what.parents("div").siblings(".sum").text(sum2);
vararr1=[];
varlastMoney=0;
$(".yong").each(function(){
arr1.push(parseInt($(this).text()))
})
for(vari=0;i<arr1.length;i++){
lastMoney+=arr1[i]
}
$(".zong").text(lastMoney);

}
})
})

自己下载一个jQuery文件

‘贰’ 如何成功的面试WEB前端开发

近来几个月,一直在努力寻找前端战友,未果,一路的招聘经历下来,心生不少感慨, 一直都很小心翼翼的,怕错失了高人,又更加怕失误把关不够招到不合格的同学进来公司,对公司对项目造成某些影响。
面试前端工程师对我来说是一件非常有意思的事,因为面试过程很大程度上也是自我提升的过程。无论大公司还是小公司,之所以在如何招聘到真正有能力的 前端工程师方面会遇到同样的问题,就是因为负责招聘的那些人不知道自己公司需要什么样的人,结果问问题时也问不到点子上。经过这几年在行业里的摸索,我总 结出了自己的一套很有效的面试前端工程的方法。
有的应聘者说我不好对付,但留给他们这样的印象也并非我所愿。我觉得之所以他们说我不好对付,主要是因为我问他们问题时问得太细了。以前我曾专门写过一些 东西,告诉应聘者怎么才能通过我的面试(Surviving an interview with me)以及优秀的前面工程师应该具备什么样的素质(What makes a good front end engineer?),而我的面试可以说完全是按照那两篇文章的标准进行的。我不会问一些特别偏门的问题,也不认为出几道逻辑题就能考出人的真实水平。我 唯一的想法就是确定你能否胜任我们要招的这个职位。为此,我需要简单地考察如下几个方面。
基本知识
我们生活在互联网时代,你想知道的任何事情几乎都能在15分钟内找到相关信息。可是,能找到信息并不等于你会使用它。我认为所有前端工程师至少都应 该掌握某些基本的知识,才能有效地完成自己的工作。如果一遇到问题,就停下工作上网四处搜索解决方案,怎么可能保证按期完成工作呢?听听,还有谁在说“我 不知道,但我可以上网搜到。”请这些同学把手举起来,让大家认识一下(immediately raises a flag for me.)。下面我列出一些基本的知识点,这些都是我认为一名前端工程师(无论工作年头长短)在没有任何外来帮助的情况应该知道的。
DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
DOM操作——怎样添加、移除、移动、复制、创建和查找节点。
事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。
XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。
严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。
盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。
块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。
浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。
JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。
重申一下,上述这些知识点都应该是你应该“想都不用想”的东西。我一开始问的所有问题都是想摸清你对所有这些领域知识的掌握程度。虽然上面列出的这些知识点并没有面面俱到,但我觉得你至少应该掌握这些,才有可能跟我坐到一间办公室里来。
少量提问
我非常赞同面试者问的问题越少越好。反复问应聘者各种问题既不公平,也很无聊。我在任何一次面试中,通常只问三个大问题,但每个问题又会涉及我所能想到的多个方面。回答每个大问题一般要经过几个步骤,这样我就可以在每个步骤中穿插着问一些小问题。比如说:

现在有一个正显示着Yahoo!股票价格的页面。页面上有一个按钮,你可以单击它来刷新价格,但不会重新加载页面。请你描述一下实现这个功能的过程,假设服务器会负责准备好正确的股票价格数据。
这个问题牵扯到一组我想要考察的基本知识点:DOM结构、DOM操作、事件处理、XHR和JSON。如果我要求你对换一种处理股票价格的方式,或者 让你在页面中显示其他信息,就可以把更多的知识点包括进来。对于经验比较丰富应聘者,我也可以自如地扩展要考察的知识范围,最简单像JOSN与XML的区 别、安全问题、容量问题,等等。
我还希望应聘者给出的任何解决方案中都不要使用库。我想看到最原生态的代码,你就当页面中没有包含任何库。你说你对哪个库了解多少多少,但我不能把 关于库的知识作为评判能力的因素,因为库是会随时间变化的。我需要的是真正理解库背后的机制,特别是能够徒手写出一个自己的库的人。
解决问题
做为一名前端工程师,最值得高兴的事莫过于解决同一个问题会有很多种不同的方法,而你要做的就是找出最合适的方法来。我在提问的时候,经常会在应聘 者解释完一种方法后问他们还有没有第二种方法。此时我会跟他们说,假设你的这个方法由于种种原因被否决了,那么你还能不能给出另一种方法。这样做可以达到 两个目的。
首先,可以测试出他们是否在毫无意义地复述书本中的东西。不能不承认,某些人确实有过目不忘的天赋,听他们在那里滔滔不绝地讲,你会觉得他们什么都 明白。可是,只要一跟这些人谈到怎么查找方案无效的原因,以及能否拿出一个新方案来,他们往往就傻眼了。这时候,如果我听到“我不明白这个方案为什么不够 好”之类的反问,心里立刻就明白我的问题已经超出了他们的能力范围,而他们只是想拿自己死记硬背的结论来蒙混过关。
其次,可以测试出他们已经掌握的(还是那句话,“想都不用想”)浏览器技术知识。如果他们对浏览器平台的核心知识有较好的理解,想出解决同一问题的不同方案根本没有那么难。
对一名前端工程师来说,这绝对是最重要的能力。前端工程师在工作中遇到本该如此却并未如此的难题(说你啦,IE6),应该说是一件很平常的事。一个方案无效就无计可施的人,做不了前端工程师。
考核应聘者解决问题能力的另一层原因,与我的个人喜好有关。在搞清楚应聘者知道什么不知道什么之后,我就会想着问一个他们知识领域之外的问题。这样 做的目的,就是想看看他们怎样运用已有的知识解决新问题。在解决问题的每一步,我也准备了一些提示,以防有人会卡壳打艮(在我面前15分钟一言不发,对我 评价这个人毫无帮助)。我真正感兴趣的,是他们能够从上一步前进到下一步。我希望看到一个人就在我眼前学到新知识。
注意:所有问题都与浏览器技术相关。我不相信出几道抽象的逻辑题,就能够考出某人解决Web技术问题的能力。在我看来,这无异于让素描大师画肖像(或者让刘翔跟博尔特同场竞技),没有意义,也得不到任何有价值的信息。
有激情
要成为一名优秀的前端工程师,最重要的莫过于对自己做的事要有激情。我们技能都不是从学校中或者从研讨会上学来的,因此前端工程师必须具备自学能 力。浏览器技术的变化可谓日新月异,所以也只有不断提升自己的技能才做得到与时俱进。我虽然不能强迫谁必须多看博客、不断学习,但想应聘前端工程师的人恐 怕还是必须这么做的。
你怎么知道谁对这种工作有没有激情?实际上非常简单。我只问一个简单的问题:“目前你对什么Web技术最感兴趣?”这个问题永远不会过期,而且也几 乎不可能出错……除非你答不上来。就眼下来说,我希望你对这个问题给出的技术中包括WebSocket、HTML、WebGL、客户端数据库,等等。只有 对Web开发充满激情的人,才会坚持不懈地学习新知识、掌握新技能;这些人才是我真正想要的。当然,我会让他们详细解释自己提到的技术,以保证他们不是随 口说了几个时髦的新词汇。
最后一点
计算机科学或者Web设计方面的知识当然也有用,但那都是基本知识之外的东西。只要基本知识在那儿了,一切就都有了基础,想扩充知识面也不难。可 是,如果等到正式上班以后,还得从头学习基本技能,那种难度是不可同日而语的。另外,高级前端工程师与一般工程师相比,肯定需要掌握更多的技能。而面试几 乎没有经验大学毕业生,同样也会有一套完全不同的程序。我在这篇文章里列出来的都是一些最基本的东西。
对于那些还没有多少面试经验的人,我总是喜欢告诉他们,面试完了只要问自己一个问题就行:你想以后跟这个人在一起共事吗?如果不管为什么,回答是不,那就是不。

‘叁’ 求web前端面试题库及答案

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)

10.写出几种IE6 BUG的解决方法
1.双边距BUG float引起的 使用display
2.3像素问题 使用float引起的 使用dislpay:inline -3px
3.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active
4.Ie z-index问题 给父级添加position:relative
5.Png 透明 使用js代码 改
6.Min-height 最小高度 !Important 解决’
7.select 在ie6下遮盖 使用iframe嵌套
8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)

‘肆’ 求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前端面试经常问到的面试题有哪些

  • 1、 列举web性能优化?

  • 1)
    减少http请求次数。合并文件、利用css sprite把零散的图片整合到一张图上。

  • 2)
    减少DNS查找。

  • 3)
    减少从定向。

  • 4)
    响应时间。使用AJAX进行缓存,减少http请求。

  • 5)
    延迟载入组件.

  • 6)
    预载入组件。

  • 7)
    减少节点的数量。

  • 8)
    切分组件到多个域。

  • 9)
    最小化iframe。

  • 10)
    杜绝http404错误。

  • 2、 介绍一下XMLHttpRequest对象的常用方式和属性?

  • 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

‘陆’ 谁有web前端的面试题给传一份

HTML+CSS

1.对WEB标准以及W3C的理解与认识?
(1)web标准规范要求,书写标签必须闭合、标签小写、不乱嵌套,可提高搜索机器人对网页内容的搜索几率;
(2)建议使用外链css和js脚本,从而达到结构与行为、结构与表现的分离,提高页面的渲染速度,能更快地显示页面的内容;
(3)样式与标签的分离,更合理的语义化标签,使内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件, 从而降低维护成本、改版更方便;
(4)不需要变动页面内容,便可提供打印版本而不需要复制内容,提高网站易用性;
遵循w3c制定的web标准,能够使用户浏览者更方便的阅读,使网页开发者之间更好的交流。

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

‘柒’ 有哪些经典的 Web 前端或者 JavaScript 面试笔试题

、定项选择题 (每题3共30)
1. 声明象给加name属性show显示其name值代码确( D )
A. var obj = [name:"zhangsan",show:function(){alert(name);}];
B. var obj = {name:zhangsan,show:alert(this.name)};
C. var obj = {name:zhangsan,show:function(){alert(name);}};
D. var obj = {name:zhangsan,show:function(){alert(this.name);}};
2. 关于Array数组象说确( CD )
A. 数组数据排序用sort函数排序效非预期给sort函数加排序函数参数
B. reverse用于数组数据倒序排列
C. 向数组位置加新元素用pop
D. unshift用于向数组删除第元素
3. 要页面状态栏显示已经选该文本框列JavaScript语句确( A )
A. window.status=已经选该文本框
B. document.status=已经选该文本框
C. window.screen=已经选该文本框
D. document.screen=已经选该文本框
4. 点击页面按钮使打新窗口加载网页JavaScript代码行( AD )
A. button value=new
onclick=open(‘new.html’, ‘_blank’)/>
B. button value=new
onclick=window.location=’new.html’;/>
C. button value=new
onclick=location.assign(‘new.html’);/>
D. _blankaction=new.html>
submit value=new/>

5. 使用JavaScript向网页输
hello
代码行( BD )
A. text/javascript>
document.write(
hello
);

B. text/javascript>
document.write(
hello
);

C. text/javascript>

hello

D.

text/javascript>
document.write(hello);

6. 析面代码:

text/javascript>
function writeIt (value) { document.myfm.first_text.value=value;}

#ffffff>
myfm>
text name=first_text>
text name=second_text>

说确( CD )
A. 页面第二文本框输入内容鼠标离第二文本框第文本框内容变
B. 页面第文本框输入内容鼠标离第文本框第二文本框复制第文本框内容
C. 页面第二文本框输入内容鼠标离第二文本框第文本框复制第二文本框内容
D. 页面第文本框输入内容鼠标离第文本框第二文本框内容变
7. 面JavaScript语句( D )实现检索前页面表单元素所文本框并全部清空
A. for(vari=0;i< form1.elements.length;i++) {
if(form1.elements.type==text)
form1.elements.value=";}
B. for(vari=0;i
if(forms[0].elements.type==text)
forms[0].elements.value=";
}
C. if(document.form.elements.type==text)
form.elements.value=";
D. for(vari=0;i
for(var j=0;j
if(document.forms.elements[j].type==text)
document.forms.elements[j].value=";
}
}
8. 表单(form1)文本框元素(fname)用于输入电号码格式:010-82668155要求前3位010紧接-面8位数字要求提交表单根据述条件验证该文本框输入内容效性列语句( A )能确实现功能
A. var str= form1.fname.value;
if(str.substr(0,4)!=010-|| str.substr(4).length!=8 ||
isNaN(parseFloat(str.substr(4))))
alert(效电号码);
B. var str= form1.fname.value;
if(str.substr(0,4)!=010- && str.substr(4).length!=8 &&
isNaN(parseFloat(str.substr(4))))
alert(效电号码);
C. var str= form1.fname.value;
if(str.substr(0,3)!=010-|| str.substr(3).length!=8 ||
isNaN(parseFloat(str.substr(3))))
alert(效电号码);
D. var str= form1.fname.value;
if(str.substr(0,4)!=010-&& str.substr(4).length!=8 &&
!isNaN(parseFloat(str.substr(4))))
alert(效电号码);
9. 关于则表达式声明6位数字邮编代码确( C )
A. var reg = /\d6/;
B. var reg = \d{6}\;
C. var reg = /\d{6}/;
D. var reg = new RegExp(\d{6});
10. 关于JavaScriptxml处理说明确( BCD )
A. Xml种扩展标记语言格式更规范作未html替代
B. Xml般用于传输存储数据html补充两者目同
C. JavaScript解析处理xml数据浏览器同其做同
D. IE浏览器处理xml首先需要创建ActiveXObject象
二、问答题
1. 列举浏览器象模型BOM用至少4象并列举window象用至少5 (10)
象:Window document location screen history navigator
:Alert() confirm() prompt() open() close()
2. 简述列举文档象模型DOMdocument用查找访问节点并做简单说明 (10)
Document.getElementById 根据元素id查找元素
Document.getElementByName 根据元素name查找元素
Document.getElementTagName 根据指定元素名查找元素
三、程序题
1、补充按钮事件函数确认用户否退前页面确认关闭窗口; (10)

text/javascript >
function closeWin(){
//处添加代码
if(confirm(确定要退)){
window.close();
}
}

buttonvalue=关闭窗口onclick=closeWin()/>

2、写简单描述html标签(带属性始标签结束标签)则表达式并字符串html标签除掉(15)
var str = div

面段落

;
//
text/javascript>
varreg = /<\/?\w+\/?>/gi;
varstr = div

面段落

;
alert(str.replace(reg,"));

3、完foo()函数内容要求能够弹框提示前选第几单选框(10)

Content-Type content=text/html;charset=utf-8″ />

text/javascript >
function foo() {
//处添加代码
var rdo =document.form1.radioGroup;
for(var i =0 ;i
if(rdo.checked){
alert(您选择第+(i+1)+单选框);
}
}
}

form1″ >
radio name=radioGroup/>
radio name=radioGroup/>
radio name=radioGroup/>
radio name=radioGroup/>
submit/>

4、完函数showImg()要求能够态根据拉列表选项变化更新图片显示 (15)

text/javascript >
function showImg (oSel) {
//处添加代码
var str = oSel.value;
document.getElementById(pic).src= str+.jpg;
}

picsrc=img1.jpgwidth=200″ height=200″ />

sel>
img1>城市
img2>都市早报
img3>青山绿水

‘捌’ 参加Web前端面试一定看的Web前端面试题库(一)

今天小编要跟大家分享的文章是关于参加Web前端面试一定看的Web前端面试题库。正在学习web前端知识准备参加web前端面试的小伙伴们来和小编一起看一看吧。


HTML(5)和CSS3方面


01.前端与后端数据交互的格式有哪些,为什么大部分现在都用json而不用xml?


答:XML:知了堂3岁


JSON:{name:”知了堂”,age:3}


JSON书写方便节省字节,更轻量,前后台都有直接解析JSON的方法(JSON.stringfity/parse)使用方便。


02.Flex布局熟悉吗,说几个常用的属性。


答:这个几乎每天都在用,还是挺熟悉的。


__
display:flex


___align-items多个


__
align-content:单个


___justify-content


___justify-items


___flex-direction


__
flex-wrap:


__
flex-basic:初始盒子宽度_lex


_
_lex-grow:增长因子2004*40=1601,1,1,21/5*40_lex


___flex-shrink
:缩减因子20060*4=240


03.说一下CSS盒模型。


答:CSS的盒模型包含了以下几个内容margin,padding,border,content。


在计算盒子宽高的时候,IE和Chrome会有一些区别,IE算到border,Chrome的宽度只包含content区域,因此CSS3提供了box-sizing这个属性来修改。


04.CSS常用选择器,选择器权重问题。


答:*(has,not,target,root。。。。)通配符,ID,class,attr属性,element,子代(>+~),


___UI状态伪类选择器(hover,active,link,seceted..,checked),


___结构性伪类选择器(nth-child,fist-child,last,nth-of-type...before,after....)


___!important
>style>id>class>elemnet>伪类和属性


05.请用5种方式实现元素垂直居中。


答:


(1)flex

(2)Tranform

(3)定位+margin负值(知道子节点宽高)

(4)定位+margin:auto

(5)JS动态计算top、left值


06.什么是BFC?垂直margin重叠是为什么?怎么解决这个问题?


答:


概念:BFC全称BlockFormatting
Context,中文意思为块级格式上下文。


通俗的来说:BFC是一个独立的布局环境,我们可以理解为一个箱子(实际上是看不见摸不着的),箱子内部的元素无论如何翻江倒海,都不会影响到外部。转换为BFC的理解则是:BFC中的元素的布局是不受外界的影响(我们往往利用这个特性来消除浮动元素对其非浮动的兄弟元素和其子元素带来的影响。比如清除浮动)并且在一个BFC中,块元素与行元素都会垂直的沿着其父元素的边框排列。


如何触发BFC


1.浮动元素,float除none以外的值


2.position的值不为static或者relative


3.display不为none


4.overflow除了visible以外的值


BFC的应用


1.解决浮动塌陷问题


2.自适应两栏布局(我们还可以运用BFC可以阻止元素被浮动元素覆盖的特性来实现自适应两栏布局。方法:给没有浮动的元素加overflow:hidden。)


3.解决设置margin值重叠问题。


总结:


BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。


07.什么是浮动,有什么作用,有何副作用,以及如何清除浮动?


答:浮动是使用给节点添加float属性,最初的设计是用来实现文字环绕的。


添加了float的节点脱离文档流,同时触发节点的BFC,让节点往一个方向靠,并排成一行。


当一个父节点的子节点全部浮动,就会造成父节点高度塌陷,


解决的办法首先是可以给父节点主动添加高度值,再者利用只要有一个子节点不浮动原理来添加一个不浮动的节点(通常使用伪元素before,after),再者还可以触发父节点的bfc,常用的定位,或者overflow:hidden。


08.CSS里面有哪些相对单位?都是相对什么的?


答:REM,EM,VW,VH等


__
REM:相对于根节点html的font-size


__
EM:父节点的font-size


__W:视口的宽度为100VW,相对于把视口分为100份


__
VH:视口高度为100VH,同理


__陨系ノ欢伎梢栽谝贫俗鲆趁媸逝洌ǔJ褂_EM和VW


09.fixed是相对于谁定位的?如果加上transform会出现问题吗?


答:fixed定位相对于浏览器视口来定位的。


添加上transform以后,fixed定位会失效。如果fixed元素的祖先有transform属性,则fixed元素会相对与这个祖先计算,而不是视口。


10.为什么不推荐用style内联元素?内联元素有什么缺点?(css文件可以缓存)


答:首先是style是节点的属性,不能被缓存;代码的可读性和可维护性相对弱一些,特别是多人协作开发的时候。但是如果一个页面的style样式足够少的时候,可以使用style元素,因为一次请求最多携带14K的数据,如果足够小,还可以节约一次请求。


11.简单描述http与https协议,以及为什么要三次握手?什么是长链接?


答:http与https都是目前主流传输协议。


目前http协议已经发展到2.0阶段,支持长链接,断点续传,cache缓存策略,多路复用,服务器推送等。


https相对于http更安全,增加了证书SSL加密,端口是433。


客户端SYN=1,Seq
=x,服务端接受到后,服务端就知道了,有一个客户端要链接我,然后服务器就会开启一个TCPsocket的端口,然后返回数据给前端也是SYN=1,SEQ=Y,ACK=x+1,客户端接受到后,在发一个seq,和ACK+1.主要是为了防止开启无用的链接,或者网络延迟丢包,服务器无法确定到底客户端有没有收到消息。


在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。


Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。


为何需要长链接?


长链接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。


12.http常见状态码有哪些?301和302的区别是什么?304是指什么?


答:404:找不到资源;


500:服务器内部错误;


200:请求成功,并返回数据;


301:永久重定向;


302:_偈币贫墒褂迷_RI;


304:资源未修改,可使用缓存;


400:请求语法错误(一般为参数错误);


403:没有权限访问。。。等


13.浏览器页面渲染的流程是什么(输入url后页面发生什么)?


答:首先dns解析IP,建立tcp链接下载资源,构建dom树,当遇到link标签,会下载并执行解析css(不会阻止dom树的构建)当遇到script标签的是,dom树构建会暂停,下载并执行完js才会继续(defer(下载延迟执行),async(异步下载并执行))然后再布局和绘制(layout,paint)最后再render。


14.什么是reflow与repain?哪些操作会触发reflow,如何避免?


答:reflow:回流,当元素的尺寸、结构或触发某些属性时,浏览器会重新渲染页面,称为回流。


__repain:重绘,当元素的样式(布局不发生)发生改变的时候。


以下常见操作都会触发:


浏览器窗口大小改变


元素尺寸、位置、内容发生改变


元素字体大小变化


添加或者删除可见的dom元素


激活CSS伪类(例如::hover)等


尽量减少DOM操作。


15.HTML5常用的API有哪些?你用过哪些?


答:video、audio,获取dom的方式(queryselector),websocket


Canvas,svg,requestAnimationFrame,Geolocation,stroage,notification,OrientationAPI用于检测手机的摆放方向等


16.请列举出几个常见的浏览器兼容性问题?


答:现在市面上IE678基本已经停止使用了,所以尽量不要说这方面的兼容性。


1、不同浏览器的默认margin和padding不一致


2、图片的默认间距不一致


3、获取视口的宽高window.innerheight/width


4、CSS3的动画,过渡,渐变,flex也有


5、Canvas,SVG


6、IE9以下不能的opacity,使用filter:alpha(opacity=50);


7、event.offsetX/Y


8、绑定事件IE9才支持


17.什么是浏览器缓存(知道什么是强缓存和协商缓存)?


答:当浏览器访问过后的资源,会被浏览器缓存的本地,当下次在访问页面的时候,如果没有过期,直接读取缓存,加快浏览器的加载效率。


http缓存机制:


1、Expires:通过设置最大缓存时间,当时间超过了就去服务器下载,


2、http1.1,cache-control:max-age=time,当time过期后,检测etag带上etag往服务器发请求,如果etag没变,直接告诉浏览器读本地缓存,如果没有etag就会检测Last-Modified,判断如果上一次更改的时候,距离本次访问时间比较久,说明文件没有发生改变,返回304。


强缓存就是当前访问时间还在设置的最大时间范围内。


协商缓存就是时间过了,通过检查etag或者last-modifed来使用缓存的机制。


18.说一下浏览器垃圾回收机制


答:老:标记清除算法,GC会检测当前对象有没有被变量所引用,如果没有就回收。


新:Scavenge,把内存空间分为两部分,分别为From空间和To空间。当一个空间满了以后,会把空间中活动对象转移到另外一个空间,这样互换。


以上就是小编今天为大家分享的关于参加Web前端面试一定看的Web前端面试题库的文章,希望本篇文章能够对正准备参加web前端面试的小伙伴们有所帮助,想要了解web前端知识记得关注北大青鸟web培训官网,最后祝愿小伙伴们工作顺利!


‘玖’ web前端 基础 操作题

<!DOCTYPEhtml>
<html>
<head>
<metacharset="UTF-8">
<title>第一题</title>
<style>
html,body{width:100%;height:100%;}
body{position:relative;margin:0;}
button{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;width:100px;height:40px;color:#FFF;font-size:16px;font-family:"微软雅黑";border-radius:8px;background-color:#f49610;}
</style>
</head>
<body>
<formaction="">
<buttononclick="alert('你点我了~~')">点我</button>
</form>
</body>
</html>

第一题如上(保存文件为.html形式)

---------------------------------------------------------------------------

第二题如下(html部分保存文件为.html形式,JS部分保存为.js文件。两个文件放在同一个文件夹下,因为我的src路径是这样写的,你可以改)

<!DOCTYPEhtml>
<html>
<head>
<metacharset="UTF-8">
<title>第二题</title>
<scriptsrc="pulsate.js"></script>
<style>
html,body{width:100%;height:100%;}
body{position:relative;margin:0;}
button{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;width:100px;height:40px;color:#FFF;font-size:16px;font-family:"微软雅黑";border-radius:8px;background-color:#f49610;}
</style>
</head>
<body>
<formaction="">
<button>点我</button>
</form>
</body>
</html>

下面是第二题的,JS部分:

window.onload=function(){
varbtn=document.getElementsByTagName("button")[0];

btn.onclick=function(){
alert("哎呀,你又点我了~");
}
}

加油~