vue面试题,面试总结(答案来自各个搜索网站以及本人总结)

本文总结了Vue面试中的常见问题,涵盖了数据存储(如Vuex、localStorage、sessionStorage)、样式预处理器(Sass、Less的区别)、Axios的作用、前后端交互方式、CSS单位(rem、em、px的区别)以及Vue生命周期(created与mounted的差异)等核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.vue数据存储都有哪些方式?

        a、vuex

        b、localStorage

        c、sessionStorage

2.sass,css,less区别

答:a.编译环境不一样

Sass是在服务端处理的,以前是Ruby,现在是Dart-Sass或Node-Sass,而Less是需要引入less.js来处理Less代码输出CSS到浏览器,也可以在开发服务器将Less语法编译成css文件,输出CSS文件到生产包目录,有npm less, Less.app、SimpleLess、CodeKit.app这样的工具,也有在线编译地址。

        b.变量符不一样,Less是@,而Scss是$。

        c.输出设置,Less没有输出设置,Sass提供4中输出选项:nested, compact, compressed 和 expanded。

输出样式的风格可以有四种选择,默认为nested

  • nested:嵌套缩进的css代码
  • expanded:展开的多行css代码
  • compact:简洁格式的css代码
  • compressed:压缩后的css代码

        d.引用外部CSS文件

scss@import引用的外部文件如果不想编译时多生成同名的.css文件,命名必须以_开头, 文件名如果以下划线_开头的话,Sass会认为该文件是一个引用文件,不会将其编译为同名css文件.

3.Axios是干嘛的?

答:axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征:

从浏览器中创建 XMLHttpRequest
从 node.js 发出 http 请求
支持 Promise API
拦截请求和响应
转换请求和响应数据
取消请求
自动转换JSON数据
客户端支持防止 CSRF/XSRF

4.前后端交互方式?

a、利用cookie

b、利用Ajax

c、jsonp是前后端结合跨域方式,因为前段请求到数据需要在回调函数中使用,所以后端得将数据放回到回调函数中

4.rem和em、px的区别?

答:在css中单位长度用的最多的是px、em、rem,这三个的区别是:

一、px是固定的像素,一旦设置了就无法因为适应页面大小而改变。

二、em和rem相对于px更具有灵活性,他们是相对长度单位,意思是长度不是定死了的,更适用于响应式布局。

三、em是相对于其父元素来设置字体大小的,一般都是以<body>的“font-size”为基准。这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小。而Rem是相对于根元素<html>,这样就意味着,我们只需要在根元素确定一个参考值。

总之:对于em和rem的区别一句话概括:

em相对于父元素,rem相对于根元素

5.Slice split splice区别?

答:slice(数组)

用法:array.slice(start,end)

解释:该方法是对数组进行部分截取,并返回一个数组副本;参数start是截取的开始数组索引,end参数等于你要取的最后一个字符的位置值加上1(可选)

slice(字符串)

用法:string.slice(start,end)

解释:slice方法复制string的一部分来构造一个新的字符串,用法与参数匀和数组的slice方法一样;end参数等于你要取的最后一个字符的位置值加上1

splice(数组)

用法:array.splice(start,deleteCount,item...)

解释:splice方法从array中移除一个或多个数组,并用新的item替换它们。参数start是从数组array中移除元素的开始位置。参数deleteCount是要移除的元素的个数。

split(字符串)

用法:string.split(separator,limit)

解释:split方法把这个string分割成片段来创建一个字符串数组。可选参数limit可以限制被分割的片段数量。separator参数可以是一个字符串或一个正则表达式。如果

separator是一个空字符,会返回一个单字符的数组。

6.Created 和mounted区别

created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。

mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。

7.foreach和map的区别?

都是可以遍历数组;每一次执行匿名函数都支持三个参数(当前项,当前项的索引,原始数组);匿名函数中的this都是指window

区别:1.foreach没有返回值,只是遍历数组中每一项,不能直接修改原来数组,但是可以通过索引去修改原数组

2.map有返回值,可以return出来,return的是什么相当于吧这一项变为什么。不会影响原来数组,相当于是把原数组克隆了一份然后在进行修改

8.let和var的区别?

答:声明后未赋值,两个log出来都是undefined;

未声明直接log出来,后面再声明,var输出undefined,let直接报错

重复声明同一个变量,var是覆盖,以最后为准。let是直接报错

变量作用范围,声明变量并且赋值后,中间有别的作用域再次声明且赋值,var以最后为准。let是以log和那一次声明在同一个作用域为准

9.es6的新特性(答案只有部分)

a.let和const。let声明变量,const声明常亮

b.解构赋值

c.模板字符串 ``反引号内容中可以直接出现换行,也可以直接进行变量拼接

d.简化对象写法。允许在大括号里面直接写入变量和函数作为对象的属性和方法(前提是属性名和变量名相同)

例如:let name = 'liming'

           let tell = function(){

                   console.log('aaaa')

           }

           const liming = {

                   name,

                   tell

           }

10.块标签和行内标签?

 截图来自大神回答CSS标签分类(块元素 行内元素 行内块元素)_makelucky的博客-优快云博客_行内块元素有哪些标签

11.display: none与visibility: hidden的区别

都是隐藏元素,但是display:none不占位,后者是需要占位的

1、visibility具有继承性,给父元素设置visibility:hidden;子元素也会继承这个属性。但是如果重新给子元素设置visibility: visible,则子元素又会显示出来。这个和display: none有着质的区别

2、visibility: hidden不会影响计数器的计数,visibility: hidden虽然让一个元素不见了,但是其计数器仍在运行。这和display: none完全不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值