标签:: 前端

0

实习招聘面试经历-4

(啪啪啪,之前写完文章写了一半不知怎么就忘记继续发=。= 现在是8/2,文章大概是一个多月前写的)终于到最后一篇啦。虽然技术面试早就结束了,不过还是前个星期接到最后一家的Hr的电话,因为已经确定去哪一家了所以就拒绝了。至此所有的面试都结束啦~结果还是挺不错的。 总结一下最后一家的面试,电面,周日早上10点开始,每轮40分钟左右,最后一面出了点意外花了一个多小时。隔一个小时左右下一轮,2点半结束所

0

实习招聘面试经历-3

1.跨域 讲jsonp的原理,实现 jsonp的安全性:当时自己说的是可不可以判断来源,比如请求头,域名.然后面试官说jsonp是get请求,没有origin的.我又猜测用reffer? 嗯,这个对了;我还猜测是不是用cookie和session.但是直接的script请求是不能带上这个的.面试官让我再想,我就猜可不可以传多一个验证的字段验证身份.对了.后面自己看书发现了这种方法就是token.记录如下:先介绍CSRF: 跨站请求伪造,cross site requrest forgery.意思是跨域发出请求,请求是身份认证后的(除了referer不一样,cookie是一样的)原理: 受害者必须依次完成两个步骤:  1.登录受信任网站A,并在本地生成Cookie。  2.在不登出A的情况下,访问危险网站B。cookie发送:如果是内存cookie,都可以正常发送,如果是本地cookie,需要带有p3p属性.get请求可以通过img等标签,post请求直接通过form表单提交.  CSRF攻击是源于WEB的隐式身份验证机制!WEB的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的!

0

实习招聘面试经历-2

1. Angular双向绑定的实现嗯…面试三次,每个面试官都会问我这个问题,这里还是贴一下参考的文章吧:Angular沉思录(一) 数据的双向绑定AngularJS 数据双向绑定揭秘简易实现版本:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263var Scope = function () { this.$$watchers = [];}Scope.prototype.$watch = function( watchExp, listener ) { this.$$watchers.push( { watchExp: watchExp, listener: listener || function () {} });};Scope.prototype.$digest = function() { var dirty; do { dirty = false; for (var i = this.$$watchers.length - 1; i >= 0; i--) { var newValue = this.$$watchers[i].watchExp(), oldValue = this.$$watchers[i].last; if( oldValue !== newValue) { this.$$watchers[i].listener(newValue, oldValue); dirty = true; this.$$watchers[i].last = newValue; } }; } while(dirty);};var $scope = new Scope();$scope.name = 'Ryan';$scope.$watch(function () { return $scope.name;}, function ( newValue, oldValue ) { console.log('Input Value has update:' + newValue + ' and Old Value is: ' + oldValue); element[0].value = newValue; tips.innerHTML = newValue});/** 视图到模型 **/var element = document.querySelectorAll('input'), tips = document.querySelectorAll('#tips')[0];element[0].addEventListener('keyup', function () { $scope.name = element[0].value; $scope.$digest();})/** 模型到视图 **/var updateScopeValue = function () { $scope.name = 'Bob'; $scope.$digest();}var btn = document.getElementsByTagName('button')[0];btn.addEventListener('click', function () { updateScopeValue();})

0

实习招聘面试经历-1

1. 无线端开发和PC端开发有什么不同?从三个方面讲:HTML:使用很多新的标签:12<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"><meta name="apple-mobile-web-app-capable" content="yes"> 在body里面可以使用<header><section>等H5新标签CSS:使用rem单位;rem单位的计算方法:40 * (设备宽度 / 设计图宽度);使用的时候实际设计图大小/40面试的时候说错了=。= 但是他没告诉我(把设计图宽度和设备宽度说反了)设置在document.documentElement.style.fontSize;设备宽度为document.documentElement.clientWidth使用更多的CSS3动画;flex布局,但是要考虑兼容性问题针对特定大小的设备进行媒体查询JavaScript:使用一些轻量级的第三方库,如用zepto代替jquery,vue代替angular;流量很重要,更要注重js文件的压缩合并混淆;其他的当时没想到