前端2020年热门面试题精选

前端2020年热门面试题精选

数组去重(手写)

1,根据对象属性的不重复去重
function unique(a){
            var arr = []
            var obj = {}
            for(let i = 0;i<a.length;i++){
                //判断对象中是否有这个属性
                if(!obj[a[i]]){
                    obj[a[i]] = 'asd'
                    // arr[arr.length] = a[i]
                    arr.push(a[i])
                }
            }
            return arr
        }
        var oldArr = [1,3,5,2,51,4,6,2,1,4,5,23,3]
        console.log(unique(oldArr));

js的new做了哪些事情

​ 1,在内存中创建一个新的对象

​ 2,让this指向这个新的对象

​ 3,执行构造函数中的代码

​ 4,return

数组常用方法

push():在数组的最后添加一个或多个元素,原数组改变

,pop():删除最后一个元素,若数组为空 则返回undefined 原数组改变

,shift():删除第一项,并返回被删除的元素 若数组为空 返回undefined 改变原数组

,unshift():在数组的开头添加一个或多个元素 并返回数组长度 原数组改变,

splice():,sort(),reverse(),mop()

string常用方法:

方法说明
concat(str1,str2…)连接一个或多个字符串 返回一个新的字符串
substr(start,length)从start位置开始(start为索引) 区 length个字符
slice(start,end)从start开始 到end结束 取不到end(两个都是索引)接受负值
substring(start,end)从start开始 到end结束 取不到end(两个都是索引) 不接受负值
split()**切割字符串 ** 注意,切割完毕之后,返回的是一个新数组

清除浮动

1,
在父级元素 后添加一个空div

2,.clearfix

3,给父级添加over-flow:hidden

p标签的作用:

让一段文字具有段落的语义

闭包有什么用

什么是闭包?

​ 闭包是指有权访问另一个函数作用域中的变量的函数

​ 闭包就是函数的局部变量集合,只是这些局部变量在函数返回后会继续存在。

为什么要用?

​ 1,匿名自执行函数:有的函数只需执行一次,内部的变量不需维护 ,可以用闭包

​ 2,结果缓存:闭包不会释放外部的引用,从而函数内部的值可以保留

​ 3,封装:实现类和继承的封装

mouseover和mouseenter的区别

mouseover:当鼠标移入一个元素或其他子元素都会触发的事件,所以有一个重复触发,冒泡的过程,对应的移除事件是mouseout

mouseenter:当鼠标移出元素本身(不包含子元素)触发的事件,也就是不会冒泡,对应的移除事件是mouseleave

如何判断一个数组和类数组
1.instanceof
console.log(arr instanceof Array)
2,constructor
console.log(arr.constructor)
3,isArray()

call和apply的区别
每个函数都包含两个非继承而来的方法:apply()和call()。;
call与apply都属于Function.prototype的一个方法,所以每个function实例都有call、apply属性;
call():第一个参数是this值没有变化,变化的是其余参数都直接传递给函数。在使用
call()方法时,传递给函数的参数必须逐个列举出来。
apply():传递给函数的是参数数组

阐述一下CSS Sprites及其优点
优点:1,减少对服务器的请求,从而大大提升页面性能
2减少图片的字节(图片大小)

什么是闭包,如何使用它,为什么要使用它?

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值