Web 前端基础知识面试大全 一 也是我主页里面,下面的链接地址。
Web 前端基础知识面试大全_studyer网的博客-CSDN博客
有一了为什么还要写这个二呢?因为有的面试时候只需要一些大概的内容不用计那么多。所以这里的面试大全主要目的是言简意赅,让面试的人知道你会即可。至于原理性的东西可以自己多去研究研究。这里以言简意赅为主。
目录
三、[‘1‘,‘2‘,‘3‘].map(parseInt)的返回值是什么?
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