前端面试题(14)

131.如何使用jQuery来给一个元素添加 和删除class属性

$(selector).addClass(cllssName)
$(selector).removeClass(className)

132.使用document.getElementById()和$(#id)哪种方式效率更高

document.getElementById()是原生js语法,直接调用JS引擎完成数据处理,效率更高。$(‘#div’)是jQuery对原生js的封装提供的函数,首先调用JS代码,然后调用JS引擎
尽管原生JS的语法效率更高,但是相比较浏览器解释和处理网页代码的特效和速度,JS和jQuery处理数据的性能差异并不是很大, 所以在开发的时候为了提高开发效率推荐使用jQuery完成特效开发

133.jQuery有几种事件绑定的函数,它们各自有什么区别

jQuery提供了事件快捷绑定、bind()绑定、delegate() 绑定以及on()绑定,在操作过程中如果是页面已有元素添加事件,一般使用on()进行事件绑定处理;bind()/live()/delegate()事件绑定函数都是在jQuery发展过程中能出现的一些有局限性的操作函数,官方代码已经声明废弃或者即将废弃

134.简述one()和trigger()函数它们的作用

one()是jQuery语法中提供的一种绑定一次性事件的函数
trigger()是jQuery语法中提供的一种事件增强函数,一般和事件函数一起使用,支持指定事件触发的同时给事件函数传递自定义参数

135.使用jQuer实现一个全选效果

$(funtion(){
  $('#all').click(function(){
      $('.item').prop('checked',this.checked)
})
})

136.jQuery中的$.each()是什么函数,为什么要使用它

$.each()是jQuery封装的一个用于节点遍历的函数,jQuery选择器在操作节点时本身就具备隐式遍历的操作,但是如果要对节点进行个性化操作的话就需要执行遍历的处理,jQuery提供的each()函数优化普通遍历的语法

137.jQuery中如何将一个HTML节点插入DOM树中

after()/insertAfter()/before()/insertBefore()
append()/appendTo()/prepend()/prependTo()
html()

138.jQuery语法中$.map()和原生JS数组的map()函数有什么不同

map()函数主要用于遍历数据并对遍历的数据进行数据转换处理
原生js代码中,只有数组具备map()操作,其他类4数组无法使用map() 进行数据映射转换
jQuery中对原生js语法中的map()进行了封装,可以支持数组以及类数组执行map()映射转化操作

139.谈谈你对jQuery的理解

jQuery对原生JS进行了封装,提供了大量的功能函数,提高了网页效果开发效率
jQuery提供了强大的选择器用于选择目标标签
jQuery提供了内建的动画函数,提供基础动画特效
jQuery封装了大量DOM函数,提高DOM操作开发效率
jQuery提供了隐式迭代功能,方便对批量节点进行处理
jQuery提供了大量插件,可以快速实现特定的网页效果
jQuery有自己丰富的第三方社区提供了大量网页效果的插件支持

140.简述你用过的jQuery中的动画函数

hide()/show()/toggle() 隐藏、显示、切换
slideUp()/slideDown()/slideToggle()
fadeOut()/fadeIn()/fadeTo()/fadeToggle()
animate()

141.什么是JSON,都包含那些常见操作

JSON是原生JS语法中使用花括号包含起来的key :value键值对的一种数据,用于描述单个复杂对象的,经常用于前后端数据交互时数据的传输
JSON对象转换为JSON字符串: JOSN.stringfy()
JSON字符串解析成JSON对象:JSON.parse()

142.简述原生JS和jQuery中事件绑定方式以及它们的区别

原生JS存在兼容性问题
ele.addEventListener() || ele.attachEvent()
jQuery提倡使用on()绑定事件
jqObj.on(eventType,fn)

143.jQuery如何给一个元素添加多个单击事件,如何取消其中某个单击事件

传统的添加和取消:满足大部分场景
jqObj.on(‘click’,fn) jqObj.on(‘click’,fn2) 添加
jqObj.off(‘click’,fn) 取消对应的单击事件
如果一个函数多次绑定,可以使用事件命名空间来绑定
jqObj.on(‘click.a’,fn) jqObj.on(‘click.b’,fn) 添加
jqObj.off(‘click.a’,fn) 取消对应的单击事件

144.简述什么是深浅拷贝,深浅拷贝有哪些实现方式

浅拷贝就是拷贝数据对象在内存中的地址,深拷贝就是拷贝数据对象在堆内存中的数据
深拷贝的实现方式可以通过普通循环创建新对象的方式实现,也可以使用$.extend()进行深拷贝

145.什么是原型,什么是原型链,什么是构造函数,它们之间有什么联系

原型:原生JS中某个构造函数所属类型的真实对象
原型链:原生JS中某个对象所属类型真实对象
构造函数: 原生JS中模拟面向对象中类型的一个函数

构造函数就是原生JS中声明的一个函数,用来模拟一个类型,可以使用构造函数通过new关键字创建对象;构造函数的本质上是一个函数,所以它的原型链__proto__属性是Function.prototype;构造函数是一个模拟类型创建对象,所以它的原型prototype属性是构造函数.prototype
原型,本质上是一个对象,用来描述某个真实类型,所以它的原型链__proto__属性指向的是继承的父类型的原型对象,如果没有继承关系,默认指向对象Object.prototype;原型作为一个对象没有上级原型prototype属性对象
原型链本质上是JavaScript管理数据的一套继承体系,在对象中通过__proto__属性描述,一般原型对象的原型链属性__proto__指向的就是创建当前对象的真实原型对象,可以通过原型链一直追溯到Object.prototype,JS中就可以通过原型链管理脚本中出现的所有数据对象

146.简述面向过程和面向对象的联系和区别

面向过程和面向对象都是编程思想,都是解决问题的思路
面向过程编程注重解决问题的过程和步骤,最直观的实现方式就是函数式编程,它的优点是开发的软件稳定性(耦合度)非常高,缺点是由于耦合度较高导致项目功能的扩展性较差
面向对象编程注重解决问题是参与的对象以及对象的行为,通过对象的行为之间的互相调用/协作完成最终问题的解决,最直观的实现方式就是类和对象,它的优点式开发的软件功能扩展性较好,缺点式开发的软件功能的稳定性较差

上一篇
下一篇(ES6)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值