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)节省内存开销

你可能感兴趣的:(2020-03-18前端面试题目)