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() ...
 
随机推荐
- 对 Git 分支 master 和 origin/master 的一些认识
			
首先要明确一点,对 Git 的操作是围绕 3 个大的步骤来展开的(其实几乎所有的 SCM 都是这样) 从 git 取数据(git clone) 改动代码 将改动传回 git(git push) 这 3 ...
 - Linux进程管理工具 Supervisord 的安装 及 入门教程
			
Supervisor是一个进程管理工具,官方的说法: 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了 ...
 - 在ASP.NET MVC中使用jQuery的Load方法加载静态页面的一个注意点
			
使用使用jQuery的Load方法可以加载静态页面,本篇就在ASP.NET MVC下实现. Model先行: public class Article { public int Id { get; s ...
 - Delphi中StrToDateTime函数TFormatSettings参数的使用
			
var FSetting : TFormatSettings; DateTime1: tDateTime; begin FSetting := TFormatSettings.Cr ...
 - Java_集合操作_将元素插入List的指定位置
			
package test; import java.util.ArrayList; import java.util.List; public class test { public static v ...
 - 解决javamail ssl 测试unable to find valid certification path to requested target
			
运行 java InstallCert smtp.interdrp.com:465 得到jssecacerts文件后复制到jdk1.6.0_14\jre\lib\security目录 然后再发送邮件就 ...
 - spring-boot:run启动时,指定spring.profiles.active
			
Maven启动指定Profile通过-P,如mvn spring-boot:run -Ptest,但这是Maven的Profile. 如果要指定spring-boot的spring.profiles. ...
 - 疑犯追踪第一季/全集Person Of Interest迅雷下载
			
本季Person of Interest Season 1 第一季(2011)看点:如今,<疑犯追踪>正在纽约热拍,在11月1日的片场,刚刚完成了一场爆炸的戏.另外,<探索者传说第一 ...
 - Toast的用法(可以设置显示时间,自定义布局的,线程中的Toast)
			
自定义的Toast类 布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLa ...
 - 《Linux就是这个范儿》
			
<Linux就是这个范儿> 基本信息 作者: 赵鑫磊 (加)Jie Zhang(张洁) 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115359360 上架时间:2 ...