2019前端面试大厂面试题

目录

    • 为什么使用v-for时需要使用key,且key值不能为index
    • 怎么理解v-model的语法糖
    • rem是如何自适应布局的 ?
    • 怎么判断undefined ,null,NaN类型
    • prototype和_proto_的区别

后面题目是我从各大厂面试题总结的一些经验

为什么使用v-for时需要使用key,且key值不能为index

需要key的原因是;使用v-for更新已经渲染的元素列表时,默认采用“就地复用“策略,列表中数据发生改变时,此时的key就开始工作,根据key值去判断某个值是否被修改,如果修改了的话,则重新渲染这一项,否则复用之前的元素

根据这个原因,我们可以知道,key值如果为index时,再如果添加数据是在最后一条,但如果是插入在中间,则包括插入这一条到后面的数据,index都会发生改变,则插入这一条到后面的数据列都会重新发生渲染。建议的是使用唯一的id值,进行作为key值

怎么理解v-model的语法糖

下面两句是等价的

<input v-model="message">
<input v-bind:value="message" v-on:input="message = $event.target.value" />

其实v-model就是v-bind和v-on的语法糖。

rem是如何自适应布局的 ?

rem(font size of the root element)是指相对于根元素的字体大小的单位为,
em(font size of the element)是指相对于父元素的字体大小的单位,
rem能等比例适配所的屏幕。
网页中的根元素是指得是html我们通过设置html的字体大小就可以控制rem的大小:eg:

html{
    font-size:20px;
}
.btn {
    width: 6rem;
    height: 3rem;
    line-height: 3rem;
    font-size: 1.2rem;
    display: inline-block;
    background: #06c;
    color: #fff;
    border-radius: .5rem;
    text-decoration: none;
    text-align: center;    
}

此时的width = 6rem*20px =120px;

推算出:

10px = 1rem 在根元素(font-size = 10px的时候);

20px = 1rem 在根元素(font-size = 20px的时候);

40px = 1rem 在根元素(font-size = 40px的时候);

不同分辨率下的font-size的值:
2019前端面试大厂面试题_第1张图片

怎么判断undefined ,null,NaN类型

1.判断undefined:
*typeof(temp)== “underfined”
2.判断null
!t2mp&& typeof(tmp)!=“underfined”&&temp!=0
3.判断NaN
isNaN(temp)

prototype和_proto_的区别

prototype是函数的一个属性,_proto_是对象的内置属性

var Person = function(){};
var p = new Person();

new的过程拆分成以下三步:
(1) var p={}; 也就是说,初始化一个对象p
(2) p.proto = Person.prototype;
(3) Person.call§; 也就是说构造p,也可以称之为初始化p

你可能感兴趣的:(前端,面试题,前端,大厂)