腾讯瑞德铭面试部分汇总
1.画一条0.5px 线
Transform:scale(0.5,0.5);—方式1
.boxshadow{
Height:1px;
Background:none;
Box-shadow:0 0.5px 0 #000
}—方式2
3.箭头函数:
function aa = ()=>{} 形参只有一个可省略(),只有一个表达式可以直接return;箭头函数中的 this 始终指向箭头函数定义时离 this 最近的一个函数,如果没有最近的函数就指向 window。
4.Promise:
pedding,fulfilled,Rejected
5.for循环
(break:退出所有的循环 continue:跳出当前的一次循环)0-3
var setTIMEout—>3, 3 ,3 let —0,1,2(var存在变量提升)
Var setTimeout 打印0,1,2 —>使用闭包
6.省略号–/ɪˈlɪpsɪs/
7.json.parse(json.stringify(obj)
缺点:
有时间会将时间对象转为字符串格式
Function 、undefined–序列化之后会将function undefined丢失
NaN,infinity,-infinity —序列化之后会变成Null;
对象有构造函数,—会丢失constructor
8.NextTick()
监听DOM完成更新的时机,本质就是对js 进行了eventloop;
数据发生改变,vue开启一个异步更新队列,视图需要等队列中的数据完成之后,再统一进行更新;
核心:利用promise,setTimeout,setImmediate,MutationObserver的原生js方法来模拟对应的微任务和宏任务的实现。
实现:dom1更新了,dom2需要从dom1中获取数据,dom2没有更新,这种情况下可以使用nextTick()
9.Vue修饰符
.stop 阻止事件继续传播
.prevent 阻止标签默认行为
.capture 使用事件捕获模式,即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理
.self 只当在 event.target 是当前元素自身时触发处理函数
.once 事件将只会触发一次
.passive 告诉浏览器你不想阻止事件的默认行为
<input v-model.lazy="msg">
<input v-model.number="msg">
<input v-model.trim="msg">
键盘修饰符: @keyup
<input @keyup.enter="submit">
!! 对于elementUI的input,我们需要在后面加上.native, 因为elementUI对input进行了封装,原生的事件不起作用。
10.vue常用指令有:
v-html指令、v-show指令、v-if指令、v-else指令、v-else-if指令、v-for指令、v-text指令、v-bind指令、v-on指令、v-model指令等等。
11.css中一共有三种手段,使一个元素脱离标准文档流:
(1)浮动 float
(2)绝对定位 position :absolute
(3)固定定位 fixed
Ps:relative 相对定位 —不能脱离文档流
12.Keep-alive
作用: 在组件切换过程中将状态保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验性。
生命周期:+activated ==== keep-alive 组件激活时调用
+deactivated === keep-alived 停止调用的时候
当引入keep-alive 的时候,页面第一次进入,钩子的触发顺序 created -> mounted -> activated,退出时触发 deactivated。
当再次进入(前进或者后退)时,只触发 activated。
13.event-loop讲解
js 单线程; 同步任务—然后异步任务(然后微任务—>宏任务)