安卓手機(jī)端HTML5頁(yè)面input\textarea聚焦時(shí),虛擬鍵盤(pán)彈出導(dǎo)致頁(yè)面下方留白或者頁(yè)面混亂的解決方案
在input\textarea聚焦時(shí),將body的高度改變?yōu)轫?yè)面可顯示的區(qū)域的高度。 $('body').height($('body')[0].clientHeight);
頁(yè)面防抖以及節(jié)流
防抖:延時(shí)處理,然后如果在這段延時(shí)內(nèi)又觸發(fā)了事件,則重新開(kāi)始延時(shí)。
節(jié)流:window.addEventListener('scroll',throttle(realFunc,500,1000));
ionic3實(shí)現(xiàn)三種回頂部操作
1. 用id獲取模板中content中最高的那個(gè)元素,給元素設(shè)置id,錨點(diǎn)跳轉(zhuǎn)
2. 調(diào)用content的scrollToTop(),然而,當(dāng)content設(shè)置為fullscreen時(shí),header會(huì)覆蓋一部分(不會(huì)完全滑動(dòng)上去)
3.滾動(dòng)到指定坐標(biāo)位置,三個(gè)參數(shù)依次為坐標(biāo)x,y,滾動(dòng)時(shí)間(毫秒單位)。this.content.scrollTo(0, 0, 300)
使用過(guò)...修飾符嗎?
這叫展開(kāi)語(yǔ)法,屬于es6的新語(yǔ)法,可以在函數(shù)調(diào)用、數(shù)組構(gòu)造、構(gòu)造字面量對(duì)象時(shí), 將數(shù)據(jù)展開(kāi)賦值。
JS基本數(shù)據(jù)類型
JS基本有5種簡(jiǎn)單數(shù)據(jù)類型:String,Number,Boolean,Null,undefined,Symobl
一種復(fù)雜的數(shù)據(jù)類型Object。
箭頭函數(shù)與普通函數(shù)區(qū)別
1. 箭頭函數(shù)是匿名函數(shù),不能作為構(gòu)造函數(shù),不能使用new
2. 箭頭函數(shù)不能綁定arguments,取而代之用rest參數(shù)...解決
3.箭頭函數(shù)沒(méi)有原型屬性
4. 箭頭函數(shù)的this永遠(yuǎn)指向其上下文的this,沒(méi)有辦改變其指向,普通函數(shù)的this指向調(diào)用它的對(duì)象
]5.箭頭函數(shù)不綁定this,會(huì)捕獲其所在的上下文的this值,作為自己的this值
6. 其他區(qū)別:
(1).箭頭函數(shù)不能Generator函數(shù)。
(2).箭頭函數(shù)不具有prototype原型對(duì)象。
(3).箭頭函數(shù)不具有super。
(4).箭頭函數(shù)不具有new.target。
透明度怎么設(shè)置?有什么區(qū)別?
1. Rgba:background-color: rgba(0,0,0,0.1)`
2. opacity 屬性能夠設(shè)置的值從 0.0 到 1.0。值越小,越透明。
3. 總結(jié):?rgba()方法與opacity方法雖然都可以實(shí)現(xiàn)透明度效果,但rgba()只作用于元素的顏色或其背景色(設(shè)置了rgb()透明度元素的子元素不會(huì)繼承其透明效果);而opacity具有繼承性,既作用于元素本身,也會(huì)使元素內(nèi)的所有子元素具有透明度。
關(guān)于事件冒泡、事件捕獲和事件委托
?
淺拷貝和深拷貝
??var?newObj = {} //如果不是引用類型,直接返回
[if !supportLists]·?[endif]??if?(typeof?obj !淺拷貝
復(fù)制// 第一層為深拷貝
Object.assign()Array.prototype.slice()
擴(kuò)展運(yùn)算符...
[if !supportLists]·?[endif]深拷貝
復(fù)制JSON.parse(JSON.stringify())

遞歸函數(shù)
復(fù)制function?cloneObject(obj) {
== 'object') {
????return?obj
??}
??//如果是引用類型,遍歷屬性
??else?{
????for?(var?attr in?obj) {
??????//如果某個(gè)屬性還是引用類型,遞歸調(diào)用
??????newObj[attr] = cloneObject(obj[attr])
????}
??}
??return?newObj
}
?
數(shù)組去重的方法
1.ES6 的 Set
復(fù)制let?arr = [1,1,2,3,4,5,5,6]let?arr2 = [...new?Set(arr)]
2.reduce()
復(fù)制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()
復(fù)制// 這種方法會(huì)有一個(gè)問(wèn)題:[1,'1']會(huì)被當(dāng)做相同元素,最終輸入[1]let?arr = [1,1,2,3,4,5,5,6]let?arr2 = arr.filter(function(item,index) {
??// indexOf() 方法可返回某個(gè)指定的 字符串值 在字符串中首次出現(xiàn)的位置
??return?arr.indexOf(item) === index
})
?
DOM 事件有哪些階段?談?wù)剬?duì)事件代理的理解
分為三大階段:捕獲階段--目標(biāo)階段--冒泡階段
事件代理簡(jiǎn)單說(shuō)就是:事件不直接綁定到某元素上,而是綁定到該元素的父元素上,進(jìn)行觸發(fā)事件操作時(shí)(例如'click'),再通過(guò)條件判斷,執(zhí)行事件觸發(fā)后的語(yǔ)句(例如'alert(e.target.innerHTML)')
好處:(1)使代碼更簡(jiǎn)潔;(2)節(jié)省內(nèi)存開(kāi)銷