成都创新互联网站制作重庆分公司

前端基础面试题及参考答案

这篇文章给大家分享的是有关前端基础面试题及参考答案的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

成都网络公司-成都网站建设公司成都创新互联10余年经验成就非凡,专业从事成都网站制作、成都网站建设,成都网页设计,成都网页制作,软文平台广告投放等。10余年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:18980820575,我们期待您的来电!

基础题

我出的这套基础题,面试(当面答题,想百度是不存在的)好多人,情况都比较差,没有令我满意的,是我出题太难了么?

介绍一下js原型继承

查看答案

当我们想要从 object 中读取一个缺失的属性时,js 会自动从原型中获取它

举例:

const animal = {
  eats: true,
  sleep: true,
  voice: '',
  bark(){
    console.log(this.voice);
  },
}
const dog = {
  run: true,
  voice: 'wang~~ wang~~',
}
dog.__proto__ = animal;
console.log(dog.run) // true
console.log(dog.eats) // true
console.log(dog.bark()) // wang~~ wang~~
console.log(dog.sleep) // true

总结:

  所有的对象都有一个隐藏的 [[Prototype]] 属性,它可以是另一个对象或者 null。

  可以使用 obj.__proto__ 进行访问。

  [[Prototype]] 引用的对象称为“原型”。

  要读取 obj 属性或者调用一个方法,而且它不存在,那么就会尝试在原型中查找它。

  写/删除直接在对象上进行操作,它们不使用原型(除非属性实际上是一个 setter)。

  我们调用 obj.method(),而且 method 是从原型中获取的,this 仍然会引用 obj。

  方法重视与当前对象一起工作,即使它们是继承的。

扩展:

  构造函数继承、组合继承、寄生继承、寄生组合式继承。

说说什么是防抖、节流,在实际应用中在哪些场景会用到它们

防抖:

  连续触发的事件(高频),在单位时间T内只执行最后一次,

  若在T内再次触发,则清空定时重新计算。场景:模糊搜索

节流:

  连续触发的事件(高频),在单位时间T内只执行一次。窗口滚动,获取滚动条top

javascript如何实现跨窗口通信

若子域同源,则可以通过设置document.domain将窗口视为同源站点,进行通信,

  例如本地储存等等方式。

若不同源,我们可以在通过 postMessage(data,targetOrigin) 这个接口,进行跨窗口通信。

什么是点击劫持,如何防范

点击劫持:

  允许恶意网页以用户的名义点击 “受害站点”。

  通常恶意网页在受害网站链接之上放置一个透明