前端面试题(10)

91.元素的样式、类如何改变

获取样式: 元素.currentSytle(样式名称)或者getComputedStyle(元素).样式名称
设置样式:元素.style.样式名称 = 样式值
改变类: 元素.className = “新名称”

92.什么是懒加载?

懒加载就是延迟加载,当用户触发了一定的事件之后再加载目标元素的操作

93.document.write和innerHTML的区别

document.write()会改变页面文档,不建议使用
innerHTML操作闭合标签内部内容

94.如何区分声明函数和表达式函数

function 声明函数() {}
var 变量 = function(){} //表达式函数

95.编写程序,实现点击超链接按钮后弹出一个自定义对话框

btn.onclick = function(e) {
  //获取事件对象
  var event = window.event || e
if(e.preventDefault) {
    e.preventDefault()
}else {
    e.returnValue = false
}
//改变自定义对话框样式
box.style.display = "block"
}

96.编写程序,实现自定义右键菜单

document.addEventListener('contextmenu',function(e){
    //获取时间对象,阻止默认行为
    var event =  window.event  ||e 
  if(event.preventDefault) {
  event.preventDefault()
}else {
event.returnValue = false
}
//打开自定义右键菜单
menu.style.display = "block"
menu.style.left = event.clientX + 'px'
menu.style.top = event.clientY + 'px'
})

97.编写程序,实现一个吸顶导航菜单的效果

window.onscroll = function() {
//网页卷去的高度
var st = document.documentElement.scrolTop
//菜单距离文档顶部的距离
var mt = menu.offsetTop
//判断菜单是否已经到浏览器窗口顶部
if(st >= mt) {
//固定定位,吸顶
mt.style.positon = "fixed"
mt.style.left = 0
mt.style.top = 0
}else {
//跟随网页移动
mt.style.position = 'relative'
}
}

98.什么是防抖,什么是节流,他们的区别是什么

防抖,让用户在某个超时范围内,多次频繁的事件只生效一次,降低服务开销
节流:让用户在某个超时范围内,多次频繁的事件操作降低为间隔一定时间生效一次,降低服务开销
防抖在超时范围内,多次频繁操作有一个生效频率,节流是在超时范围内,多次频繁操作有一个生效频率

###99.什么是回调函数,什么情况下需要使用回调函数

回调函数,将函数作为参数传递给一个执行函数,当执行函数执行完成后根据条件来调用传递的参数,这个传递的函数就是回调函数
当执行函数需要一定的延迟时间才能得到执行结果,此时为了保障执行顺序需要通过回调函数的方式固定操作步骤和顺序

100:什么是闭包函数,什么情况下使用闭包函数

闭包函数就是一个函数的内部声明了函数,可以将当前外层函数的作用域进行扩展并且在一定的情况下常驻内存
如多功能效果开发时,多个特效之间的变量或者函数名称可能出现全局污染,需要使用闭包来屏蔽全局污染,防抖和节流中也用到了闭包函数
注:闭包函数使用后一定要审查代码,避免出现常驻内存的情况,会在运行一段时间之后导致内存溢出

上一篇
下一篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值