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完全不一样