经过了三天的js基础的讲解,我们不可能面面俱到,因此有了这篇附加的博文,主要讲一些我认为面试题和额外的补充知识点
面试过程中常见的题型
- js原型
- 每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性,也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和方法。
- js闭包?
- 闭包,其实是指有权访问另一个函数作用域中变量的函数。
- js数组主要有哪些方法
- shift()
- unshift()
- pop()
- push()
- concat()
- splice()
- reverse()
- sort()
- slice()
- js迭代的方法
- every()
- filter()
- forEach()
- map()
- some()
- js去重和排序
- 去重(随便写的,可能性能上有待优化)
var array = ['a','b','c','a','d','cd'];
function check(num,arr){
var flag = false;
for(var i=0;i<arr.length;i++){
if(arr[i] === num){
flag = true;
break;
}
}
return flag;
}
function removeDouble(arr){
var _temp = [],i=0;
arr.forEach(function(item,index){
if(i === 0){
_temp[i++] = item;
}else if(!check(item,_temp)){
_temp[i++] = item;
}
});
return _temp;
}
console.log(removeDouble(array));
- 排序
var arr = [2,9,7,6,9,3,4,1];
arr.sort(function(a,b){
return a>b?1:-1;
})
console.log(arr);
- 字符串的方法substring和substr区别
- substring(a,b)和substr(a,b) 参数1都表示截取子串的起始位置,前者参数2表示子串最后一个字符的后面字符的下标,后者参数2表示返回的字符个数。
- 正则表达式(可查看相关文档这里就不赘述了)
- 常见的Date方法
var date = new Date();
date.getTime();
date.getYear();
date.getFullYear();
date.getMonth();
date.getDate();
date.getDay();
date.getHours();
date.getMinutes();
date.getSeconds();
date.getMilliseconds();