2020-03-18前端面试题目

安卓手机端HTML5页面input\textarea聚焦时,虚拟键盘弹出导致页面下方留白或者页面混乱的解决方案

在input\textarea聚焦时,将body的高度改变为页面可显示的区域的高度。 $('body').height($('body')[0].clientHeight);


页面防抖以及节流

防抖:延时处理,然后如果在这段延时内又触发了事件,则重新开始延时。

节流:window.addEventListener('scroll',throttle(realFunc,500,1000));

ionic3实现三种回顶部操作

1. 用id获取模板中content中最高的那个元素,给元素设置id,锚点跳转

2. 调用content的scrollToTop(),然而,当content设置为fullscreen时,header会覆盖一部分(不会完全滑动上去)

3.滚动到指定坐标位置,三个参数依次为坐标x,y,滚动时间(毫秒单位)。this.content.scrollTo(0, 0, 300)

使用过...修饰符吗?

这叫展开语法,属于es6的新语法,可以在函数调用、数组构造、构造字面量对象时, 将数据展开赋值。

JS基本数据类型

JS基本有5种简单数据类型:String,Number,Boolean,Null,undefined,Symobl

一种复杂的数据类型Object。

箭头函数与普通函数区别

1. 箭头函数是匿名函数,不能作为构造函数,不能使用new

2. 箭头函数不能绑定arguments,取而代之用rest参数...解决

3.箭头函数没有原型属性

4. 箭头函数的this永远指向其上下文的this,没有办改变其指向,普通函数的this指向调用它的对象

]5.箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值

6. 其他区别:

(1).箭头函数不能Generator函数。

(2).箭头函数不具有prototype原型对象。

(3).箭头函数不具有super。

(4).箭头函数不具有new.target。


透明度怎么设置?有什么区别?

1. Rgba:background-color: rgba(0,0,0,0.1)`

2. opacity 属性能够设置的值从 0.0 到 1.0。值越小,越透明。

3. 总结: rgba()方法与opacity方法虽然都可以实现透明度效果,但rgba()只作用于元素的颜色或其背景色(设置了rgb()透明度元素的子元素不会继承其透明效果);而opacity具有继承性,既作用于元素本身,也会使元素内的所有子元素具有透明度。

关于事件冒泡、事件捕获和事件委托

 

浅拷贝和深拷贝

  var newObj = {} //如果不是引用类型,直接返回

[if !supportLists]· [endif]  if (typeof obj !浅拷贝

复制// 第一层为深拷贝

Object.assign()Array.prototype.slice()

扩展运算符...

[if !supportLists]· [endif]深拷贝

复制JSON.parse(JSON.stringify())

递归函数

复制function cloneObject(obj) {

== 'object') {

    return obj

  }

  //如果是引用类型,遍历属性

  else {

    for (var attr in obj) {

      //如果某个属性还是引用类型,递归调用

      newObj[attr] = cloneObject(obj[attr])

    }

  }

  return newObj

}

 

数组去重的方法

1.ES6 的 Set

复制let arr = [1,1,2,3,4,5,5,6]let arr2 = [...new Set(arr)]

2.reduce()

复制let arr = [1,1,2,3,4,5,5,6]

let arr2 = arr.reduce(function(ar,cur) {

  if(!ar.includes(cur)) {

    ar.push(cur)

  }

  return ar

},[])

3.filter()

复制// 这种方法会有一个问题:[1,'1']会被当做相同元素,最终输入[1]let arr = [1,1,2,3,4,5,5,6]let arr2 = arr.filter(function(item,index) {

  // indexOf() 方法可返回某个指定的 字符串值 在字符串中首次出现的位置

  return arr.indexOf(item) === index

})

 

DOM 事件有哪些阶段?谈谈对事件代理的理解

分为三大阶段:捕获阶段--目标阶段--冒泡阶段

事件代理简单说就是:事件不直接绑定到某元素上,而是绑定到该元素的父元素上,进行触发事件操作时(例如'click'),再通过条件判断,执行事件触发后的语句(例如'alert(e.target.innerHTML)')

好处:(1)使代码更简洁;(2)节省内存开销

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前端面试问题集锦 JavaScript 部分 1、JQuery $(document).ready() 和 win...
    涯无凌阅读 4,440评论 0 2
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 10,232评论 0 5
  • PNG 有PNG8和truecolor PNG PNG8类似GIF颜色上限为256,文件小,支持alpha透明度,...
    hudaren阅读 5,683评论 0 0
  • 文|笔南 有这样一个男孩,他很差劲。他瘦得像猴子,高却不挺拔;他学历成绩都不好,不仅挂科重修,连简简单单的英语四级...
    笔南阅读 2,481评论 0 0
  • 窗外青蛙正叫得欢,掺杂着蟋蟀的鸣鸟声,在深夜十二点听来,更衬出夜的宁静! 难得有客拜访,与先生一起坐谈...
    夭夭泠泠阅读 2,915评论 0 0

友情链接更多精彩内容