❶ web考试简答题目
1、什么是静态网页和动态网页?
答:静态网页,即纯粹的HTML网页。网页代码除了包含完整的HTML代码外,还可能包含运行于客户端的JavaScript程序,网页内代码都是在客户端的浏览器中执行。
动态网页,指网页的内容可根据某种条件的改变而自动改变。网页内代码在存放网页的服务器上执行,完成数据库操作后,生成的HTML代码网页发送给客户端的浏览器执行。
2、获取网页源文件的方法有哪些?
答:方法一:在网页的空白处,点击鼠标右键,在弹出的菜单中,选择“查看源文件”命令即可看到该网页的源文件。
方法二: 打开浏览器,选择菜单栏中的“查看->源文件到该网页的源文件。”命令也可看
3、什么是格式良好的XML文档?
答:1.第一行必须是XML声明语句。
2.在XML文档中有且仅有一个根元素。
3.文档中所有元素的标记必须正确地关闭。
4.各个元素的标记间可以正确嵌套,但不得交叉。
5.属性值必须用单引号、双引号括起来。
6.文档中的英文字母严格区分大小写。
4、在HTML中使用CSS的有哪些方法及它们的优先级?
答:方法有四种:行内样式、嵌入样式、链接样式、导入样式。
优先级最高的是行内样式,其次是嵌入样式,最低是链接样式和导入样式。
5、什么叫Div+CSS?
答:Div+CSS 是一种网页的布局方法, 主要采用div 标签进行网页布局,而控制布局的工具的CSS代码。这种布局方法用于XHTML技术,有别于传统的HTML网页设计语言中的表格(table)定位方式,真正地实现内容与表现相分离,使网页符合Web标准。
6、使用滑动门技术来设置标题样式有哪些前提条件?具体如何实现?
答:前提条件:在同一个网页中,需要显示多个标题,而这些标题的宽度各不相同,但是具有相同背景图像,且图像的左右两侧有各自的花纹。
滑动门技术的实现:1.在标题中使用两个嵌套的元素;2.每个元素各自使用一个相同的背景图像,使二者中间部分重叠,两端不重叠,把左右两端的的花纹就可以被显示出来;
7、JavaScript可以完成哪些功能?
答:1.控制文档的外观和内容
2.控制浏览器的行为,…交互操作
4.读写部分客户端信息
8、列出浏览器对象模型中对象,并简要说明其用途。(列出四个对象,给全分)
答:window对象:是最顶层的对象,表示一个浏览器窗口或一个框架。
navigator对象:包含了有关访问者浏览器的所有信息。
location对象:用于设置和返回当前网页的URL信息。
history 对象:包含用户(在浏览器窗口中)访问过的 URL。
screen 对象:包含访问者系统显示屏幕的信息。
9、JavaScript中的三种弹出式消息提醒的命令是什么?并简要说明。(少一个扣3分)
答:alert() :警告窗口,显示带有一段消息和一个确认按钮的警告框
confirm():确认窗口,显示带有一段消息以及确认按钮和取消按钮的对话框
prompt() : 信息输入窗口,显示可提示用户输入的对话框
❷ Web前端企业面试题
答:
一、display和visibility的相同与不同点
1、相同点:display和visibility都有讲元素隐藏的意思
2、不同点:display是元素隐藏,隐藏的元素不占文档流
而visibility隐藏的元素仍然占文档流
二、display和visibility的属性值
1、display
2、visibility
答:
在开发过程中经常需要循环遍历数组或者对象,使用最多的方法 forEach、for…in 、 for…of ,整理一下他们的异同点
for循环
其实除了这三种方法以外还有一种最原始的遍历,自Javascript诞生起就一直用的 就是for循环,它用来遍历数组
for循环中可以使用return、break等来中断循环
结果:
forEach
对数组的每一个元素执行一次提供的函数(不能使用return、break等中断循环),不改变原数组,无返回值undefined。
输出结果:
for…in
循环遍历的值都是数据结构的键值
总结一句: for in也可以循环数组但是特别适合遍历对象
结果:
for…of
它是ES6中新增加的语法,用来循环获取一对键值对中的值
循环一个数组
循环一个普通对象(报错)
答:
px:像素(Pixel),相对长度单位。像素px是相对于显示器屏幕分辨率而言的 。--即分辨率不同的机型当前对应的距离可能发生变化。(1Inches=xPx)。
所以相对于同一机型来说是一个绝对的长度单位。
em:是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸 。
以其父级元素为基准来变化长度。所以其算法不是一个固定的值。
rem:是CSS3新增的一个相对单位(root em,根em) 。
那么其好用在用可以直接设置HTML的font-size,然后在其子类都是以这个大小为基准变化的值。
在移动设备上,我们常常设置
此方式的目的是为了将当前屏幕(PC)分辨率的px转化成手机端的px,让px在手机上能够兼容此方式。
因此,此时看见的12px与PC端的12px无异。但是,如果不写着个meta的话,那么,浏览器会一直以PC的视图来决定手机端的px的大小,让视图看起来变小了很多。
那么,响应式页面则经常配合媒体查询media 来设置不同分辨率下手机的各种不同的配置机构,然后根据父级来变化所有的相对长度。
基础篇
1.shift
// 删除原数组的第一项,并返回删除元素的值,如果数组为空则返回undefined
2.unshift
// 将参数添加到原数组开头,并返回数组的长度
//注:此方法在ie6.0下
// 测试的返回值始终为undefined,在firefox下测试的返回值为7,所以此方法不可靠
// 一般需要用返回值时可用splice代替
3.pop
// 删除原数组的最后一项,并返回删除元素的值;如果数组为空则返回undefined
4.push
// 将参数添加到原数组末尾,并返回数组的长度
5.concat
// 返回一个新数组,是将参数添加到原数组中构成的
6.splice
7.reverse
8.sort(orderfunction)
9.slice(start,end)
10.join(separator)
11.indexOf
12.lastIndexOf
13. Array.isArray()
14. Array.toString()
进阶篇
1.forEach
是最为常用的情景,它至于遍历,可以在获取当前数据项的前提下,对数据进行修改。它没有返回值。理解起来也是最容易的。
2.map
map的本意就是映射,也就是将一个值从一种形式映射到另一种形式,比如将key映射到value。它的每一次遍历都会有一个返回值。这些返回值组合成最终的结果数组。事实就是如此
forEach和map对比
相同点
1)都是循环遍历数组中的每一项;
2)forEach()和map()匿名函数的参数相同,参数分别是item(当前每一项)、index(索引值)、arr(原数组);
3)this都是指向调用方法的数组;
4) 只能遍历数组;
不相同点
1)map()创建了新数组,不改变原数组;forEach()可以改变原数组。
2)遇到空缺的时候map()虽然会跳过,但保留空缺;forEach()遍历时跳过空缺,不保留空缺。
3)map()按照原始数组元素顺序依次处理元素;forEach()遍历数组的每个元素,将元素传给回调函数。
3.filter
它致力于从已有的数组中筛选出符合一定条件的数据项,最后的返回值是所有符合条件的数据项构成的数组。它不会修改原来的数组。记住,它的立足点就是筛选。也仅仅是筛选。还有一点需要注意:每一次遍历都会有一个返回值,它的类型是布尔类型。返回值只有是true,当前遍历项才会被筛选中。不要试图在filter中去修改原始数组。
理解: 就是在一堆数据里面去筛选你需要的数据 或者 剔除你不需要的数据
4.find()
返回通过测试的数组的第一个元素的值,
理解:假如你去一个一群人的地方去找人 你说我找xxb 他要是在那里就找到 不在那里就是undefined
在第一次调用 callback 函数时会确定元素的索引范围,因此在 find 方法开始执行之后添加到数组的新元素将不会被 callback 函数访问到。如果数组中一个尚未被callback函数访问到的元素的值被callback函数所改变,那么当callback函数访问到它时,它的值是将是根据它在数组中的索引所访问到的当前值。被删除的元素仍旧会被访问到。
语法
array.find(function(value, index, arr),thisValue)
value:必须,代表当前元素,其他四个参数都是可选,index代表当前索引值,arr代表当前的数组,thisValue代表传递给函数的值,一般用this值,如果这个参数为空,undefined会传递给this值
返回值:返回符合测试条件的第一个数组元素的值,如果没有符合条件的则返回undefined。
扩展: findIndex()方法的用法与find()方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。自己try吧
5.every
理解: 这个就像 上课了 老师说 昨天布置的作业 只要有一个人没有写完 今天就不讲课 然后挨个检查 当检查到有一个没有写完的时候 就不检查了 返回 不讲课了(false)
6.some
理解: 相当于在一个数组里面找你想要的那个数 找到了 就返回true 找不到就返回false
7.rece
它这个方法是接收一个函数作为累加器,将数组中的值(从左向右)开始合并,最总为一个值 然后返回出来,callback
他可以传四个参数:
1,previousValue:上一次调用回调返回的值,或者是提供的初始值(initialValue)
2,currentValue:数组中当前被处理的元素
3,index:不啰嗦,自己顾名思义去吧
4,array:返回调用rece的数组
彩蛋: 这里附上前几天某某人比较喜欢的切割字符串的方法
substring() 和 substr()
相同点: 如果只是写一个参数,两者的作用都一样:都是是截取字符串从当前下标以后直到字符串最后的字符串片段。
不同点: 第二个参数
substr(startIndex, lenth) // 第二个参数是截取字符串的长度(从起始点截取某个长度的字符串);
substring(startIndex, endIndex) // 第二个参数是截取字符串最终的下标 (截取2个位置之间的字符串,‘含头不含尾')。
1:在使用vue框架的过程中,我们经常需要给一些数据做一些初始化处理,这时候我们常用的就是在created与mounted选项中作出处理。
首先来看下官方解释,官方解释说created是在实例创建完成后呗立即调用。在这一步,实例已完成以下配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。
这话的意思我觉得重点在于说挂架阶段还没开始,什么叫还没开始挂载,也就是说,模板还没有被渲染成html,也就是这时候通过id什么的去查找页面元素是找不到的。下面看下实例来证明。
所以,一般creadted钩子函数主要是用来初始化数据。
2:mounted钩子函数一般是用来向后端发起请求拿到数据以后做一些业务处理。官方解释如下:
el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。
这意思是该钩子函数是在挂在完成以后也就是模板渲染完成以后才会被调用。下面看实例
下面是结果
nihao
取到了值,这说明这时候vue模板已经渲染完毕。因此,Dom操作一般是在mounted钩子函数中进行的
computed:{} 计算属性,什么是计算属性呢,我个人理解就是对数据进行一定的操作,可以包含逻辑处理操作,对计算属性中的数据进行监控。计算属性是基于它的以来进行更新的,只有在相关依赖发生改变时侧能更新变化,以函数的形式返回结果。然后可以像绑定普通属性一样在模板中绑定计算属性。
总结:
通常created使用的次数多,而mounted通常是在一些插件的使用或者组件的使用中进行操作,比如插件chart.js的使用: var ctx = document.getElementById(ID);通常会有这一步,而如果你写入组件中,你会发现在created中无法对chart进行一些初始化配置,一定要等这个html渲染完后才可以进行,那么mounted就是不二之选。
methods:{}中的方法都需要主动去触发,比如点击click之类的
而created(){}、mounted(){}、里面的代码都是自动去执行的,即vue生命周期到了哪一步就直接去执行对应钩子函数里面的代码了,无需手动去执行
created中主要放初始化获取数据之类,mounted()中挂载到具体的DOM节点
computed:{} 计算属性,什么是计算属性呢,我个人理解就是对数据进行一定的操作,可以包含逻辑处理操作,对计算属性中的数据进行监控。计算属性是基于它的以来进行更新的,只有在相关依赖发生改变时侧能更新变化,以函数的形式返回结果。然后可以像绑定普通属性一样在模板中绑定计算属性。
mounted 是生命周期钩子,vue的生命周期中一个实例的mounted只会运行一次。mounted在vue的渲染模板挂载到$el元素上才会调用,很显然你export的时候el都么有自然不会运行mounted钩子函数了。
所有的方法都应该在methods里定义,然后在created或者mounted里 使用this调用方法,用这种方式实现初始化
6、Vue中组件之间的传参方式有哪些方式?
Vue 组件传参的八种方式总结
Vue 组件的使用不管是在平常工作还是在面试面试中,都是频繁出现的。因此系统的梳理一下组件之间的传参还是非常有必要的
一、props 传参
子组件定义 props 有三种方式:
// 第一种数组方式
// 第二种对象方式
// 第三种对象嵌套对象方式
第三种对象默认支持 4 种属性,并且都是非必填的。可以随意使用
父组件传参的俩种方式
第一种静态属性传参
注意:
1、在不定义 props 类型的情况下 props 接受到的均为 String。
2、当 props 属性指定为 Boolean 时,并且只有属性 key 没有值 value 时接受到的是 true
第二种动态属性传参
注意:
1、需要区分非简写形式传入的值是对象,则会对应 props 中多个值
2、会保留传入值的类型
3、如果是表达式则获取到的是表达式的计算结果
二、attrs 和listeners
$attrs
$attrs 会获取到 props 中未定义的属性(class 和 style 属性除外),支持响应式。常用的场景有俩种:
组件嵌套组件时可以使用 $attrs 来支持过多的属性支持。比如 elementUI 的 table 组件。支持的属性十几个,而平常封装的时候用的最多的也就一俩个。
属性默认是添加在父组件上的,有时候想把多余的属性添加在子组件上(可以结合 inheritAttrs: false 属性,让父属性不接受多余的属性)
$listeners 定义的事件都在子组件的根元素上,有时候想加到其他元素上。就可以使用 $listerners。它包含了父组件中的事件监听器(除了带有 .native 修饰符的监听器)
三、$emit 通知
这里有一道考题: for 循环的时候如何拿到子组件的传值和 for 中循环的值
答案有俩种,一是 $event, 二是 闭包。只是需要注意 $event 只能获取到第一个值
四、v-model
这个其实是一种通过 emit,on 的组合方式。优点再于同步值方便,写法优雅。下面三种写法其实是一个意思
五、插槽
六、$refs, $root, $parent, $children
$root 获取根组件
$parent 获取父组件
$children 获取子组件(所有的子组件,不保证顺序)
$refs 组件获取组件实例,元素获取元素
七、project / inject
注意:注入的值是非响应的
八、Vuex
这个相当于单独维护的一组数据,就不过多的说了。
watch,computed和methods的关系
1.watch和computed都是以Vue的依赖追踪机制为基础的 ,它们都试图处理这样一件事情:当某一个数据(称它为依赖数据)发生变化的时候,所有依赖这个数据的“相关”数据“自动”发生变化,也就是自动调用相关的函数去实现数据的变动。
2.对methods:methods里面是用来定义函数的,很显然,它需要手动调用才能执行。而不像watch和computed那样,“自动执行”预先定义的函数
watch和computed各自处理的数据关系场景不同
1. watch 擅长处理的场景: 一个数据影响多个数据
2. computed 擅长处理的场景: 一个数据受多个数据影响
watch用法 监听下记haiZeiTuan_Name的值,会改变其他所有的值
结果:this.suoLong会变为 '橡胶海贼团索隆',以此类推
computed用法 监听下记firstName,secName,thirdName的值,会改变luFei_Name的值
methods和computed的区别例子
注意两次点击computed返回的时间是相同的!!
1.两次点击methods返回的时间是不同的
2.注意两次点击computed返回的时间是相同的
【注意】为什么两次点击computed返回的时间是相同的呢?new Date()不是依赖型数据 (不是放在data等对象下的实例数据) ,所以computed只提供了缓存的值,而没有重新计算
只有符合:1.存在依赖型数据 2.依赖型数据发生改变这两个条件 ,computed才会重新计算。
参考:http://www.cnblogs.com/penghuwan/p/7194133.html
答:https://codecat.blog.csdn.net/article/details/100031285
1、Promise
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大,简单地说,Promise好比容器,里面存放着一些未来才会执行完毕(异步)的事件的结果,而这些结果一旦生成是无法改变的
2、async await
async await也是异步编程的一种解决方案,他遵循的是Generator 函数的语法糖,他拥有内置执行器,不需要额外的调用直接会自动执行并输出结果,它返回的是一个Promise对象。
两者的主要用法、语法就不赘述了,感兴趣的同学可以自行查阅 es6中文文档
两者的区别
1、Promise的出现解决了传统callback函数导致的“地域回调”问题,但它的语法导致了它向纵向发展行成了一个回调链,遇到复杂的业务场景,这样的语法显然也是不美观的。而async await代码看起来会简洁些,使得异步代码看起来像同步代码,await的本质是可以提供等同于”同步效果“的等待异步返回能力的语法糖,只有这一句代码执行完,才会执行下一句。
2、async await与Promise一样,是非阻塞的。
3、async await是基于Promise实现的,可以说是改良版的Promise,它不能用于普通的回调函数。
简单来看,这两者除了语法糖不一样外,他们解决的问题、达到的效果是大同小异的,我们可以在不同的应用场景,根据自己的喜好来选择使用。
❸ Web前端基础】css中浮动属性有什么
float right none(不浮动) inherit从父元素继承浮动的属性值
❹ Web前端工程师要了解的html+css基础知识
今天小编要跟大家分析的文章是关于Web前端工程师要了解的html+css基础知识。正在从事Web前端工作的小伙伴们来和小编一起看一看吧,希望本篇文章能够对正在从事Web前端工作和学习的小伙伴们有所帮橡镇助。一、什么是HTML?
HTML即超文本标记语言(HyperTextMarkupLanguage),是用来描述网页的一种语言。
超文本标记语言的结构包括"头"部分(外语:Head)、和"主体"部分(外语:Body),其中"头"部提供关于网页的信息,"主体"部分提供网页的具体内容。
标记语言是一套标记标签(markuptag)
HTML使用标记标签来描述网页
如下代码:
MyFirstHeading
Myfirstparagraph.
例子解释:
与之间的文本描述网页
与之间的文本是可见的页面内容
与
之间的文本被显示为标题与
之间的文本被显示为段落二、HTML元素
HTML文档是由HTML元素定义的。
HTML元素指的是从开始标签(starttag)到结束标签(end
tag)的所有代码。
td{border:1pxsolid#ccc;padding:5px;margin:auto;}
td>p{text-align:left;}
td>pspan{text-align:center;display:block;}
开始标签
元素内容
结束标签
Thisisaparagraph
href="default.htm">
Thisisalink注释:启梁开始标签常被称为开放标签(openingtag),结束标签常称为闭合标签(closingtag),大多数HTML元素可拥有属性。
空的HTML元素:
没有内容的HTML元素被称为空元素。在XHTML、XML以及未来版本的HTML中,所有元素都必须被关闭。
在开始标签中添加斜杠,比如:
就是没有关闭标签的空元素,而
是关闭空元素的正确方法,HTML、XHTML和XML都接受这种方式。
即使
在所有浏览器中都是有效的,但使用
其实是更长远的保障。
HTML提示:使用小写标签
HTML标签对大小写不敏感:
等同于
。许多网站都使用大写的HTML标签。 ❺ web应用程序的上下文路径指的是什么路径举出web配置例子,谢谢
1.在%CATALINA_HOME%\conf\context.xml这个文件中,编辑Context元素属性 例: <Context path="/MyPro" docBase="F:\MyProject\MyPro" reloadable="true"> </Context> path属性代表web应用程序的上下文根路径 docBase属性指定了web应用程序的文档基目录 reloadable属性,如果指定为true,Tomcat服务器在运行时,会监视WEB-INF/classes和WEB-INF/lib目录下的类的改变,如果发现有类被更新,Tomcat服务器将自动重新加载该web应用程序。 2..%CATALINA_HOME%\conf\[enginename]\[hostname]xxx.xml,enginename是在server.xml文件中设置的<Engine>元素的name属性的值,[hostname]是在server.xml文件中设置的<Host>元素的name属性的值 这个xxx.xml文件的文件名“xxx”被作为web应用程序的上下文根路径,而不管你在xxx.xml文件中的<Context>元素的path属性是什么
W3School使用的是小写标签,因为万维网联盟(W3C)在HTML4中推荐使用小写,而在未来(X)HTML版本中强制使用小写。
三、HTML属性
HTML标签可以拥有属性。属性提供了有关HTML元素的更多的信息。
属性总是以名称/值对的形式出现,比如:name="value"。
属性总是在HTML元素的开始标签中规定。
属性实例:
HTML链接由标签定义。链接的地址在href属性梁旁粗中指定:
Thisisa
link
注释:属性值应该始终被包括在引号内。双引号是最常用的,不过使用单引号也没有问题。在某些个别的情况下,比如属性值本身就含有双引号,那么您必须使用单引号,例如:name='Bill"HelloWorld"Gates'。
HTML提示:使用小写属性
属性和属性值对大小写不敏感。
不过,万维网联盟在其HTML4推荐标准中推荐小写的属性/属性值。
而新版本的(X)HTML要求使用小写属性。
一些常见HTML属性:
td{border:1pxsolid#ccc;padding:5px;margin:auto;}
td>p{text-align:left;}
td>pspan{text-align:center;display:block;}
属性
值
描述
class
classname
规定元素的类名(classname)
id
id
规定元素的唯一id
style
style_definition
规定元素的行内样式(inline
style)
title
text
规定元素的额外信息(可在工具提示中显示)
四、HTML编辑器
使用Notepad或TextEdit来编写HTML
可以使用专业的HTML编辑器来编辑HTML:
AdobeDreamweaver
MicrosoftExpressionWeb
CoffeeCupHTMLEditor
五、HTML标题
标题(Heading)是通过-
等标签进行定义的。
Thisisaheading
定义最大的标题。
Thisisaheading
定义最小的标题。
注释:浏览器会自动地在标题的前后添加空行。
注释:默认情况下,HTML会自动地在块级元素前后添加一个额外的空行,比如段落、标题元素前后。
以上就是小编今天为大家分享的关于Web前端工程师要了解的html+css基础知识的文章,希望本篇文章能够对正在从事Web前端工作的小伙伴们有所帮助,想要了解更多Web前端相关知识记得关注北大青鸟Web培训官网,最后祝愿小伙伴们工作顺利,成为一名优秀的Web前端工程师。