面试总结

let a = [1, 2 ,3]
let b = a;
b[2] = 9
问:让b改变,a不改变
答案: 深拷贝

v-if v-show 区别

v-if 直接操作dom节点是否在dom树中,v-show控制css的display属性

兄弟组件间通信

利用父页面作为中介用$emit传递;
bus

缓存有几种以及区别

localStore,cookie,session。
localStore: 5M,不可跨域,需要手动删除,不然永久保存
cookie: 4k,可跨域
session:服务器端用,时效短
indexDB

冒泡排序

、、、

var a = [1, 3, 2, 5, 4]
function fun4 (arr) {
  for (var i = 0; i < arr.length; i++) {
    for (var j = 0; j < arr.length - 1 - i; j++) {
      if(arr[i] > arr[i+1]) {
        var temp = arr[i];
        arr[i] = arr[i + 1];
        arr[i + 1] = temp;
      }
     
    }
  }
  return arr;
}

、、、

行、块元素,水平垂直居中

https://blog.csdn.net/sinat_17775997/article/details/77547481?utm_source=blogxgwz2

清除浮动

https://www.cnblogs.com/nxl0908/p/7245460.html

sass 使用

嵌套、$变量、@import、定义混合指令 @mixin且@include引用混合样式

描述队列和栈

http://www.cnblogs.com/zhangfuxiao/p/9416272.html

对象的深浅拷贝

深拷贝

	function cloneObject (obj) {
	     var newObj = {}  //如果不是引用类型,直接返回
	      if (typeof (obj) !== 'object') {
	          return obj
	     }
	     // 如果是引用类型,遍历属性
	    else{
	        for (var attr in obj) {
	        // 如果某个属性还是引用类型,递归调用
	        newObj[attr] = cloneObject(obj[attr])
	                }
	       }
	    return newObj
	}
浅拷贝就是赋值

两栏布局做定宽右自适应

https://blog.csdn.net/jiang_my/article/details/74219777

实现三个盒子平分浏览器

1.浮动 + 按百分比33.3%;
2. 父级display:table + 子级table-cell
3. 父级display:flex + 子级flex: 1

数组去重

https://mp.weixin.qq.com/s/LgiGv8B-U_GRLqUps_BIpg

对象中的key是否可变

可以

兼容性问题

https://blog.csdn.net/wendy0818/article/details/53575132

vue路由拦截

beforeEach(to,from,next)
afterEach(to,from,next)

vue生命周期

beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
beforeDestroy
destroyed

原生js实现双向绑定

https://www.jianshu.com/p/e8df6e3f6e34

遍历二叉树
用过哪些打包构建工具,用到哪些功能

webpack ,gulp

关于 vue 不能 watch 数组变化 和 对象变化的解决方案参考文章
  • vue无法监听数组变化的情况

    • 利用索引直接设置数组时,eg:arr[2] = newValue
    • 修改数组长度时,eg:arr.length = newLength
  • vue无法监听数据变化的解决方案

    • 修改数组时对该数组使用this.$set(arr, index, newVal);
    • 使用splice方法
    • 用临时变量直接赋值,原理与直接赋值数组一样
      data () {
        return {
          watchArr: [{
            name: 'krry',
          }],
        };
      },
      watchArr (newVal) {
        console.log('监听:' + newVal);
      },
      created () {
        setTimeout(() => {
          let temp = [...this.watchArr];
          temp[0] = {
            name: 'xiaoyue',
          };
          this.watchArr = temp;
        }, 1000);
      },
      
  • vue不能监听对象属性的添加、修改、删除

  • vue监听对象属性的解决方法

    • 使用 this.$set(object, key, value)
    • 使用Object.assign(),直接赋值的原理监听(最推荐)
      this.watchObj = Object.assign({}, this.watchObj, {
        name: 'xiaoyue',
        age: 15,
      });
      
vue怎样缓存一个组件,不被销毁
  • keep-alive
vue-router传值有几种方式,分别是什么,怎么获取传过来的参数
vue-router路由的钩子函数以及用途
vue内置组件
  • component
  • transition
  • transition-group
  • keep-alive
  • slot
flex布局[参考地址](https://blog.csdn.net/weixin_42554311/article/details/88180738)
弹框水平垂直定位
ES6
- promise 和 ajax 的优缺点
- 赋值数组
- 解构赋值
- es6新增特性
同一个页面多个vue组件请求同一个接口如何优化
vue生命周期
对象和数组拷贝 为什么 怎么拷贝
数组转字符串split
http状态码
数组如何变化vue监听不到
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值