今天去面试了两家公司, 职位都是前端架构师. 说好我在大连, 我只讲技术问题.
第一家公司
N 字开头的日资全资子公司, 金融类方向. 面试官在加拿大, 和我 Skype 面的.
- ####html5 的新特性 (送分题)
- [quote]
我的回答:
1简化了 DOCTYPE 的声明
2增加了一些语义标签, 可以实现无插件媒体播放
3增加了拖拽功能
等等
- [/quote]
- ####HTML5 中的 canvas 有了解吗, 简单介绍一下
- [quote]
我的回答:
有了解.
然后我把我的 GitHub 项目给他看了, 正好我最近在做基于 canvas 的开发.
- [/quote]
- ####canvas 中 context 对象的 save 和 restore 两个方法有什么区别
- [quote]
我的回答:
不知道.(canvas 断断续续的用, 这个没记住)
也许标准的答案:
save() 保存当前环境的状态
restore() 返回之前保存过的路径状态和属性
- [/quote]
- ####jQuery 中的 get 方法是做什么用的?(送分题)
- [quote]
我的回答:
发送 Ajax 的 get 请求
- [/quote]
- ####jQuery 中的 get 方法返回值是什么?
- [quote]
我的回答:
返回一个对象, 带有 done,success,always 等方法.(回答之后, 瞬间觉得会不会是一个 Deffered 对象呢).
面试官说其实就是一个 Deffered 对象.
也许标准的答案:
返回的是一个 jqXHR 对象, 内部实现了 Deffred 对象的部分方法.
- [/quote]
- #### 如何实现在异步发送两个请求都返回之后再执行其他方法
- [quote]
我的回答:
利用 jQuery Deffered 对象的 when 方法实现
- [/quote]
- ####JS 原生的 call 和 apply 方法有用过吗? 有什么用途? 又有什么区别?(送分题)
- [quote]
我的回答:
用过, 不多.
用途是转换作用域, 如一个字符串想使用用 Array 对象的 map 方法的话, 可利用 call 来实现.
区别在于两个方法的第二个参数, 一个传递是 arguments 对象, 另一个是将参数一个一个传递进去.
也许标准的答案:
call 方法:
语法: call([thisObj[,arg1[, arg2[, [,.argN]]]]])
定义: 调用一个对象的一个方法, 以另一个对象替换当前对象.
apply 方法:
语法: apply([thisObj[,argArray]])
定义: 应用某一对象的一个方法, 用另一个对象替换当前对象.
- [/quote]
- #### 对网站安全有研究吗? 知道跨站攻击吗?
- [quote]
我的回答:
没怎么研究.
应该是向后端发送的请求尽量加密; 前端构建时将代码压缩加密; 客户端数据存储尽量加密 (其实都是我猜的......)
不知道跨站攻击是什么, 是发送大量 http 请求, 使得服务器 down 掉?
- [/quote]
- #### 了解什么是单页应用吗? 单页应用如何实现点击浏览器后退按钮返回上一个功能页面
- [quote]
我的回答:
一个页面内实现了全部功能.
关于后退事件, 我们 JS 框架有封装, 可以实现默认事件的拦截. 我没有看过这里是怎么实现的, 但是如果让我实现的话,
应该是先拦截 event 对象的后退事件的默认事件, 然后判断是否有传递覆盖事件, 如果有则执行, 如果没有再重新执行 history 对象的 back 方法.
- [/quote]
- #### 今后想在研究 JS 的哪些方向?
- [quote]
我的回答:
研究一下 Angular JS, 还想看看跨域的 JSONP.
但是还想把 JS 基础打得再牢靠一些.
- [/quote]
- #### 那你觉得 JS 哪些基础最重要呢?
- [quote]
我的回答:
JS 所有基础都很重要, 我最近正在把《JavaScript 高级程序设计》看第二遍, 觉得书里的每一句话都很重要.
最近正在深度研究数据类型转换和隐式类型转换
- [/quote]
- #### 既然说到基础, 我再考你几道基础题
- ##### 进行双等号比较时, 如'1'==1, 内存里什么怎么跑的?
- [quote]
我的回答:
当进行双等号比较的时候, 浏览器会取等号两侧的变量的原始值, 如果原始值返回的不是一个数字类型, 则会调用这个变量的 toString 方法, 之后再进行比较.
- [/quote]
- #####NaN == NaN 的结果是什么?(送分题)
- [quote]
我的回答:
这个当然是 false, 因为 NaN 是不等于任何一个数字的数字, 包括他本身
[/quote]
第二家公司
居然是个外派公司, 并且邀请我时并没有说明他是一个外派公司, 这点让我很不爽.
并且 HR 和面试官的颜值简直是负值啊, 不过我还是硬着头皮面完了.
不过说真的, 这家公司什么技术都没问, low 到爆, 浪费了我的 6 块钱停车费.
不过我还是记住了一个问题.
- ##### 说一说微信的企业号和服务号的区别
- [quote]
我的回答:
这两个几乎没有什么联系, 企业号是服务于员工的, 功能有微信封装好;
不过服务号和订阅号是有区别的.
订阅号没有权限获取用户的任何信息, 从而无法实现任何针对客户的服务.
而服务号是可以获取用户信息的
- [/quote]
- ##### 那你说说针对微信页面开发做了哪些?
- [quote]
我的回答:
对于微信 JS-SDK 进行了再封装; 对于微信网页授权全套逻辑进行了再封装;
还总结了关于网页授权的前后端交互流程, 并发了博客.
[/quote]
来源: http://www.qdfuns.com/article/21719/e50d7cae2bd624841963321a2fcce066.html