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

前端布局每日一题

发布时间: 2023-06-12 20:01:55

‘壹’ 前端,请问下面这个公式,为什么我给bTitle下面的a标签赋值,为什么span标签也被赋值了呢

你要提供更多的信息,比如你是怎么赋值的,你要赋的是属性的值还是内容的值。

如果你要给a标签的属性赋值的话:
document.getElementsByClassName("bTitle")[0].getElementsByTagName("a")[0].setAttribute("属性名","属性值");
如果你要给a标签内容赋值的话:
document.getElementsByClassName("bTitle")[0].getElementsByTagName("a")[0].innerHTML("内容")

‘贰’ web前端笔试题(HTML/CSS篇)

web前端笔试题集锦(HTML/CSS篇)

导读:网页不再只是承载单一的文字和图片,各种富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的。以下是由我J.L为您整理推荐的前端开发笔试题目,欢迎参考阅读。

一、HTML/CSS

1,让一个input的背景颜色变成红色

2,div的高宽等于浏览器可见区域的高宽,浏览器滚动,div始终覆盖浏览器的整个可见区域

思路:

(1)先放置一个div1,浮动:position:absolute;top:0px;left:0px;

(2)再放置一个div2,浮动:position:absolute;top:0px;left:0px;width:100%;height:100%;

(3)在div2中放置一个div3,令其高度超过浏览器高度,使div2产生滚动条

(4)对html,body进行样式设置:width:100%;height:100%;overflow:hidden->不让浏览器产生滚动条,避免页面出现两个滚动条

(5)编写JavaScript,另div2的高度等于页面可见高度,宽度等于页面可见宽度,注意,在计算完可见高度height和可见宽度width后,要对这两个值做处理,可见宽度-div2的滚动条的宽度,滚动条的宽度我这里假设是20px

这样题目基本就完成了,不过浏览器的兼容性还不是很好。

3,IE、FF下面CSS的解释区别

(1) 让页面元素居中

ff{margin-left:0px;margin-right:0px;width:***}

ie上面的设置+text-align:center

(2) ff:不支持滤镜

ie:支持滤镜

(3) ff:支持!important

ie支持*,ie6支持_

(4) min-width,min-height

FF支持,IE不支持,IE可以用css expression来替代

(5) Css Expression

FF不支持,IE支持

(6) cursor:hand

IE下可以显示手指状,FF下不行

(7) UL的默认padding和margin

IE下ul默认有margin,FF下ul默认有padding

(8) FORM的默认margin

IE下FORM有默认margin,FF下margin默认为0

4,一个定宽元素在浏览器(IE6,IE7,Firefox)中横向居中对齐的布局,请写出主要的.HTML标签及CSS

思路:

IE6/7:text-align:center

Firefox:margin:0 auto(margin-top和margin-bottom也可以为其他数字,关键是margin-left,margin-right为auto)

5,CSS中margin和padding的区别

margin是元素的外边框,是元素边框和相邻元素的距离

Padding是元素的内边框,是元素边框和子元素的距离

6,最后一个问题是,如何制作一个combo选项,就是可以输入可以下拉菜单选择。

思路:

(1)布局select和input,让input覆盖select,除了select的下拉图标,以方便select选择

(2)编写JS,为select添加onchange事件,onchange时将input的value置成select选中的指

7,

中alt和tittle的区别

alt:图片显示不出来了就提示alt

title:鼠标划过图片显示的提示

8,用css、html编写一个两列布局的网页,要求右侧宽度为200px,左侧自动扩展。

在这里我使用了两种方式:

(1)使用position

HTML:

left

right

(2) 使用float

HTML:

固定宽度

自适应

二者的CSS公用,如下:

html,body{width:100%;height:100%;margin:0px;padding:0px;}

.container {width:100%;height:400px;position:relative;}

.fl1 {float:left;}

.left {width:100%;height:400px;background:#AFFFD0;position:absolute;}

.right {width:200px;height:400px;background:#F9AFFF;position:absolute;right:0px;top:0px;}

.clear {clear:both;overflow:hidden;height:0px;}

.container2 {width:100%;height:400px;margin-top:100px;}

.left2 {background:#afffd0;height:400px;width:200px;margin-right:-3px;}

.right2 {height:400px;background:#f9afff;}

9,解释document.getElementByIdx_x_x_x("ElementID").style.fontSize="1.5em"

em是相对长度单位,相当于当前对象内文本的字体尺寸,如果当前行内文本的字体尺寸未被指定,则相对于浏览器的默认字体尺寸。

该语句将id为ElementID的元素的字体设置为当前对象内文本的字体尺寸的1.5倍

10,Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? 行内元素有哪些?块级元素有哪些?CSS的盒模型?

DOCTYPE是文档类型,用来说明使用的HTML或者XHTML是什么版本,其中的DTD叫文档类型定义,里面包含了文档规则,浏览器根据定义的DTD来解析页面的标识并展现出来

DOCTYPE有两种用途:一个可以进行页面的有效性验证,另一个可以区分浏览器使用严格模式还是混杂模式来解析CSS。

严格模式和混杂模式是浏览器解析CSS的两种模式,目前使用的大部分浏览器对这两种模式都支持,但是IE5只支持混杂模式。

可那个过DOCTYPE声明来判断哪种模式被触发

(1) 没有DOCTYPE声明的网页采用混杂模式解析

(2) 对使用DOCTYPE声明的网页视不同浏览器进行解析

(3) 对于浏览器不能识别的DOCTYPE声明,浏览器采用严格模式解析

(4) 在ie6下,如果在DOCTYPE声明之前有一个xml声明比如

,采用混杂模式解析,在IE7,IE8中这条规则不生效。

(5) 在ie下,如果DOCTYPE之前有任何字符,都会导致它进入混杂模式,如:

区分这两种模式可以理解浏览器解析CSS的区别,主要是在盒模式的解释上。

常见的块级元素有:DIV,FORM,TABLE,P,PRE,H1~H6,DL,OL,UL等

常见的内联元素:SPAN,A,STRONG,EM,LABEL,INPUT,SELECT,TEXTAREA,IMG,BR等

CSS盒模型用于描述为一个HTML元素形成的矩形盒子,盒模型还涉及元素的外边距,内边距,边框和内容,具体来讲最里面的内容是元素内容,直接包围元素内容的是内边距,包围内边距的是边框,包围边框的是外边距。内边距,外边距,边框默认为0。

11,CSS引入的方式有哪些? link和@import的区别?

引入css的方式有下面四种

(1) 使用style属性

(2) 使用style标签

(3) 使用link标签

(4) 使用@import引入

Link和@import区别:

(1) link属于XHTML标签,@import是CSS提供的一种方式。Link除了加载CSS外,还可以做很多事情,如定义RSS,rel连接属性等;@import只能加载CSS

(2)加载顺序不同,当页面被加载的时候,link加载的CSS随之加载,而@import引用的CSS会等到页面完全下载完之后才会加载

(3)兼容性差别,由于@import是CSS2.1提出的,所以老的浏览器不支持,IE系列的浏览器IE5以上才能识别,而link没有这个问题

使用DOM控制样式的差别,使用JavaScript控制DOM去改变样式的时候,只能操作link,@import不可以被DOM操作。

12,如何居中一个浮动元素?

一个浮动元素里面包含的元素可以水平居中,原理如下:

让浮动元素left相对于父元素container右移50%,浮动元素left的子元素left-child相对于left左移50%就可以实现left-child相对于container水平居中

垂直居中类似,不过操作的不是left而是top

13,HTML5和CSS3的了解情况

有所了解

HTML5和CSS3分别是新推出的HTML和CSS规范,前世是XHTML2和CSS2,目前还在草案阶段,不过得到了Apple,Opera,Mozilla,Google,Microsoft不同程度的支持,也开发出了不少基于他们的应用。

HTML5相对于原来的HTML规范有一些变化:

(1)DOCTYPE更简洁

(2)新增了一些语义化标签,如article,header,footer,dialog等

(3)新增了一些高级标签,如,,

CSS3相对于CSS2也新增了不少功能

(1) 选择器更加丰富

(2) 支持为元素设置阴影

(3) 无需图片能提供圆角

14,你怎么来实现下面这个设计图

(1) 切图

(2) 布局,采用两栏布局,分别左浮动

(3) 编写css代码

15,css 中id和class如何定义,哪个定义的优先级别高?

id:#***,***为HTML中定义的id属性

class:.***,***为HTML中定义的class属性

id比class的优先级高

16,用html实现如下表格(不如嵌套实用表格)

三行三列,其中第一行第一列和第二行第一列合并; 第二行第二列和第二行第三列合并(现场画表)

运行结果如下:

17,web标准网站有那些优点

(1) Web标准网站结构和布局分离,使网站的访问和维护更加容易

(2) Web标准网站结构,布局以及页面访问都标准化,使网站能在更多的web标准设备中访问,兼容性更好

(3) Web标准网站语义化更好,语义化的XHTML不仅对用户友好,对搜索引擎也友好。

;

‘叁’ 你遇到的前端面试题都有什么

大家好,我是王我。

随着春节的结束,各个行业也普遍开始了上班的节奏, 不过本人17号才上班。为什么?因为长得帅的都上班比较晚。 当然,每到新年结束,又迎来了一批招聘者与面试者,我来说说作为一年工作经验应该知道的面试题。

HTML篇

1.doctype是什么?有哪些类型?

2.input有哪些新类型?简要说明其8用法。

3.HTML5有哪些新特性,移除了哪些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML和HTML5?

4.bootstrap响应式的原理是什么?

5.多移动终端页面适配是如何实现的?

CSS篇

1.如何实现两列布局,左边自适应,右边固定宽度?

2.用CSS画一个三角形

3.CSS实现字体大写

4.display有哪些常用的属性值?分别是什么意思?

5.position为absolute,relative,fixed的定点位置

6.用三种方法清除浮动

7.请介绍一下margin塌陷问题

js篇

1.什么是事件冒泡和捕获?如何阻止事件冒泡?(分别用原生和jquery实现)

2.js创建对象,至少使用三种方法

3.简述一下事件穿透以及解决办法

4.用三种方式判断变量类型是否是数组

5.如何实现对象的拷贝?

6.什么是闭包?闭包的优缺点。

7.简述一下ajax请求的过程。

8.简述一下new一个人构造函数的人过程。

9.为什么会有跨域?是怎么解决跨域问题的?简述一下原理。

10.js原始数据类型有哪些?

11.学一个函数,判断一个变量是否是字符串

12.typeof有哪些结果?

13.剪头函数和普通函数有什么区别?

14.请用三种方法实现数组去重

15.href和src有什么区别?

jquery篇

1.attr()和prop()有什么区别?

2.on和bind有什么区别?js动态添加的dom元素是通过on还是bind?

3.touch和click有什么区别?

4.window.onload和jquery的ready有什么区别?

vue篇

1.简述一下vue的生命周期及其特点

2.vue双向绑定的原理是什么?

3.vue的特点有哪些?和jquery有什么区别?

4.父子组件之间传递数据的方法

5.子组件如何共享数据?

6.一般有什么工具进行数据交互?

7.webpack的原理是什么?

8.简述一下$nextTick的用法

浏览器篇

1.cookie、sessionStorage、localStorage的区别是什么?

2.有用过浏览器缓存吗?简述一下基本的缓存机制

网络篇

1.http和https之间的区别

2.从服务器的安全考虑,是使用get请求还是post请求?

3.URL请求的过程有哪些?

项目经验篇

1.项目中遇到的最大挑战以及解决办法

2.常见的网页优化有哪些?

作为一个面试一年以内工作经验的前端程序员来说,以上的问题能够倒答如流月薪6k应该不成问题啦。这些面试题也是我在很多面试中感觉经常被问到的题目。

希望大家年后找工作能够顺顺利利, 千万不要跟我一样哦,只有帅气就一无所有了。

大家好,我是王我,中国最帅的前端程序员。

前几次都是各种培训公司,各种忽悠就不提了,说说后面4次面试的经历。

第一次是面一个小公司,不过他们好像没有厉害的前端,来面我的是个后端,一来没有问我关于js的知识,直接问我以前做过什么,有没有经验,我本人不会吹牛,简历也没怎么包装,就是自己把自学的知识和做的几个小demo弄在上面,也用github挂在页面上了,不过他根本不点开看,也不问,问我会不会vue,我当时对框架还不了解,他就说他们需要能直接上手开始写的,所以我第一个就直接挂了。

第二次面试是一个国企,这个问了很多问题,都很基础,js数据类型,数组操作,事件,大概就是高程的前面几章看看就差不多都能答到,然后因为他们主要用jq,所以问了很多jq的操作,关于节点的,动画的,我看锋利的jq大概看了3遍,也练过多次,所以我答的很熟。然后问了些布局方面的,bootstrap我了解过,又看过css3,所以这方面也没啥问题,最后在现场做了个题目,主要就是布局然后通过ajax呈现数据。后面听介绍我面试的说面试官比较满意,说我jq很熟,一面就过了。可惜后面电话面试不知怎么回事可能表现的不够自信,虽然没问技术,但是我没啥自信,把没项目经验什么的也不知怎么就一五一十交代了,估计因为这个挂掉了。

第三次没问问题,直接就是一套题开做,我在那做了一个多小时。题目就是按照要求一步一步做一个页面出来,我也搞忘了我当时卡在哪个地方了,坐在那得时候就是做不出来,没有设计图,要根据他的描述自己找个设计图然后做,我第一次遇到这个有点懵,虽然当时没做出来,不过回来我自己花了几个小时把它做了。所以这个也是凉了。

第四个问的比较多,数据类型,数组操作,跨域,ajax,闭包,原型链,继承,深拷贝,浅拷贝,模块amd cmd,基本都是问的js。然后问了html5的新特性 css3 的新特性,遇到过什么浏览器的兼容性问题,怎么解决的,以后想往什么方面发展。这个时候我已经会点vue了,照着做了个小demo,不过后来知道公司用的angularjs,面试官也没看我做的,问也没问。。以前听网上说要带上自己的项目去面试感觉没起多大效果。

最后总结下如果面的比较初级的岗位,应该主要问js,原型链,继承,闭包,深浅拷贝,ajax,跨域,然后js的基础知识,对了还有apply和call也问了,html5的新特性了解下就行。主要就是看你js掌握的程度,如果稍微要求高一点的,暂时还没面过,等以后面过在来回答

1. cookie session 的用途和区别,以及有效期

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗

考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能

考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

2. vue的数据绑定原理,mvvm与mvc的区别

MVVM:

m:model数据模型层 v:view视图层 vm:ViewModel
vue中采用的是mvvm模式,这是从mvc衍生过来的
MVVM让视图与viewmodel直接的关系特别的紧密,就是为了解决mvc反馈不及时的问题

图片说明一下:


说到MVVM就要说一下双向绑定和数据劫持的原理,

MVC:

m:model数据模型层 v:view视图层 c:controller控制器

原理: c层需要控制model层的数据在view层进行显示

MVC两种方式,图片说明:


总结:

mvvm与mvc最大的区别:
MVVM实现了view与model的自动同步,也就是model属性改变的时候, 我们不需要再自己手动操作dom元素去改变view的显示,而是改变属性后该属性对应的view层会自动改变。

不懂得可以复制链接查看:

https://www.pianshen.com/article/3716256399/

3. storage 的区别 sessionStorage localStorage

localStorage 的生命周期是永久性的。假若使用localStorage存储数据,即使关闭浏览器,也不会让数据消失,除非主动的去删除数据,使用的方法如上所示。localStorage有length属性


sessionStorage 的生命周期是在浏览器关闭前。也就是说,在整个浏览器未关闭前,其数据一直都是存在的。sessionStorage也有length属性,其基本的判断和使用方法和localStorage的使用是一致的


4.v-model双向数据原理

有一个文本框 通过v-bind绑定了value属性 值为myname 是我们在vue实例中定义的属性
传统我们获取文本框值方法 可能通过getElementById找到文本框 然后获取其value属性
但是vue中直接通过v-bind绑定了value属性 所以不需要像之前那样获取值
所以在后面的按钮中获取name值 直接获取vue实例对象data里面的myname属性即可

【数据为尊 ----数据映射到浏览器 如果数据v-model后修改(肯定input)然后到数据在有数据映射到浏览器页面 ----映射关系统称】



5.keepAlive用过吗?什么作用?

缓存路由组件


使用的是vue的一个组件,参考vue的官方文档

使用这个东西可以保证我们在切换组件的时候,原来显示的组件不被销毁

-----【保障组件的数据不会被切换路由而销毁数据】

Home是对应的组件对象的名字,不是路由的名字

6.多维数组拍平

数组拍平也称数组扁平化,就是将数组里面的数组打开,最后合并为一个数组

一红六种方法吧……

了解的请看: https://www.cnblogs.com/guan-shan/p/10165737.html

7.跨域的原因 解决方案

跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。

这样就可以说同源策略----协议---端口---域名

原生的src和href可以解决跨域

代理可以解决

请求头也可以携带浏览器提示的也可以解决

一般都是后端解决跨域问题

【别的需要了解看下方链接】

https://blog.csdn.net/qq_41604383/article/details/100770100

8.uniApp兼容问题

§ 如果你使用cli创建项目(即项目根目录是package.json),不管用什么ide,即便是用HBuilderX,切记cli项目的编译器是在项目下的,HBuilderX不管怎么升级都不会影响编译器版本。你需要手动npm update来升级编译器。以及如果你想要安装less、scss等预编译器,也需要自己npm安装在项目下,而不是在HBuilderX的插件管理里安装。

§ 如果你使用离线打包,请注意HBuilderX升级后,真机运行基座和云打包对应引擎跟随HBuilderX升级,而你的sdk需要手动升级。sdk的版本升级一般滞后HBuilderX正式版升级一两天。

§ 如果你使用自定义基座,之前制作的自定义基座是不会跟随HBuilderX升级的,升级HBuilderX后你应该重新制作新版自定义基座。

§ 如果你使用wgt升级,新版HBuilderX编译的wgt,运行到之前的runtime上,一定要先测试好,看有没有兼容性问题。如果有问题,就不要wgt升级,整包升级。

§ 考虑到向下兼容,uni-app编译器在升级为新的自定义组件模式后,同时保留了对老编译模式的向下兼容。
在HBuilderX alpha版中,App端一定会使用新编译器,不理会manifest配置。
在HBuilderX 正式版中,新创建的项目会使用新编译器,老项目不会强制使用,而是开发者自己在manifest里配置开启。

§ 如果你使用其他ide开发uni-app,会经常因为拼错单词而运行失败,因为经过webpack编译一道,很多错误反应的不够直观,排错时间很长,不如从开始就依赖有良好提示的HBuilderX,避免敲错单词。

§ 云打包的引擎版本说明
HBuilderX Alpha,只有1套云打包机,不管你的HBuilderX alpha版本多少,对应的打包机一定是最新的alpha版的客户端引擎。
HBuilderX正式版,有2套打包机,一个是最新正式版,一个是次新正式版。
中间的紧急更新版本没有独立打包机。
举个例子:
HBuilderX 有1.8.0、1.8.1、1.8.2、1.9.0、1.9.1这几个正式版。
那么当前可用的打包机有1.9.1和1.8.2这2台。(即每个大版本的最后一个版本)
除了这2个HBuilderX版本外,其他版本的云打包都指向最新的1.9.1版对应的打包机。(即只保留2个大版本的云打包机)

【详情请看】

https://ask.dcloud.net.cn/article/35845

一、HTML

HTML书写规范

H5新增标签

HTML渲染过程

二、CSS

css盒子模型概念

css弹性布局概念

三、JavaScript

事件模型

DOM2级事件模型

闭包

原型链

四、移动Web开发

常见的布局方案

移动端前端常见的触摸相关事件touch、tap、swipe等整理

移动端前端手势事件

移动端页面渲染优化

GPU渲染

GPU核心渲染过程

五、调试

常用的调试工具

Chrome控制台调试js使用

移动端测试

六、HTTP网络知识

常见的HTTP状态码

不同请求类型的区别

WEB缓存方案

——————————

牛客网(www.nowcoder.com)

- 专业IT笔试面试备考平台

- 最全C++JAVA前端等互联网技术求职题库

- 全面提升IT编程能力

- 程序员交友圣地

分享了一些Web前端的面试题,限时一小时,你看看自己能够答出多少道!

放心,这些面试题都是一些非常基础的知识,只要你在平时认真听课、学习了,那么这些面试题肯定不会难道你。

建议:虽然没有人监督你,但还是希望你不要去寻找答案,脱离网络,拿起纸笔,你试一下自己究竟能够答出个什么水平!有没有真本领?答案尽在这些面试题里!那么,你准备好了吗?OK!计时开始!

一、HTML常见题目

01、Doctype作用?严格模式与混杂模式如何区分?它们有何意义?

02、HTML5为什么只需要写?

03、行内元素有哪些?块级元素有哪些?空(void)元素有那些?

04、页面导入样式时,使用link和@import有什么区别?

05、介绍一下你对浏览器内核的理解?

06、常见的浏览器内核有哪些?

07、html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?

08、如何区分HTML和HTML5?

09、简述一下你对HTML语义化的理解?

10、HTML5的离线储存怎么使用,工作原理能不能解释一下?

二、CSS类的题目

01、介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?

02、CSS选择符有哪些?哪些属性可以继承?

03、CSS优先级算法如何计算?

04、CSS3新增伪类有那些?

05、如何居中p?如何居中一个浮动元素?如何让绝对定位的p居中?

06、display有哪些值?说明他们的作用。

07、position的值relative和absolute定位原点是?

08、CSS3有哪些新特性?

09、请解释一下CSS3的Flexbox(弹性盒布局模型),以及适用场景?

10、用纯CSS创建一个三角形的原理是什么?

三、Java类的题目

01、介绍Java的基本数据类型。

02、说说写Java的基本规范?

03、Java原型,原型链?有什么特点?

04、Java有几种类型的值?(堆:原始数据类型和栈:引用数据类型),你能画一下他们的内存图吗?

05、Java如何实现继承?

06、Java创建对象的几种方式?

07、Java作用链域?

08、谈谈This对象的理解。

09、eval是做什么的?

10、什么是window对象?什么是document对象?

OK,一小时到了,这个时间可不算短了,那么这些面试题你答出了几道呢?你写的答案正确了吗?现在你可以去翻看答案了。

如果你答出了绝大多数的或者是全部的题,并且答案也正确了,那么恭喜你……

你这时心里是不是有点小窃喜,认为自己有能力拿高薪了?虽然我也很想这么告诉你,但事实上这只能表明你的基础扎实,毕竟这只是一些非常基础的面试题。骚年~继续努力吧!

如果你只答出了小部分或者答出了大部分题但答案不正确,那么我只想说:“骚年,你的水平还差的远呢。”连这么基础的题你都打不出来,还想拿高薪?回去再练一段时间吧!

扎实的基础是你拿高薪的重要武器,如果你连基础都不扎实,那么想要攻克“高薪”这个厚实的堡垒,那只是痴人说梦罢了。

1.前端框架类问题,问你会不会用vue react啊

2.语言类,问你一些JavaScript语言的问题

3.项目经验,让你讲讲做过的项目,遇到的问题和解决之道

‘肆’ 前端面试时被问到前端布局,这个怎么回答

前端面试时被问到前端布局,这个怎么回答

你可以说,你对DIV+CSS布局的了解,不懂你先网络吧,我不可能一一说明的。
然后说,盒子模型的了解,还是那句,不懂你网络吧。
然后说,清除浮动的了解,还是那句,不懂你网络。
然后说,内联、内联块和内联元素的了解。
还有一些加分的,例如overflow的深入理解。overflow,如果理解得深入,对布局有一定的影响。
差不多就这样了,面试官也许问得更细,我就不清楚了。

前端面试,被问到vue的元件是怎么写,我怎么回答

vue框架中状态管理。在main.js引入store,注入。新建了一个目录store,….. export 。场景有:单页应用中,元件之间的状态。音乐播放、登入状态、加入购物车

web前端面试被问到为什么离职

实话实说,但是注意言辞,回答过程中千万不要抱怨、或是“吐槽”前东家的种种不好,请客观磨模悄地叙述与自己现在状态有哪些不相契合的点。
参考:原东家的发展空间达不到我的期望,我想要寻找新的机会挑战自己,同时创造更大的价值。
注意:避免假大空的官话,会让人觉得不真诚,另外,点到为止,无需细谈。

前端面试时问到:怎么解决浏览器相容性?该怎么回答比较码型好?

IE6/IE7对FE当然很不友好,但专业的FE决不应该因为这两个浏览器难处理就不处理了。假如使用者需要,我的目标是在力所能及的情况下为使用者提供最好的前端展现。相容性的问题从来都不只是IE6/7的问题,各个手机、浏览器、版本的相容性同样有各种各样的问题,比IE奇葩多了。我的经验是,每遇到一个坑爹问题,做这么几件事:确认触发场景,什么浏览器、版本、什么情况下会出现这个问题,做到稳定复现;找到问题原因,为什么会出现这样的问题(网上搜、自己琢磨甚至邮件问相应公司开发者等等都是可行的);确瞎渣定解决法,有没有什么框架级的解决法,总之是定规范,避免类似问题;比如不使用某些属性;用某种布局方法规避一些问题等等;有没有什么临时的法可以快速绕过去?不是每次都有时间搞框架级的法来着。怎么hack过去把这些都积累起来,就会有用处。不要想着IE6、7没了就不用考虑浏览器相容性问题,chrome/firefox、webkit的各种版本,手机的各种浏览器、各种终端都要处理浏览器相容性问题,恩,对,偶尔还有flash来着。相容各种终端、相容各种分辨率、相容浏览器都是相容性问题,这是FE的命,得认。抱着让使用者有最好体验的想法去做,收获更大。

前端面试被问到,vue实现资料双向系结,原理是啥

其原理大致是这样:
在资料渲染时使用prop渲染资料
将prop系结到子元件自身的资料上,修改资料时修改自身资料来替代prop
watch子元件自身资料的改变,触发事件通知父元件更改系结到prop的资料
这样做的好处是:父元件资料改变时,不会修改储存prop的子元件资料,只是以子元件资料为媒介,完成对prop的双向修改。

web前端面试怎么说

面试方法

  • 程式码编写笔试

  • 问答式

  • 过程遵循 STAR 面试法 。

    校招和社招的是不一样的,校招会更加关注基础知识,而社招会更加关注之前做过的专案情况。

    专案相关

    面试其实说白了就是根据一个人之前的经历,来判断出后续这人会做得怎样,如果你之前从没做成过一件事情,凭什么让别人相信你之后能做成呢?因此无论哪里的面试都会问你之前做过的专案

    专案可以是多人协助开发一个产品,也可以是自己个人做过的业余应用,只需介绍 1、2 个就够了,需要注意的是 1 + 1 != 2,做了两个平庸的专案不如做了一个好专案。

    一般来说会问如下几方面的问题:

  • 做过最满意的专案是什么?

  • 专案背景

  • 为什么要做这件事情?

  • 最终达到什么效果?

  • 你处于什么样的角色,起到了什么方面的作用?

  • 在专案中遇到什么技术问题?具体是如何解决的?

  • 如果再做这个专案,你会在哪些方面进行改善?

  • 技术相关 - 1 面

    技术一面主要判断对基础知识的掌握

  • 描述一个你遇到过的技术问题,你是如何解决的?

  • 这个问题很常见,有没有遇到过很不常见的问题?比如在网上根本搜不到解决方法的?

  • 是否有设计过通用的元件?

  • 请设计一个 Dialog(弹出层) / Suggestion(自动完成) / Slider(图片轮播) 等元件

  • 你会提供什么接口?

  • 呼叫过程是怎样的?可能会遇到什么细节问题?

  • 技术二面主要判断技术深度及广度

  • 你最擅长的技术是什么?

  • 你觉得你在这个技术上的水平到什么程度了?你觉得最高级别应该是怎样的?

  • 浏览器及效能

  • 这些优化方法背后的原理是什么?

  • 除了这些常规的,你还了解什么最新的方法么?

  • (这个问既考察技术深度又考察技术广度,其实要答好是相当难的,注意越详细越好)

  • 一个页面从输入 URL 到页面载入完的过程中都发生了什么事情?越详细越好

  • 谈一下你所知道的页面效能优化方法?

  • 如何分析页面效能?

  • 其它

  • 除了前端以外还了解什么其它技术么?

  • 对计算机基础的了解情况,比如常见资料结构、编译原理等

  • 兴趣相关

  • 最近在学什么?接下来半年你打算学习什么?

  • 做什么方面的事情最让你有成就感?需求设计?规划?具体开发?

  • 后续想做什么?3 年后你希望自己是什么水平?

  • 主动性相关

  • 在之前做过的专案中,有没有什么功能或改进点是由你提出来的?

  • 是否有参与和改进其它开源专案

页面前端面试经常问到的问题

其实,不管是什么样的面试形,问的问题都差不多,万变不离其宗,都有规律可寻。其实对所有的面试官而言,只有一个目的:在最短的时间里了解到你最多的资讯。想高效率的准备面试,先从这七个大方面着手吧!
一、基本情况
1、请用最简洁的语言描述您从前的工作经历和工作成果。
二、专业背景
您认为此工作岗位应当具备哪些素质?
三、工作模式
您平时习惯于单独工作还是团队工作?
四、价值取向
您对原来的单位和上司的看法如何?
五、资质特性
您如何描述自己的个性?
六、薪资待遇
是否方便告诉我您目前的待遇是多少?
七、背景调查
您是否介意我们通过您原来的单位迚行一些调查?
95%的面试基本上都离不开这些问题,当然还有可能问一些专业问题,我想如果你做过的话应该都不是什么难事,一般面试官都不会过多的问专业方面的问题的。以上资讯直接参考楚湘人才网面试宝典篇之化繁为简,把HR的上百道问题汇总成七大类和面试常问经典问题。更多更全面的面试资讯 面试技巧 面试问题请登陆楚湘人才网或关注微信公众平台:楚湘人才网

如何用ecshop修改页面前端布局

网站是在服务器上的庆,你朋友给你FTP或服务器的帐号密码没。如果没有的话要下,是在网站的档案目录里

web前端面试怎么介绍

  • 你的笔试题, 根据其做延伸.

  • 你的简历, 技术栈、工作外学习情况、专案经验. 第一页很重要, 最好都能掌握, 有亮点更好.

  • 面试官额外的延展的知识点, 随机问,看你运气和积累(一般会提及到 ES6、解决实际问题的方法、资料结构与算法都有可能).

  • 应对

  • 刷题, 各种基础题会帮你快速回忆起来, 比你看书快, 如果基础不好的话, 看书好好学学吧.

  • 简历上自己写的东西, 要能说出来.

  • 积累, 每次面试不成功就回来填坑吧, 还是有掌握不到位的. 我觉得能坚持下来的话, 找工作只是时间问题.

  • 据公司业务不同, 着重点不一样, 公司能把你简历挑出来, 就说明有用人单位感兴趣的部分.

  • 可能你写的是熟练使用 Vue, 公司也是这个技术栈.

  • 可能你知识写的全面, 公司想面面你实际掌握怎么样.

  • 可能你专案写的贴合用人单位需要, 比如都是做后台管理的.

  • 框架问题: (Vue 举例, 3框架实质问题差不多, 具体有些差异)

  • 封装过哪些元件?有自己写过 UI 元件吗?

  • 什么是 MVVM , 和 MVC 是什么区别, 原理是什么?

  • 父子元件怎么通讯的?

  • 兄弟元件怎么通讯的?

  • 生命周期有哪些, 怎么用?

  • Vue 全家桶都用过哪些?具体怎么用?

  • HTML5 + CSS3

  • 盒子模型

  • 如何给未知宽高的图片垂直居中对齐? 有几种方法?

  • 移动端的 rem 布局.

  • 前端可以做哪些优化, 或问你 SEO, 基本都问.

  • 清除浮动方式和原理, 基本都问. 几种方式? 原理? 为什么要用伪元素? 具体程式码怎么写,为什么这么写?

  • 清除浮动就会涉及到 BFC 的问题.

  • 给你实际页面例子, 让你口述布局或手写实现细节, 可以使用几种方法, 怎么写相容性好, 拓展性好.

  • 具体 API 哪个 CSS 版本的?

  • CSS3 新增了哪些 API?

  • 可能问你哪些 API 是 CSS 哪个版本的? 相容性怎么样.

  • CSS hack 是什么? 包含什么? 怎么处理相容性问题?

  • HTML5 新增了哪些 API? 哪些比较常用? 用来做什么? 实际怎么用?

  • cookie, session, localStrorage, sessionStorage 区别, 具体怎么用程式码去操作?

  • JavaScript

  • 变数宣告提升的问题.

  • 闭包的原理, 闭包的各种题, 基本都问.

  • DOM2 事件流, 冒泡和捕获问题?

  • this 指向问题, 一般都是在笔试题里, 拿着问你, 问的比较多.

  • call 和 apply 区别? 有的还会加问 bind?

  • 面向物件程式设计中的继承问题, 原型链问题在笔试题里比较常见.

  • jQuery API , 各种操作 DOM 用法, 还有一些新的 API, 这种在不用 3 大框架的公司会问的很详细.

  • 可能有些考算法结构的, 可以了解一下, 一般前端掌握的很少.

  • Ajax 基本都问, 问的细节可能不同, 比如 get 和 post 有什么区别?

  • 阵列的方法 - es6 以下基本都能熟练使用, 应该会加分不少

  • 字串的方法 - 拼接, 撷取, 带些正则

  • 阵列去重问的挺多的(解法很多, ES6 有很多简短写法)

  • ES6 的 Promise , 很多都会问. 如果公司用框架或者你写了, 还会问你 Class.

  • var, let, const区别, 问的多.

  • 栈和伫列结构, 有的会问.

  • 跨域问题: 同源策略, 解决方案, 解决原理(比如 jsonp 的原理), 这里都是高发区.

网页前端布局都用什么工具

一般应该都是用ps或者类似的作图软体先把图画出来,然后再手写程式码。
用ps等做出软体是方便作图后修改,因为不管是内部用还是给客户总是要多修改的

‘伍’ 前端布局————长度比例

这是一些不太惹人注意的知识,但是掌握了他会对你的前端不具有很大帮助。

在前端布局时,我们将长度单位分为两种,一种是绝对单位,一种是相对单位。

上述这些就是绝对单位,这些单位在现实中有绝对定义,不会随着你的布局平台大小比例变化而变化 (ps:1inch = 2.54cm)

没错,你没有看错,px是一个相对单位,px是Pixel的缩写,代表的是图像上最小的一个点的大小,他会因为图像大小的不同而改变, 比如1024x1024的一张图,当他的长宽扩大一倍,而分辨率不变(即1024x1024),那么他的每个像素的大小都将扩大一倍

通常我们所指的4.5寸、5,0寸这些手机屏幕的大小指的是手机屏幕对角线的距离 (只包括可显示部分,边框部分不包括)

我们在开发移动设备的网站时,最常见的的一个动作就是把下面这个东西复制到我们的head标签中:↓↓↓

该meta标签的作用是让当前viewport的宽度等于设备的宽度, 同时不允许用户手动缩放
(ps:移动端下定宽写法:viewport width=定值(设计稿宽),我们不设置缩放相关属性,移动端浏览器会自动缩放页面以适配屏幕)

rem 和 em 单位是由浏览器基于你的设计中的字体大小计算得到的像素值。em 单位基于使用他们的元素的字体大小。rem 单位基于 html 元素的字体大小。em 单位可能受任何继承的父元素字体大小影响。rem 单位可以从浏览器字体设置中继承字体大小。
(ps:一般情况下,不要给字体大小用rem)

‘陆’ 前端设计头部布局,下图该怎么进行头部布局

上+下+中间突出部分绝对定位

‘柒’ 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[1]


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前端工程师面试题,求解答。

这样的布局用绝对定位实现最合适,ABC的外层用相对定位,里边各列用绝对定位就可以。至于CBA且B宽度自适应,还是用绝对定位,但只定位C,A分部到两侧,中间的列margin设成左右列的宽度就可以。