前段时间公司需要招人,然后给整理了一套面试题,并没有太多死记硬背的内容,其实我比较反对那种考死记硬背知识点的面试题,所以我就自己整理了一套,前端基本每个项目都会用到的知识点
1.计算结果
var a=2; var b=’2a’; var c= 1;
Console.log(a++); //2
Console.log(++a); //3
Console.log(parseInt(b)); //2
Console.log(a+a+’abc’+’d’); //4abcd
Console.lgo(‘ab’ + a + c); //"ab21"
2.简单说一下v-if和v-show的区别
v-if是根据后面数据的真假值判断直接从Dom树上删除或重建元素节点。 v-show只是在修改元素的css样式,也就是display的属性值,元素始终在Dom树上。
3.为何 v-for 要用 key?
1.必须要用 key, 而且不能用 index 和 random,key是vue中vnode的唯一标记,通过这个key,我们的diff操作可以更准确,更快速
2.在 diff 算法中用 tag 和 key来判断,是否是sameNode
3.可以减少渲染次数,提高渲染性能
4.如何让CSS只在当前组件中起作用?
<style scoped></style>
5.vue-router 有几种传参方式?分别如何接受参数?
使用Params: const p=this.$router.params
使用Query: const p=this.$router.query
6.如何合并两个数组
1.var c = a.concat(b); 2.for循环 3.a.push.apply(a,b);
7.原生js如何获取DOM
let box= document.getElementById("box");
let boxCollection= document.getElementsByClassName("box");
let pCollection= document.getElementsByTagName("p");
let userInput= document.getElementsByName("user");
let box= document.querySelector("#box");
let boxes= document.querySelectorAll(".box");
8.如有一个组件…/components/login.vue,请问如何将它引用到index.vue中。
import login from "../components/login.vue";
components: { login }
9.写一个定时器,五秒执行一次打印,执行2次后,取消定时器
var a=0;
var time = setInterval(function(){
a++;
If(a=2){ clearInterval(time) };
},5000)
10.写出系列代码运行的结果
(1)结果:"test" > "test" > "test" > 123 > 321
function test(){
var aa = 0;
var testSet = setInterval(function(){
aa++;
console.log(123);
if(aa<2){
clearInterval(testSet);
}
},20);
var testSet1 = setTimeout(function(){
console.log(321)
},1000);
for(var i=0;i<3;i++){
console.log('test');
}
}
test();
(2)结果:4 > 2 > 1
function Foo() {
Foo.a = function() {
console.log(1)
}
this.a = function() {
console.log(2)
}
}
Foo.prototype.a = function() {
console.log(3)
}
Foo.a = function() {
console.log(4)
};
Foo.a();
let obj = new Foo();
obj.a();
Foo.a();
有些人会写但是你叫他说出个所以然来很难办,我在工作中就遇到了不少这样的人,无论是前端还是后端,技术挺好的,但是要是非得来做那种面试题比较难受。