console
const arr = [1,2,3,4,5,6,6,6]
const obj = {
name:'漳卅四年'
}
function deepClone(obj) {
if(obj === null) return obj
if(obj.instanceof === Date) return new Date(obj)
if(obj.instanceof === RegExp) return new RegExp(obj)
if(typeof obj !== "object") return obj
const cloneObj = new obj.constructor()
Object.keys(obj).forEach(key=>{
if(obj.hasOwnProperty(key))
cloneObj[key] = deepClone(obj[key])
})
return cloneObj
}
const cloneObj = deepClone(obj)
cloneObj.name = "我是深拷贝"
console.log(cloneObj)
const btn = document.getElementById("btn")
let timer = null
btn.addEventListener("click",()=>{
if(timer) clearTimeout(timer)
timer = setTimeout(()=>{
console.log("这是防抖")
},1000)
})
const btn2 = document.getElementById("btn2")
let flag = false
btn2.addEventListener('click',()=>{
if(flag) return
flag = true
setTimeout(()=>{
console.log("这是节流")
flag = false
},500)
})
function fn(){
name = "张三"
}
console.log(arr instanceof Array)
console.log(obj instanceof Object)
console.log(arr.__proto__ === Array.prototype)
console.log(obj.__proto__ === Object.prototype)
console.log(arr.constructor === Array)
console.log(Object.prototype.toString.call(arr).includes("Array"))
console.log(Array.isArray(arr))
const _arr = document.querySelectorAll('div')
console.log(_arr)
console.log(Array.prototype.slice.call(_arr))
console.log(Array.prototype.concat.apply([],_arr))
console.log(Array.from(_arr))
console.log([...new Set(arr)])
console.log(arr.filter((item,index)=>arr.indexOf(item)===index))
const obj1 = {}
arr.forEach(item=>obj1[item]?obj1[item]++:obj1[item]=1)
const result = Object.keys(obj1).sort((a,b)=>obj1[b]-obj1[a]).filter((item,index,arr)=>obj1[item]===obj1[arr[0]])
console.log(result)
Object.prototype[Symbol.iterator] = function(){
return Object.values(this)[Symbol.iterator]()
}
Object.prototype.age = 20
for(let key in obj){console.log(key)}
for(let value of obj){console.log(value)}
<div class="parent">
<div class="child">
<button id="btn">防抖</button>
<button id="btn2">节流</button>
</div>
</div>
.parent{
width: 200px;
height: 200px;
background-color: red;
display: flex
}
.child {
margin: auto
}