5个经典的JavaScript面试题
![]()
在IT界中公司对JavaScript开发者的要求还是比较高的,但是如果JavaScript开 发者的技能和经验都达到了一定的级别,那他们还是很容易跳到优秀的公司的,当然薪水就更不是问题了。但是在面试之前,面试准备也应该足够的充分,毕竟不是 每个优秀的开发者都能在短时间内表现自己。在这篇文章中,我将会列出5个常见的前端开发面试题。看到这里你证明你一定是个程序员或是HR了,不防把文章看 完,了解一下自己还有什么不足之处,有什么问题希望大家可以在留言中交流。
问题1: 作用域
看一下下面的代码:
(function(){
var a = b =5;
})();
console.log(b);
结果会输出什么?
答案:
5
这个问题考查的要点是两个不同的作用域,'a'被var声明成了一个局部变量,但是'b'实际上没有被定义,所以它是一个全局变量。
这个问题还牵扯到另个一个比较重要的问题,就是strict mode,如果你选择了strict mode,上面的代码就会报Uncaught ReferenceError,因为b没有被定义,它可以帮你检查出代码的一些问题:
(function(){
'use strict';
var a = window.b =5;
})();
console.log(b);
问题2: 创建“native”方法
写一个重复打印字符串对象的方法,输入一个整数,这个整数代表重复打印的字数,比如:
- console.log('hello'.repeatify(3));
这样会打印出hellohellohello。
答案:
其中一种实现方法是这样:
String.prototype.repeatify =String.prototype.repeatify ||function(times){
var str ='';
for(var i =0; i < times; i++){
str +=this;
}
return str;
};
这个问题考查的是开发者对JavaScript继承和prototype属性的了解程度。
Question 3: Hoisting
下面这段代码的输出结果是什么?
function test(){
console.log(a);
console.log(foo());
var a =1;
function foo(){
return2;
}
}
test();
答案
undefined和2。
上面的代码和下面这段是等效的:
function test(){
var a;
function foo(){
return2;
}
console.log(a);
console.log(foo());
a =1;
}
test();
问题4: 在JavaScript中如何执行
通过下面的代码给出结果,解释一下你的答案:
var fullname ='John Doe';
var obj ={
fullname:'Colin Ihrig',
prop:{
fullname:'Aurelio De Rosa',
getFullname:function(){
returnthis.fullname;
}
}
};
console.log(obj.prop.getFullname());
var test = obj.prop.getFullname;
console.log(test());
答案:
Aurelio De Rosa 和John Doe。
问题5: call() 和 apply()
解决前面的问题之后让最后一个console.log()输出Aurelio De Rosa.
答案:
这个问题在于call()还是apply()。 如果你不知道它们之间的区别,我建设你先读一读 What’s the difference between function.call and function.apply? 下面这行代码我使用了call(),但是这个情况下apply()也会产生同样的结果:
console.log(test.call(obj.prop));
原文来自:5个经典的JavaScript面试题
5个经典的JavaScript面试题的更多相关文章
- 面试宝典:25个最经典的JavaScript面试题及答案
1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个陷阱? 尽管 typeof bar === "objec ...
- 分享几道经典的javascript面试题
这几道题目还是有一点意思的,大家可以研究一番,对自己的技能提升绝对有帮助. 1.调用过程中输出的内容是什么 function fun(n, o) { console.log(o); return { ...
- JavaScript面试题
一道常被人轻视的前端JS面试题 标签(空格分隔): JavaScript function Foo() { getName = function () { alert (1); }; return t ...
- 前端程序员经常忽视的一个JavaScript面试题
在网上找到一个有关JavaScript的面试题,特整理如下: function Foo() { getName = function () { alert (1); }; return this; } ...
- 10道javascript笔试题
1.考察this JavaScript var length = 10; function fn() { console.log(this.length); } var obj = { length: ...
- 你应该知道的25道Javascript面试题
题目来自 25 Essential JavaScript Interview Questions.闲来无事,正好切一下. 一 What is a potential pitfall with usin ...
- 互联网中级Javascript面试题
互联网中级Javascript面试题 1.实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number.String.Object.Array.Boolean)进行值复制 ...
- 互联网公司前端初级Javascript面试题
互联网公司前端初级Javascript面试题 1.JavaScript是一门什么样的语言,它有哪些特点?(简述javascript语言的特点)JavaScript是一种基于对象(Object)和事件驱 ...
- 一道 JavaScript 面试题
有一道 JavaScript 面试题. f = function () { return true; }; g = function () { return false; }; (function() ...
随机推荐
- 根据twitter的snowflake算法生成唯一ID
C#版本 /// <summary> /// 根据twitter的snowflake算法生成唯一ID /// snowflake算法 64 位 /// 0---0000000000 000 ...
- Flex Viewer(二) 体系结构
一.概述 在上一篇文章<深入浅出Flex Viewer (一)——概述>中,笔者对Flex Viewer用于构建以地图为中心的富客户端(RIA)应用的原型的功能和价值做了简要地介绍.在本文 ...
- 倒计时相关函数 php
<script type="text/javascript" language="javascript"> function datetime_to ...
- RTP 有效负载(载荷)类型,RTP Payload Type
转自:http://blog.csdn.net/caoshangpa/article/details/53008018 版权声明:本文为灿哥哥http://blog.csdn.net/caoshang ...
- MySQL中进行树状所有子节点的查询 . mysql根据父id 查询所有的子id
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点.但很遗憾,在MySQL的目前版本中还没有对应的功能. ...
- 混乱之子第七季/全集Sons of Anarchy迅雷下载
英文译名 Sons of Anarchy (第7季) (2014-秋季档回归)FX. 本季看点:<混乱之子>(Sons of Anarchy)最终季的客串演员还在不断增多.曾在1996年因 ...
- win7下设置环境变量
手工当然可以进行环境变量的设置,但是如果一个小组有需要设置固定环境变量的操作,这可能就会有点麻烦了,xp下设置环境变量比较简单,直接用set,win7下需要使用setx SETX XX_HOME &q ...
- Wireshark的简介
-------------------------------------------------------------- <Wireshark数据包分析实战>这本书其实还很不错,当时买 ...
- 《Software Design中文版01》
<Software Design中文版01> 基本信息 作者: (日)技术评论社 译者: 苏祎 出版社:人民邮电出版社 ISBN:9787115347053 上架时间:2014-3-18 ...
- 对于DQN的三大改进 - 这篇讲的好些
可以看这篇文章: https://blog.csdn.net/u013236946/article/details/73161586 这篇也讲的不错: https://www.cnblogs.com/ ...