0
点赞
收藏
分享

微信扫一扫

Web 前端基础知识面试大全 二

雪域迷影 2022-04-13 阅读 95

Web 前端基础知识面试大全 一 也是我主页里面,下面的链接地址。

Web 前端基础知识面试大全_studyer网的博客-CSDN博客

有一了为什么还要写这个二呢?因为有的面试时候只需要一些大概的内容不用计那么多。所以这里的面试大全主要目的是言简意赅,让面试的人知道你会即可。至于原理性的东西可以自己多去研究研究。这里以言简意赅为主。

目录

JS部分

一、 js的数据类型有哪些?

二、BFC的理解

 三、[‘1‘,‘2‘,‘3‘].map(parseInt)的返回值是什么?

Vue部分 

一、 为什么 data 是函数?

 二、阐述一下vue的双向绑定原理?

三、key的作用


JS部分

一、 js的数据类型有哪些?

  • 基本数据类型

number、string、boolen、null、undefined

示例解析:

var a=10;
var b=a;
b=20;
console.log(a);  //10

b只是保存a赋值的一个副本,所以b的改变不影响a的值。 

  • 引用数据类型 

也就是对象类型 object type  比如:object array funciton data等

var a={};
var b={};
var c=a;
console.log(a===b);  //false
a.name='jack';
a.say= ()=>console.log('hi jack')
console.log( c.name )  //jack
console.log( c.say() )  // hi jack

这些数据是保存在堆内存地址内。c 和 a 的指针都是指向 保存 a.name 属性的内存地址。

二、BFC的理解

详细讲解参照【web前端面试必问6】什么是BFC?_studyer网的博客-CSDN博客 

 三、[‘1‘,‘2‘,‘3‘].map(parseInt)的返回值是什么?

具体详细解决在链接处

【web前端面试题必问5】[‘1‘,‘2‘,‘3‘].map(parseInt)的返回值是什么?_studyer网的博客-CSDN博客

Vue部分 

一、 为什么 data 是函数?

如果 data 是对象,因为引用data数据的可能有很多个,如果有一个改变data的值,那么其他引用data值得都要发生改变。

functon MyComponent(){};
MyComponent.prototype.data={
  age=18;
}

var jack = new MyComponent();
var tony = new MyComponent();

console.log(jack.data.age === tony.data.age) //true

jack.data.age = 32;

console.log(jack.data.age); //32
console.log(tony.data.age); //32

如果data 是函数,则就可以避免这个问题了。如果改变一个实例的data属性的值,那么不会影响到另外一个实例上的data的值。

functon MyComponent(){
  this.data = this.data()
};
MyComponent.prototype.data=function(){
  return {
    age=18;
  }
}

var jack = new MyComponent();
var tony = new MyComponent();

console.log(jack.data.age === tony.data.age) //true

jack.data.age = 32;

console.log(jack.data.age); //32
console.log(tony.data.age); //18

 二、阐述一下vue的双向绑定原理?

三、key的作用

主要是为了更高效的对比虚拟dom。

vue在执行diff算法比较两个虚拟dom节点是否是相同节点时,会先看key是否相同,再看标签类型等是否相同

实际开发过程中渲染一组列表时,key必须设置(节省性能),且应该尽量避免使用索引作为key(有的时候列表发生排序),这样容易导致一些隐藏bug

举报

相关推荐

0 条评论