(一)js数据类型有什么
1-undefined 2-boolean 3-string 4-number 5-object 6-Null
(二)数组常用的方法?
不要直接上来就是push,shift,pop在这里可以说一些比较别人不经常说的,比方说:splice,join,map,filter等等,还有es6的find,findIndex
(三)字符串常用的方法
split(),substring(),substr(),concat()等方法
(四)数组方法那些会改变原素组
01-shift:将第一个元素删除并且返回删除元素,空即为undefined
02-unshift:向数组开头添加元素,并返回新的长度
03-pop:删除最后一个并返回删除的元素
04-push:向数组末尾添加元素,并返回新的长度
05-reverse:颠倒数组顺序
06-sort:对数组排序
07-splice:splice(start,length,item)删,增,替换数组元素,返回被删除数组,无删除则不返回
(五)什么是事件委托?
事件委托就是利用事件冒泡,只指定一个父类元素绑定事件,就可以管理所有子类元素
(六)事件委托的实际运用场景是什么?
01-Ajax局部刷新区域
02-绑定层级比较低的时候,不在body上绑定
03-定次数较少的时候,把多个事件绑定合并到一次事件委托中,由这个事件委托的回调,来进行分发
(七)怎么理解js的单线程问题?
01-js本身是单线程的,浏览器有个概念叫执行队列
02-js需要先将自己加入到执行队列中由浏览器来解析,但是执行队列时允许部分元素或者说是对象插队的,比如ajax。于是就形成了js的单线程,但是看起来像是多线程的
03-这里一般会出一些同步和异步的面试题 ->比如 如下Dome:
console.log(111);setTimeout(function(){console.log(222)},1000); console.log(333) 这段代码的结果,为什么结果是这样子的,这段代码的结果是,111,333,222.如果要改成按照顺序执行,111,222,333怎么改进,这个思路是Promise()
(八)数组去重?
01-es5->这个实现方法很多,我列举其中的2种->
(01)
第一种:var arr1 = [1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5];
function rep(arr) {
var ret = [];
for (var i = 0; i <arr1.length; i++) {
if (ret.indexOf(arr1[i]) ==-1) {
ret.push(arr1[i]);
}
}
return ret;
}
var result = rep(arr1);
console.log(result)
(2)
第二种:var arr = [1, 2, 3, 4, 5, 1, 2, 3];
var r = arr.filter(function (element, index, self) {
return self.indexOf(element) === index;
});
console.log(r);
02-es6->var arr =Array.from( new Set(数组))
(九)冒泡排序
var examplearr=[8,94,15,88,55,76,21,39];
function sortarr(arr){
for(i=0;i<arr.length-1;i++){
for(j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
sortarr(examplearr);
console.log(examplearr)
(十)typeof 和 instanceof 的区别?
01-常用来判断一个变量是否为空,或者是什么类型的
02-在js中,判断一个基本数据的变量的类型会常用typeof,但是在判断复杂数据类型的时候,无论是什么样的类型都会输出'object',这就需要用到instanceof来检测某个对象是不是另一个对象的实例
(十一)for of 与for in 的区别, 对象是否可以使用for of遍历、
1-for in主要是用来遍历对象,虽然也可以遍历数组,但是不推荐使用遍历数组,因为for in会遍历数组的所有可枚举属性,包括原型上面的
2-数组的for in的遍历结果是数组的索引,且都为字符串型,不能用于运算
3-for of支持遍历数组、类对象(例DOM NodeList对象)、字符串、Map对象、Set对象->>for of不支持遍历普通对象,如果瑶遍历,和可通过与Object.keys()搭配使用遍历
4-for of遍历数组后的输出结果为数组元素的值
(十二)获取页面中元素的js方法
01-document.getElementById(id名),获取的是单个元素
02-document.querySelector(可以是id,可以是类,标签,等等),获取的是单个元素
03-document.querySelectorAll(选择器都可以) ,获取的是一类元素,是个伪数组
04-document.getElementsByTagName(标签的名字) 获取的是一类元素,是个伪数组