JS面试题总结:
1、数组常见操作:
(1)shift():把数组的第一个元素删除,并返回第一个元素的值。
(2)unshift():像数组开头添加一个或更多元素。
(3)push():向数组末尾添加一个或更多元素。
(4)pop():删除数组最后一个元素。
(5)concat():连接两个或更多的数组,并返回结果。
(6) join():把数组中的所有元素放入一个字符串。
arr.join() 输出q,j,m
arr.join(".") 输出q.j.m
(7)reverse():颠倒数组中元素的顺序
(8)slice():从某个已有的数组返回指定的元素,即返回一个子数组。
slice(start,end);start数组起始下标,end数组的结束下标
(9)sort():对数组进行排序,(参数为function)
对数字字符串排序智慧按第一个字符排
arr=["10","5","40","25","100","1"];
arr.sort();
输出===1,10,100,25,40,5 (显然这样的结果是错的)
再进行处理
arr.sort((a,b)=>return a-b)
(10)splice():它既可以删除也可以向数组添加,主要取决于它的参数。
splice(index,num,item...);
index:数组下标的起始位置
num:删除的数量
item...:添加的元素,可以多个
(11)some():检测数组中元素是否满足指定条件,返回值为bool,(数组任一元素满足条件即可)
(12)filter():检测数组中元素是否满足指定条件,返回值为数组。(数组任一元素满足条件即可)
(13)every():检测数组中所有元素是否满足指定条件,返回值为true;
2、JS的全局函数及全局属性:
3、JS的基本数据类型:
Undefined、Null、Boolean、Number和String
4、JS的数组去重方法:
(1)ES6 Set去重
const set=new Set(["a","a","b","b"]);
const arr=[...set]
console.log(arr) //["a","b"]
(2)indexof
var arr=(["1","2","2","1"]);
var newArr=[];
for(var i=0;i<arr.length;i++){
if(newArr.indexof(arr[i])==-1){
newArr.push(arr[i]);
}
}
(3)includes去重
var arr=(["1","2","2","1"]);
var newArr=[];
for(var i=0;i<arr.length;i++){
if(!newArr.includes(arr[i]){
newArr.push(arr[i]);
}
}
(4)splice去重
var arr=(["1","2","2","1"]);
var newArr=[];
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]=arr[j]){
arr.splice(j,1);
j--;
}
}
}
4、函数内部this的指向:
未完,待续…