面试官先给了一张试卷,40分钟完成,然后电话面试了40分钟左右
试卷题目
题目一
1 | var myvar = 'my value'; |
var定义的变量会有变量提升,最后实际上的代码是这样1
2
3
4
5(function() {
var myvar
console.log(myvar);
myvar = 'local value';
})();
所以结果是undefined
题目二
1 | function Person(name){ |
考原型相关的知识
jack.age++ 是通过“ . ”来改变变量的,对原型链上的数据没有影响
rose.award.push(‘oscar’)是要先通过 rose.proto.award 来获取变量,再去push,所以改变了原型链上的数据
题目三
编程题:
请编写formatNum函数,将数字格式化为金额格式,每三位数加入逗号:var money = 34782632 添加方法 money.formatNum(),输出”34,782,632”
当时的代码:1
2
3
4
5
6
7
8
9
10Number.prototype.formatNum = function(num){
let numArr = num.split("")
let numArr2 = numArr, res = ""
numArr.forEach((item, index) => {
if(!(index+1)%3 && index > numArr.length)
res = "," +res
res = numArr2.pop() + res
})
return res
}
题目四
请写一段代码,要求扩展console.log方法,在每个输出前增加一个自增序号。如:console.log(“foo”); //输出 1:foo, console.log(“bar”); //输出 2:bar
1 | console.log = (function(val){ |
电话过程中问的问题
Vue数据双向绑定原理
没有回答上来,忘记了,,,
Vuex优点
vuex是状态管理,vue组件之间传递数据是依赖组件之间的关系,这对于数据传递有一定的限制,vuex可以集中管理数据,而不一定要组件之间有依赖关系才能去共享一个数据。(不是很好)
自己碰到过最难的问题,印象最深刻的问题
360实习时候做的分片加载
网易有道实习做的页面分享适配各种浏览器
Http头部信息
(脑袋一片空白)
讲到了etag,然后说到了304
状态码
2XX: 成功类
3XX: 重定向
4XX: 资源报错
5XX: 服务端出错
跨域 jsonp攻击怎么解决
一般用cors和jsonp方法,问jsonp如何处理黑客攻击,不知道。。。
Webpack
问对webpack有多少了解,只会一些简单的配置
发扑克牌
思路: 扑克牌放在一个数组里面,每次生成一个随机数,把这个随机数作为数组的下标分配给打牌的人,然后把数组最后一个数据移动到已经移除的扑克牌位置
304原理