选择提基本上都是牛客里面刷过的
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