我是靠谱客的博主 忧心蛋挞,最近开发中收集的这篇文章主要介绍Vue、JS、ES6等,面试题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、什么叫优雅降级和渐进增强

渐进增强 :

针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。

优雅降级 :

一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。

区别:

a. 优雅降级是从复杂的现状开始,并试图减少用户体验的供给;

b. 渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要;

c. 降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带;

二、1rem、1em、1vh、1px、各自代表的含义

1、1rem
相对于页面的大小,通常的做法是给html根元素设置一个字大小,其他元素的长度相对于根元素的大小。
2、1em:
相对于父元素的字体大小
元素的margin/padding/width/height则相对于该元素的font-size大小
3、1vh/1vw:
视窗的宽度/高度。100vh/100vw相当于整个视窗的宽高。
1vh=视窗高度的1%;1vw=视窗宽度的1%
4、1px:
像素:相对于屏幕分辨率而言
一般电脑分辨率是1920 * 1024:即1920个像素 * 1024个像素

三、请说一下什么是函数的默认参数

所谓的函数的默认参数其实指的就是当没有给函数参数进行传参的时候,可以给函数的形参制定默认值

四、说一下从输入url到页面加载完成中间发生了什么?

1. DNS域名解析
2. 客户端和服务器建立TCP连接
3. 客户端发送 HTTP请求
4. 服务器处理请求返回HTTP响应
5. 浏览器解析和渲染页面
6. 关闭连接

1、浏览器的地址栏输入URL并按下回车。
2、浏览器查找当前URL是否存在缓存,并比较缓存是否过期。
3、DNS解析URL对应的IP。
4、根据IP建立TCP连接(三次握手)。
5、HTTP发起请求。
6、服务器处理请求,浏览器接收HTTP响应。
7、渲染页面,构建DOM树。
8、关闭TCP连接(四次挥手)。

一、说一下从输入url到页面加载完成中间发生了什么?

1、浏览器的地址栏输入URL并按下回车。
2、浏览器查找当前URL是否存在缓存,并比较缓存是否过期。
3、DNS解析URL对应的IP。
4、根据IP建立TCP连接(三次握手)。
5、HTTP发起请求。
6、服务器处理请求,浏览器接收HTTP响应。
7、渲染页面,构建DOM树。
8、关闭TCP连接(四次挥手)。

二、JQ的选择器

1、基本选择器:直接根据id、css类名、元素名返回匹配的dom元素。

2、层次选择器:也叫做路径选择器,可以根据路径层次来选择相应的DOM元素。

3、过滤选择器:在前面的基础上过滤相关条件,得到匹配的dom元素。

三、小程序双向数据绑定和vue的数据绑定有什么区别

区别:
大体上区别不大,绑定事件不同,以及获取value值的具体方式不同,以及在小程序中设置data中的数据,需要调用 this.setData方法进行设置

在vue中进行数据绑定后,当数据修改了会直接更新到视图上,但是在小程序中呢,data数据修改是不会直接同步到,必须调用this.setData()这个方法

四、布局的几种方式

1、常规流布局(文档流、瀑布流等):
所有元素在默认情况下都是使用常规流布局
块盒独占一行,行盒可以多个水平排列

2、浮动
所以浮动的元素,都会变成块盒
浮动的元素会脱离文档流(可以理解为常规流是在地面上,而浮动的元素都是在空中)
浮动元素的包含块为包含块的内容盒
浮动的元素,它的包含块(父元素)自动计算高度时不会考虑到浮动元素(这就是我们常说的高度塌陷问题)
如果常规流的块盒在浮动元素之前,那么在后面的浮动元素会自动避开常规流块盒,而如果是行盒的话则不避开(如果是左浮动,它就会直接去讲行盒元素挤开)
如果浮动元素在前,那么在后面的常规流盒子将会被浮动元素覆盖(因为浮动了脱离了文档流,就是没有在文档流的位子)
如:我们在上面的代码后面加上

3、定位(盒子的移动不会对其他元素造成影响)
相对定位relative:不脱离文档流,保留原来的位置(用来微调盒子的位置,也可以当绝对定位的带头大哥)
绝对定位absolute:脱离文档里
固定定位fixed:脱离文档流(以视口为包含块,会随着视口的移动而移动)
默认值static
绝对定位:以第一个非static元素为包含块

五、vue钩子函数的解析流程

1、beforeCreate
官方描述:在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用

理解:页面还未创建,this、data、method、watch这些中的元素或者方法并未出现,不能进行调用

2、created
官方描述:在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),property 和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el property 目前尚不可用

理解:可以进行this、data、method以及watch的配置,可以调用元素进行数据处理,但是页面并未渲染完成(数据并未填入)

3、beforeMounte
官方描述:在挂载开始之前被调用:相关的 render 函数首次被调用

该钩子在服务器端渲染期间不被调用

理解:页面中的虚拟dom创建完成,可以使用createElement创建虚拟的dom元素

4、mounted
官方描述:实例被挂载后调用,这时 el 被新创建的 vm.e l 替 换 了 。 如 果 根 实 例 挂 载 到 了 一 个 文 档 内 的 元 素 上 , 当 m o u n t e d 被 调 用 时 v m . el 替换了。如果根实例挂载到了一个文档内的元素上,当 mounted 被调用时 vm.el替换了。如果根实例挂载到了一个文档内的元素上,当mounted被调用时vm.el 也在文档内。

注意 mounted 不会保证所有的子组件也都一起被挂载。如果你希望等到整个视图都渲染完毕,可以在 mounted 内部使用 vm.$nextTick

理解:dom元素挂载完毕,可以对页面上的dom元素进行操作,页面上出现数据

vm.$nextTick:

官方描述&#

最后

以上就是忧心蛋挞为你收集整理的Vue、JS、ES6等,面试题的全部内容,希望文章能够帮你解决Vue、JS、ES6等,面试题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部