JS基础(常用)

    xiaoxiao2023-11-30  154

    (一)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(标签的名字)  获取的是一类元素,是个伪数组

    最新回复(0)