2024年最全常见前端开发面试题,达内培训web前端开发

最后

喜欢的话别忘了关注、点赞哦~

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端校招面试题精编解析大全

  • 5、你的页面是否对爬虫容易理解非常重要,因为爬虫很大程度上会忽略用于表现的标记,而只注重语义标记。
  • 6、便于团队开发和维护。
Doctype文档声明的严格模式和混杂模式,如何触发这两种模式,区分它们有何意义?

1、如何触发两种模式

加入xml头部声明,可以触发IE浏览器的Quirks mode,触发之后,浏览器解析方式就和IE5.5一样,拥有IE5.5一样的bug和其他问题,行为(Javascript)也是如此。

2、IE6的触发:在XHTML的DOCTYPE前加入XML声明

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

3、IE7的触发:在XML声明和XHTML的DOCTYPE之间,加入HTML注释

<?xml version="1.0" encoding="utf-8"?>
<!-- ... and keep IE7 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

4、IE6和IE7都可以触发的:在HTML4.01的DOCTYPE文档头部,加入HTML注释

<!-- quirks mode -->  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

5、在页面顶部加 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,将触发"怪异模式"

6、没有使用DTD声明或者使用HTML4以下(不包括HTML4)的DTD声明时,基本上所有的浏览器都是使用quirks mode呈现

谈谈以前端角度出发做好SEO需要考虑什么?
  • 1、了解搜索引擎如何抓取网页和如何索引网页。
  • 2、Meta标签优化。
  • 3、如何选取关键词并在网页中放置关键词。
  • 4、了解主要的搜索引擎。
  • 5、主要的互联网目录
  • 6、按点击付费的搜索引擎。
  • 7、搜索引擎登录。
  • 8、链接交换和链接广泛度(Link Popularity)。
  • 9、标签的合理使用。
我们知道可以以外链的方式引入CSS文件,请谈谈外链引入CSS有哪些方式,这些方式的性能有区别吗?

CSS的引入方式最常用的有三种:

  • 第一:在head部分加入
<link rel="stylesheet" type="text/css" href="my.css"/>

, 引入外部的CSS文件。

  • 第二:在head部分加入
<style type="text/css"> 
div{margin: 0;padding: 0;border:1px red solid;} 
</style>
  • 第三:直接在页面的标签里加 <div style="border:1px red solid;">
CSS Sprite是什么,谈谈这个技术的优缺点?

CSS sprites在国内很多人叫css精灵,是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到 中去,减少对服务器的请求次数,提高访问速度。

1、优点:

  • (1)利用CSS Sprites能很好地减少了网页的http请求,从而大大的提高了页面的性能,这也是CSS Sprite的优点,也是其被广泛传播和应用的主要原因。
  • (2)解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了,不需要对每一个小元素命名,从而提高了网页的制作效率。
  • (3)换风格方便,只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变。维护起来也很方便。

2、缺点:

  • (1)在图片合并的时候,你要把多张图片有序的合理的合并成一张图片,还要留好足够的空间,防止板块内显示不必要的背景。这些还好,最痛苦的是在宽屏,高分辨率的屏幕下的自适应页面,你的图片如果不够宽,很容易将背景断裂。
  • (2)CSS Sprites在开发的时候比较麻烦,你要通过photoshop或其他工具测量计算每一个背景单元的精确位是针线活,没什么难度,但是很繁琐。
  • (3)CSS Sprites在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的图片,无需改的好不要动,这样避免改动更多的css,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字加了,还要改动css。
以CSS3标准定义一个webkit内核浏览器识别的圆角(尺寸随意)
-moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;
行内元素有哪些?块级元素有哪些?CSS的盒模型?
  • 行内元素有:a b span I em img input select strong
  • 级元素有:div ul ol li dl dt dd h1 h2 h3 h4 p
  • 盒模型:margin border padding width
前端页面有哪三层构成,分别是什么?作用是什么?

网页分成三个层次,即:结构层、表示层、行为层。

  • 1、网页的结构层(structurallayer)由HTML 或XHTML 之类的标记语言负责创建。标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出这些标签不包含任何关于如何显示有关内容的信息。例如,P标签表达了这样一种语义:“这是一个文本段。”
  • 2、网页的表示层(presentationlayer)由CSS 负责创建。CSS对"如何显示有关内容"的问题做出了回答。
  • 3、网页的行为层(behaviorlayer)负责回答"内容应该如何对事件做出反应"这一问题。这是Javascript 语言和DOM 主宰的领域。
html中form里action方法的get和post有什么区别?
  • 1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。
  • 2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用"?“连接,而各个变量之间使用”&"连接。Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
  • 3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
  • 4、Get传输的数据量小,这主要是因为受URL长度限制。而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。
  • 5、Get限制Form表单的数据集的值必须为ASCII字符。而Post支持整个ISO10646字符集。
  • 6、Get是Form的默认方法。
html元素的id跟class什么区别

id和class是网页中两个通用属性,他们协同工作使整个页面丰富多彩,当我们为一个元素定义样式时,二者都可用,但有区别?

  • 1、在css样式表中书写时,id选择符前缀应加"#“,class选择符前缀应加”."
  • 2、id属性在一个页面中书写时只能使用一次,而class可以反复使用
  • 3、id作为元素标签用于区分不同结构和内容,而class作为一个样式,可以应用到任何结构和内容当中去
  • 4、布局上的一般原则:id先确定结构和内容再为它定义样式。而class正好相反,是先定义样式,然后在页面中根据不同需求把样式应用到不同结构和内容上
  • 5、目前浏览器都允许同一个页面出现多个相同属性值的id,一般情况能正常显示,不过当javascript通过id来控制元素时就会出错
  • 6、在实际应用中,class常被用到文字版块和页面修饰上,而id多被用在宏伟布局和设计包含块,或包含框的样式。
Ajax是什么?

Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一个功能强大的新技术。Ajax包括:

  • 1、XHTML和CSS
  • 2、使用文档对象模型(Document Object Model)作动态显示和交互
  • 3、使用XML和XSLT做数据交互和操作
  • 4、使用XMLHttpRequest进行异步数据接收
  • 5、使用JavaScript将它们绑定在一起
你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?
  • 1、DOCTYPE 影响 CSS 处理
  • 2、FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width
  • 3、FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式
  • 4、div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
  • 5、在mozilla firefox和IE中的BOX模型解释不一致导致相差2px, 解决方法:  div{margin:30px!important;margin:28px;}  注意这两个margin的顺序一定不能写反,!important这个属性IE不能识别,但别的浏览器可以识别。
html5 离线存储

Html5的一个重要特性就是离线存储,所谓的离线存储就是将一些资源文件保存在本地,这样后续的页面重新加载将使用本地资源文件,在离线情况下可以继续访问web应用,同时通过一定的手法(更新相关文件或者使用相关API),可以更新、删除离线存储等操作。

Html5的离线存储使用一个manifest文件来标明哪些文件是需要被存储的,使用如 <html manifest='offline.manifest'> 来引入一个manifest文件,这个文件的路径可以是相对的,也可以是绝对的,如果你的web应用很多,而且希望能集中管理manifest文件,那么静态文件服务器是个不错的选择。

iframe的优缺点?

1、缺点:

在网页中使用框架结构最大的弊病是搜索引擎的"蜘蛛"程序无法解读这种页面。当"蜘蛛"程序遇到由数个框架组成的网页时,它们只看到框架而无法找到链 接,因此它们会以为该网站是个死站点,并且很快转身离去。对一个网站来说这无异于一场灾难。如果你想销售产品,你需要客户;如想得到客户,你首先要让人们 访问你的网站,而要做到这一点,你就非求助于搜索引擎不可。你花费了大量的时间、精力和金钱开设了一家网上商店,却又故意不让搜索引擎检索你,这就好象开 家零售商店,却将窗户全部漆成黑色,而且还不挂任何招牌一样。

2、优点:

从上文中我们可以发现,使用ifame框架的弊端是无法被搜索引擎所爬行抓取。但凡事总是具有两面性。它的这个缺点也可能是他的优点。利用这一点那我 们就可以把我们站点上一些需要给我们的用户查看,但是不需要搜索引擎爬行的内容用ifame框架进行显示,这样就可以让ifram发挥真正的效果了,而且 有我们站点中的代码也可以得到很大的精简,举一个例子,就如笔者上文提到的添加微博直播信息,这些微博信息我们并不需要提供给搜索引擎,而我们需要提供的 是与访客的一个互动的体验,如下图所示,而如果我们使用ifame框架嵌入微博的信息,不仅可以简便的添加站点的微博直播平台,同时我们看到代码也十分的 精简。

iframe好在能够把原先的网页全部原封不动显示下来,但是如果用在首页,是搜索引擎最套讨厌的.那么你的网站即使做的在好,也排不到好的名次!如 果是动态网页,用include还好点!但是必须要去除他 的标签!

框架的优点

  • 重载页面时不需要重载整个页面,只需要重载页面中的一个框架页(减少了数据的传输,增加了网页下载速度)
  • 方便制作导航栏

框架的缺点

  • 会产生很多页面,不容易管理
  • 不容易打印
  • 浏览器的后退按钮无效
  • 代码复杂,无法被一些搜索引擎索引到
  • 多数小型的移动设备(PDA 手机)无法完全显示框架
  • 多框架的页面会增加服务器的http请求
  • 由于上面诸多缺点,因此不符合标准网页设计的理念,已经被标准网页设计抛弃

提示: 目前框架的所有优点完全可以使用Ajax实现,因此已经没有必要使用框架了。

CSS盒模型原理
  • 1、W3C 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。
  • 2、IE 盒子模型的范围也包括 margin、border、padding、content,和标准 W3C 盒子模型不同的是:IE 盒子模型的 content 部分包含了 border 和 pading。
CSS display:none和visibility:hidden的区别
  • visibility:hidden隐藏,但在浏览时保留位置
  • display:none视为不存在,且不加载
jQuery是什么?

jQuery是javascript编写一个可重用的JavaScript库。

不使用jQuery设置UI文本的JavaScript代码如下:

document.getElementById("txt1").value = "hello"; 

用jQuery类库后的的JavaScript代码如下:

$("#txt1").val("Hello"); 

可见,在使用jQuery类库后的JavaScript代码明显简洁了很多,也更符合IT行业特点:短、平、快。

总结

  • 框架原理真的深入某一部分具体的代码和实现方式时,要多注意到细节,不要只能写出一个框架。

  • 算法方面很薄弱的,最好多刷一刷,不然影响你的工资和成功率😯

  • 在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。

  • 要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!

    开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

喜欢这篇文章文章的小伙伴们点赞+转发支持,你们的支持是我最大的动力!

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值