前端面试常考系列一

转载自  前端面试常考系列一

、简述HTML5的优点缺点?

优点:

1、网络标准统一、HTML5是由W3C推出

2、多设备、跨平台 ,移植性强。

3自适应网页设计

4、即时更新

5新增了几个标签,有助于开发人员定义重要的内容; 

6、给站点带来视频和音频等多媒体元素  

7、很好的替代Flash和Silverlight;

8、涉及到网站的抓取和索引,对于SEO很友好; 

9大量应用于移动应用程序和游戏。 


缺点:

1、声音问题:HTML5的声音制作存在很大问题。

2、安全问题:Firefox4的web socket和透明代理的实现存在严重的安全问题,web storage、web socket 功能容易被黑客利用,导致用户的信息和资料被窃取 

3、完善性:各浏览器对一些特性的支持程度不一样 

4、技术门槛:HTML5简化开发者工作的同时代表了有许多新的属性和API需要开发者学习,提升了技术门槛。

5、性能:某些平台上的引擎问题导致HTML5性能低下。 

6、浏览器兼容性:IE9以下浏览器几乎全部不兼容


、简单介绍一下浏览器的页面由几层组成,以及相应功能是什么?

浏览器页面由三层构成,分别是结构层、表示层和行为层。

结构层(structural layer)由HTML或XHTML之类的标记语言负责创建,其功能是实现页面的结构。

表示层(presentation layer)由CSS负责创建,其功能是完成页面的表现和风格。

网页的行为层由JavaScript负责创建,其功能是实现一些客户端的功能和相应的业务。


三、Doctype的作用是什么

<!DOCTYPE>声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器所声明文件的类型。让浏览器解析器知道解析文档需要用什么规范


四、严格模式与混杂模式是什么?如何区分?有何意义?

定义:

严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码。

混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码。


区分方法:

1、严格 DTD ——严格模式:文档包含严格的DOCTYPE,一般以严格模式呈现。

2、有 URI 的过渡 DTD ——严格模式;没有 URI 的过渡 DTD ——混杂模式。

3、DTD不存在或者格式不正确——混杂模式。

4、HTML5 没有严格和混杂之分。


意义:

浏览器解析时到底使用严格模式还是混杂模式,由网页中的 DTD 声明决定。 DTD 声明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载网页并显示,忽略DTD声明 ,网页将会进入混杂模式。

 


五、简单介绍一下HTML5,并说明一下其出现的原因

简介:

HTML5 是 HTML 最新版本,是2014年10月由万维网联盟( W3C )完成标准制定的一套技术组合,包括 HTML 、 CSS 和 JavaScript 。主要作用是为了减少网页浏览器对于需要插件的丰富性网络应用服务的需求,并且提供更多能有效加强网络应用的标准集。最终目的是为了替换 1999 年所制定的 HTML 4.01和 XHTML 1.0 标准,希望能在互联网应用迅速发展的时期,使网络标准达到时代对于网络的需求。


出现原因:

随着时代的发展,HTML4已经不能满足日益发展的互联网需要,为了增强浏览器功能 ,广泛的使用了Flash,导致了稳定性和安全性较差,且不适合在移动端使用。在这种情况下,HTML5应运而生,它增强了浏览器的原生功能,减少了 Web 应用对插件的依赖,给开发带来了方便,也带来了更好的用户体验。

 


六、说一下你对于WEB标准以及W3C的理解与认识

1.Web标准规范要求,书写标签必须闭合、标签小写、不乱嵌套,可提高搜索机器人对网页内容的搜索几率。

2.建议使用外链css和js脚本,从而达到结构与行为、结构与表现的分离,提高页面的渲染速度,能更快地显示页面的内容。

3.样式与标签的分离,更合理的语义化标签,使内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件, 从而降低维护成本、改版更方便。

4.不需要变动页面内容,便可提供打印版本而不需要复制内容,提高网站易用性,遵循w3c制定的Web标准,能够使用户浏览者更方便的阅读,使网页开发者之间更好的交流。

 


七、WebGL是什么?有什么优点?

WebGL(全写 Web Graphics Library )是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等。

WebGL完美地解决了现有的Web交互式三维动画的两个问题:

第一,它通过HTML脚本本身实现 Web 交互式三维动画的制作,无需任何浏览器插件支持 ;

第二,它利用底层的图形硬件加速功能进行的图形渲染,是通过统一的、标准的、跨平台的OpenGL接口实现的。

通俗说WebGL中canvas绘图中的3D版本。因为原生的WebGL很复杂,我们经常会使用一些三方的库,如three.js等,这些库多数用于HTML5游戏开发。

 


八、请你描述一下 cookies,sessionStorage 和 localStorage 的区别?

Cookie:

在浏览器和服务器之间来回传递。

每个域名存储量比较小(各浏览器不同,大致 4K )

所有域名的存储量有限制(各浏览器不同,大致 4K )

有个数限制(各浏览器不同)

LocalStorage:

仅在本地保存。

永久存储

单个域名存储量比较大(推荐 5MB ,各浏览器不同)

总体数量无限制

SessionStorage:

仅在本地保存。

只在Session内有效

存储量更大(推荐没有限制,但是实际上各浏览器也不同)

 


九、说说你对HTML语义化的理解?

1.什么是HTML语义化?

基本上都是围绕着几个主要的标签,像标题(H1~H6)、列表(li)、强调(strong em)等等。根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。


2.为什么要语义化?

为了在没有CSS的情况下,页面也能呈现出很好地内容结构、代码结构 : 为了裸奔时好看;

用户体验:例如title、 alt 用于解释名词或解释图片信息、 label 标签的活用;

有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;

方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页;

便于团队开发和维护,语义化更具可读性,是下一步网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减少差异化。


3.语义化标签

<header></header>

<footer></footer>

<nav></nav>

<section></section>

<article></article> SM:用来在页面中表示一套结构完整且独立的内容部分

<aslde></aside> SM:主题的附属信息(用途很广,主要就是一个附属内容),如果 article 里面为一篇文章的话,那么文章的作者以及信息内容就是这篇文章的附属内容了。

<figure></figure>SM:媒体元素,比如一些视频,图片啊等等

<datalist></datalist>

SM:选项列表,与input元素配合使用,来定义input可能的值

<details></details>

SM:用于描述文档或者文档某个部分的细节~默认属性为open~

ps:配合summary一起使用

 


十、你做的网页在哪些浏览器测试过,这些浏览器的内核分别是什么?

1、 IE: trident 内核

2、 Firefox : gecko 内核

3、 Safari、Chromewebkit:webkit 内核

4、 Opera、Chrome:  Blink 内核


十一、HTML5有哪些新特性、移除了哪些元素?

Html5新增了27个元素,废弃了16个元素,根据现有的标准规范,把HTML5的元素按优先级定义为结构性属性、级块性元素、行内语义性元素和交互性元素4大类。

结构性元素主要负责web上下文结构的定义

section:在web页面应用中,该元素也可以用于区域的章节描述。

header:页面主体上的头部,header元素往往在一对body元素中。

footer:页面的底部(页脚),通常会标出网站的相关信息。

nav:专门用于菜单导航、链接导航的元素,是 navigator 的缩写。

article:用于表现一篇文章的主体内容,一般为文字集中显示的区域。

级块性元素主要完成web页面区域的划分,确保内容的有效分割。

aside:用于表达注记、贴士、侧栏、摘要、插入的引用等作为补充主体的内容。

figure:是对多个元素进行组合并展示的元素,通常与ficaption联合使用。

code:表示一段代码块。

dialog:用于表达人与人之间的对话,该元素包含dt和dd这两个组合元素,dt用于表示说话者,而dd用来表示说话内容。

行内语义性元素主要完成web页面具体内容的引用和描述,是丰富内容展示的基础。

meter:表示特定范围内的数值,可用于工资、数量、百分比等。

time:表示时间值。

progress:用来表示进度条,可通过对其max、min、step等属性进行控制,完成对进度的表示和监事。

video:视频元素,用于支持和实现视频文件的直接播放,支持缓冲预载和多种视频媒体格式。

audio:音频元素,用于支持和实现音频文件的直接播放,支持缓冲预载和多种音频媒体格式。

交互性元素主要用于功能性的内容表达,会有一定的内容和数据的关联,是各种事件的基础。

details:用来表示一段具体的内容,但是内容默认可能不显示,通过某种手段(如单击)与legend交互才会显示出来。

datagrid:用来控制客户端数据与显示,可以由动态脚本及时更新。

menu:主要用于交互菜单(曾被废弃又被重新启用的元素)。

command:用来处理命令按钮。

 


十二、HTML5行内元素有哪些,块级元素有哪些, 空元素有哪些?

参考答案

(1)行内元素

a - 锚点

* abbr - 缩写

* acronym - 首字

* b - 粗体 (不推荐)

* bdo - bidi override

* big - 大字体

* br - 换行

* cite - 引用

* code - 计算机代码 (在引用源码的时候需要)

* dfn - 定义字段

* em - 强调

* font - 字体设定 (不推荐)

* i - 斜体

* img - 图片

* input - 输入框

* kbd - 定义键盘文本

* label - 表格标签

* q - 短引用

* s - 中划线 (不推荐)

* samp - 定义范例计算机代码

* select - 项目选择

* small - 小字体文本

* span - 常用内联容器,定义文本内区块

* strike - 中划线

* strong - 粗体强调

* sub - 下标

* sup - 上标

* textarea - 多行文本输入框

* tt - 电传文本

* u - 下划线

* var - 定义变量

(2)块元素 (block element)

* address - 地址

* blockquote - 块引用

* center - 居中对齐块

* dir - 目录列表

* div - 常用块级容易,也是 css layout 的主要标签

* dl - 定义列表

* fieldset - form控制组

* form - 交互表单

* h1 - 大标题

* h2 - 副标题

* h3 - 3级标题

* h4 - 4级标题

* h5 - 5级标题

* h6 - 6级标题

* hr - 水平分隔线

* isindex - input prompt

* menu - 菜单列表

* noframes - frames可选内容,(对于不支持frame的浏览器显示此区块内容

* noscript - 可选脚本内容(对于不支持script的浏览器显示此内容)

* ol - 排序表单

* p - 段落

* pre - 格式化文本

* table - 表格

* ul - 非排序列表

可变元素

可变元素为根据上下文语境决定该元素为块元素或者内联元素。

* applet - java applet

* button - 按钮

* del - 删除文本

* iframe - inline frame

* ins - 插入的文本

* map - 图片区块 (map)

* object - object对象

* script - 客户端脚本

(3)空元素 (在HTML[1]元素中,没有内容的HTML元素被称为空元素)

<br/> //换行

<hr> //分隔线

<input> //文本框等

<img> //图片

<link> <meta>



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于轻量型Web服务器Raspkate的RESTful API的实现

在上一篇文章《Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器》中&#xff0c;我们已经了解了Raspkate这一轻量型Web服务器&#xff0c;今天&#xff0c;我们再一起了解下如何基于Raspkate实现简单的RESTful API。 模块 首先让我们了解一下“模块”的概念。Raspkate的…

python股票自动买卖视频教程_十分钟学会用Python交易股票

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现&#xff0c;熟悉平台并快速入门、创建自己的量化策略代码 。难易度&#xff1a;入门级.从一下几点说起&#xff1b;1 确定框架&#xff1a;[单股票均线策略] 的主要策略…

前端面试常考系列二

转载自 前端面试常考系列二 一、外部引用CSS有几种方式&#xff0c;有何区别 外部引用CSS的方式有两种分别是link和import。 区别如下&#xff1a; 1、link是XHTML标签&#xff0c;除了加载CSS外&#xff0c;还可以定义RSS等其它事务&#xff1b;import属于CSS范畴&#xff0c;…

3分钟看完Build2016 Day 1 Keynote

Build 2016 Day 1 Keynote 直播结束&#xff0c;M姐不得不说&#xff0c;没看直播的真心错过了一大波黑科技和充值我软信仰的大好时机&#xff0c;不过别后悔&#xff0c;M姐精选了干货&#xff0c;一次性让你补充信仰。没看的真心会被甩开八条街&#xff01;&#xff01; 言归…

js动态给按钮赋id_如何给SHOPIFY店铺添加“立即购买”动态结账按钮

动态结账按钮会根据店铺后台所支持的第三方快速结账付款方式和顾客设备浏览器的记录动态展示快速结帐按钮&#xff0c;比如PayPal Express Checkout、Apple Pay等。当然如果浏览器没有记录或者店铺后台没有支持的快速结帐付款方式&#xff0c;按钮则会显示为“buy it now”。Dy…

java序列化与深度拷贝

【README】 1&#xff0c; 为啥要序列化或序列化的意义&#xff1f;2&#xff0c;系统间调用的报文格式&#xff0c;大多数是Json字符串&#xff08;或字节数组&#xff09;&#xff1b;接收方接收json&#xff1b;3&#xff0c;但当系统调用如RMI&#xff0c;客户端请求服务器…

微软Build 2016开发者大会--兑换承诺

微软的Build开发者大会已经成为它向我们宣布其在未来一年里的战略方向的一个最大平台。不像苹果的发布大会&#xff0c;微软之所以要召开这个会议并不是要发布什么产品&#xff0c;而是像众多业内人士所分析的那样&#xff0c;希望通过介绍公司的努力来说服它最重要的听众——开…

前端面试常考系列三

转载自 前端面试常考系列三 一、简述一下src与href的区别 href 表示超文本引用&#xff0c;在 link和a 等元素上使用。src 表示来源地址&#xff0c;指向外部资源所在位置&#xff0c;在 img、script、iframe 等元素上。src 的内容&#xff0c;是页面的一部分&#xff0c;是引入…

java内部类小结

【README】 1&#xff0c;本文总结了java4种内部类&#xff0c;包括 成员内部类&#xff1a;在外部类内部定义的非静态类&#xff1b;成员内部类不能独立存在&#xff0c;如 UML中类间的组合关联关系&#xff1b;静态内部类&#xff1a;在外部类内部定义的静态类&#xff1b;…

python内置模块有哪些_python中那些小众但有用的内置模块

今天带来的是python里一些小众但是却比较实用的python库&#xff0c;一起来看看吧&#xff01;pprint&#xff1a;更清晰的打印pprint 是 pretty printer 的缩写&#xff0c;用来打印 Python 数据结构&#xff0c;与 print 相比&#xff0c;它打印出来的结构更加整齐&#xff0…

微软想让你跟机器人说句话就把事办了

也别猜错&#xff0c;微软可没有像 Google 一样打算让四只脚能跑 60 迈和两只脚能穿行森林的机器人大军占领你的家。他们家的机器人不是 Robot&#xff0c;而叫 Bot&#xff0c;可能是 chatbot 的简称&#xff0c;也就是聊天机器人。 具体来说&#xff0c;微软在自然语言处理的…

转:Spring Boot 获取 HttpServletRequest 的方法

转自&#xff1a; Spring Boot 获取 HttpServletRequest 的方法 - 简书本文介绍 Spring Boot 2 获取 HttpServletRequest 的方法。 目录 概述 方法Controller 方法参数属性自动注入手动方法调用借助 Mo...https://www.jianshu.com/p/b7a7d66c4ef2 本文介绍 Spring Boot 2 获取…

前端面试常考系列四

转载自 前端面试常考系列四 一、CSS盒子模型有哪些用处 css中的盒子模型是为了理解divcss模型的定位功能&#xff0c;它利用盒子模型这样的布局方式代替了传统的表格布局方式。盒子模型是在学习divcss布局方式中必须要学习的一个模型&#xff0c;通过这个模型可以明白网页中di…

python线性加权模型_局部加权之线性回归(1) - Python实现

1 #局部加权线性回归2 #交叉验证计算泛化误差最小点345 importnumpy6 from matplotlib importpyplot as plt789 #待拟合不含噪声之目标函数10 deforiFunc(x):11 y numpy.exp(-x) * numpy.sin(10*x)12 returny13 #待拟合包含噪声之目标函数14 def traFunc(x, sigma0.03):15 y …

3分钟看完 Day2 Keynote

hey~ M姐又给大家带来了满满惊喜的 Build2016 Day 2 Keynote 干货汇总了。 如果你连昨天的都还不知道&#xff0c;那真心就 out 了。如果说信仰在昨天充值爆棚&#xff0c;今天就要充值信仰到掀翻房顶的节奏了&#xff01;&#xff01;&#xff01; 红衣主教今天妥妥变身成为新…

latex 数学公式_技能分享——LaTeX篇I

公众号文章系列二——“小袁技能分享”上线啦&#xff0c;第一篇推文我们聊一聊LaTeX(音译 “拉泰赫”)Question 1什么是LaTeX&#xff1f;要解释LaTeX是什么&#xff0c;我们先要了解另外一个事物&#xff1a;TeX。1968年&#xff0c;美国著名计算机科学家、现代计算机科学的先…

转:springboot servlet使用配置

转自&#xff1a; springboot servlet使用配置_奔跑的蜗牛的博客-CSDN博客在spring boot中添加自己的Servlet有两种方法&#xff0c;代码注册Servlet和注解自动注册&#xff08;Filter和Listener也是如此&#xff09;。 一、代码注册通过ServletRegistrationBean 获得控制。 也…

前端面试常考系列五

转载自 前端面试常考五 一、DIV元素是什么 DIV元素是用来为HTML文档内大块&#xff08;block-level&#xff09;的内容提供结构和背景的元素。DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的&#xff0c;其中所包含元素的特性由DIV标签的属性来控制&#xff0c;或…

从业十余年谈谈对dotnet看法与坚持

前言 园子经常在讨论关于.Net发展的问题&#xff0c;我也这些年在工作乃至创业过程中使用.Net碰到的一些问题和看法。个人擅长的技术面&#xff0c;C/C/MFC/STL、ASM、JAVA、VB、Javascript/Typescript、C#/WebForm/MVC、Android/MonoDroid,Linux/Windows&#xff0c;还有没有可…

kali安装python3.7_Debian服务器之安装Python3.7

1、系统环境介绍1.1 系统版本debian-9.6.0-amd64-netinst1.2 系统内核Linux lnnkee 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux2、下载安装包https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz3、配置安装环境apt install libffi-dev …