選擇提基本上都是牛客裡面刷過的
1、arr =[0,1,2] arr[10] = 10,
arr.filter(function(val){ return val === 'undefined' })
2、
(function(x){
return(function(y){
console.log(x)
})(2)
})(1)
複製程式碼
多選題就記住一道:
1、排序演算法的穩定性
簡答題
1、如何將陣列
obj=[{id:1,parent:null,child:2},{id:12,parent:1,child:3},{id:13,parent:2,child:null}] 採用遞迴轉化成
let obj2 = {obj:{
id:1,
parent:null,
child:{
id:2,
parent:1,
child:{
id:3,
parent:2,
child:null
}
}
}}
複製程式碼
2、當程式碼var a = new A('twsta')執行時會發生什麼?
3、使用typeof bar === 'object'來判斷bar是不是物件有什麼問題,應該怎樣處理?
4、CSS實現動畫的方式有哪些?
- 過度動畫(transition):
transition:all 0 ease 0;
transition-property:規定設定過渡效果的 CSS 屬性的名稱。
transition-duration:規定完成過渡效果需要多少秒或毫秒。
transition-timing-function:規定速度效果的速度曲線。
transition-delay:定義過渡效果何時開始。
eg:
div {
width:100px;
transition: width 2s;
-moz-transition: width 2s; /* Firefox 4 */
-webkit-transition: width 2s; /* Safari 和 Chrome */
-o-transition: width 2s; /* Opera */
}
複製程式碼
- animation
複製程式碼
5、找出陣列中的重複元素並輸出
//輸出陣列中的重複元素
function findRepeat(arr){
if(arr.length <= 1){
return arr
}
let copyArr = []
let obj = {}
let repeatArr = []
//錯在這一步上,重複的屬性只能看作一個,怎麼會區別對待呢,傻子
// for(let i = 0;i<arr.length;i++){
// obj[arr[i]] = 0
// }
arr.forEach(function(val,index){
if(!obj[val]){
copyArr.push(val)
obj[val] = 1
}else{
obj[val] = obj[val] + 1
}
})
Object.keys(obj).forEach(function (val,index){
if(obj[val] > 1){
repeatArr.push(parseInt(val))
}
})
return repeatArr
},
複製程式碼
6、display:none和visibility:hidden的區別
7、深拷貝與淺拷貝各是什麼?如何實現一個深拷貝?
8、如何合併兩個陣列?
9、編寫一個輸出日誌的函式,並在並在輸入內容前加(app)字首,
eg:log("hello World) => (app)Hello World log("hello,World) => (app)Hello World