安卓手机端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())
![](https://img.haomeiwen.com/i443997/e507de3cf027b7d9.png)
递归函数
复制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)节省内存开销
网友评论