javascript 面试题收集
来源:互联网 发布:剑三重置版优化补丁 编辑:程序博客网 时间:2024/06/06 02:30
- this对象的理解
this总是指向函数的直接调用者
如果有new的话,指向new出来的对象
在事件中,this指向触发这个事件的对象
- new操作符都干了什么?
创建一个空对象,并且this变量引用该对象,同时继承该对象的原型。
属性和方法加入到this引用的对象中
新创建的对象由this引用,并且最后隐式返回this。
- call() , apply(), bind() 区别
- object.prototype 理解
定义一个spcify()函数
spacify('hello world') => 输出 ‘h e l l o w o r l d’
进一步实现
‘hello world’.spaciy()
String.prototype.spacify = function(){
return this.prototype.split().join(' ')
}
- 函数声明 和函数表达式的区别
对于函数声明,js解析器会优先读取,确保在所有代码执行之前声明已经被解析,而函数表达式,如同定义其它基本类型的变量一样,只在执行到某一句时也会对其进行解析,所以在实际中,它们还是会有差异的,具体表现在,当使用函数声明的形式来定义函数时,可将调用语句写在函数声明之前,而后者,这样做的话会报错。
- 参数arguments理解
定义个log函数,添加(app)的前缀
- context 上下文
下一组问题是考察侯选人对上下文和this的理解。我先定义了下面一个例子。注意count属性不是只读取当前下下文的。
var User = { count: 1, getCount: function() { return this.count; }};
我又写了下面几行,然后问侯选人log输出的会是什么。
console.log(User.getCount()); var func = User.getCount; console.log(func());
这种情况下,正确的答案是1和undefined。你会很吃惊,因为有很多人被这种最基础的上下文问题绊倒。func是在winodw的上下文中被执行的,所以会访问不到count属性。我向侯选人解释了这点,然后问他们怎么样保证User总是能访问到func的上下文,即返回正即的值:1
正确的答案是使用Function.prototype.bind,例如:
var func = User.getCount.bind(User); console.log(func());
接下来我通常会说这个方法对老版本的浏览器不起作用,然后让侯选人去解决这个问题。很多弱一些的侯选人在这个问题上犯难了,但是对于你来说雇佣一个理解apply和call的侯选人非常重要。
Function.prototype.bind = Function.prototype.bind || function(context){ var self = this; return function(){ return self.apply(context, arguments); }; }
- javascript 面试题收集
- javascript面试题慢慢收集
- 收集Web前端 面试题 Javascript部分
- 个人收集javascript面试题,你值得拥有。
- Net面试题收集
- 面试题收集
- c#面试题收集
- 面试题收集
- 面试题收集
- 收集的面试题
- 面试题收集
- Android面试题收集
- 网络工程师面试题收集
- .NET面试题收集
- MSSQL面试题收集
- C++面试题收集
- 经典面试题收集
- C++面试题收集
- centos安装php扩展soap实现webservice
- 算法竞赛入门经典学习笔记(1)
- Design Twitter
- C/C++预编译指令总结
- 第七天:创建WBS
- javascript 面试题收集
- Hadoop Archives 小数据处理
- 内联函数总结
- 简单工厂模式(Factory)
- Seekbar使用
- struts2.5动态方法绑定问题
- 中山培训第三题(未解决)
- NWU CCCC选拔赛 1014阶乘问题(思维题)
- java.lang.NoClassDefFoundError: org/activiti/bpmn/model/StartEvent