个人资料
面试总结
- 未来科技
国人在线【外包】
- 做的是笔试题
本地存储有哪些解决方案
var User = { count:1, getCount:function(){ return this.count } } console.log(User.getCount())//1 var fun = User.getCount console.log(func())//undefined
- 闭包是什么,有什么特性,对页面有什么影响
IE和标准有哪些兼容性写法
setTimeout(function(){ console.log(1) }) new Promise(function(resolve,reject){ console.log(2) resolve(3) }).then((val){ console.log(val) }) //输出的顺讯 231
- 什么叫对象的拷贝
- 什么是深拷贝,什么是浅拷贝
- 做过哪些性能优化
- 说一下tcp三次握手的原理
- tcp属于哪一层
Promise的三个缺点
function Foo(){ getName = function(){ console.log(1) } return this } Foo.getName = function(){ console.log(2) } Foo.prototype.getName = function(){ console.log(3) } var getName = function(){ console.log(4) } function getName(){ console.log(5) } //请写出以下的输出结果 Foo.getName() getName() Foo().getName() getName() new Foo.getName() new Foo().getName() new new Foo().getName()
- transform动画,使用left,top改变位置的优缺点
Es6的Map和原生的对象有什么区别
//把一个数组arr按照指定的数组大小size分割成若干个数组块 document.write(chunk([1,2,3,4,48,666],2)) //输出的结果[1,2],[3,4],[48,666] //chunk()方法 function getArr(arr,size){ //arr [1,2,3,4,48,666] //size 2 //slice // var flag = arr.slice(0,size) var newArr = [] for(var i = 0;i<arr.length/size;i++){ flag = arr.slice(size*i,size*i+size) newArr.push(flag) } return newArr }
//一个大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把他们串联起来,形成一个新的数组 数组为:[[165,2,9],[48,6,9,82],[6,5],[29658,91,2]] function getArr(arr) { var flag = [] for(var i = 0 ;i<arr.length;i++){ arr[i].sort((a,b)=>{return a - b })//升序 flag.push(arr[i][arr[i].length - 1]) } return flag }
//编写一个阶乘
//翻转字符串"hello world!",写一个函数,翻转上面的字符串变成 "!dlrow olleh" //hello world! function reverse(str){ var arr = str.split("").reverse().join("") return arr }
//冒泡排序 function sort(arr){ for(var i = 0;i<arr.length - 1;i++){ for(var j = 0;j<arr.length -1 -i;j++){ if(arr[j] > arr[j+1]){ var temp = arr[j] arr[j] = arr[j+1] arr[j+1] = temp } } } return arr }
博彦科技【外包】
#### 电话面试- 浏览器的兼容性
- 定时器的种类
- Vue的响应式原理
- Es6的新特性
- 工作中有没有碰到过内存泄漏的问题