zoukankan      html  css  js  c++  java
  • 5个经典的JavaScript面试题

    在IT界中公司对JavaScript开发者的要求还是比较高的,但是如果JavaScript开发者的技能和经验都达到了一定的级别,那他们还是很容易跳到优秀的公司的,当然薪水就更不是问题了。但是在面试之前,面试准备也应该足够的充分,毕竟不是每个优秀的开发者都能在短时间内表现自己。在这篇文章中,我将会列出5个常见的前端开发面试题。看到这里你证明你一定是个程序员或是HR了,不防把文章看完,了解一下自己还有什么不足之处,有什么问题希望大家可以在留言中交流。

    问题1: 作用域

    看一下下面的代码:

    
    
    1. (function() {
    2.    var a = b = 5;
    3. })();
    4.  
    5. console.log(b);
     
    结果会输出什么? 

    答案:

    5

           这个问题考查的要点是两个不同的作用域,'a'被var声明成了一个局部变量,但是'b'实际上没有被定义,所以它是一个全局变量。

           这个问题还牵扯到另个一个比较重要的问题,就是strict mode,如果你选择了strict mode,上面的代码就会报Uncaught ReferenceError,因为b没有被定义,它可以帮你检查出代码的一些问题:

    
    
    1. (function() {
    2.    'use strict';
    3.    var a = window.b = 5;
    4. })();
    5.  
    6. console.log(b);
     
     

    问题2: 创建“native”方法

    写一个重复打印字符串对象的方法,输入一个整数,这个整数代表重复打印的字数,比如:

    
    
    1. console.log('hello'.repeatify(3));
     
     这样会打印出hellohellohello。


    答案:

    其中一种实现方法是这样: 

    1. String.prototype.repeatify = String.prototype.repeatify || function(times) {
    2.    var str = '';
    3.  
    4.    for (var i = 0; i < times; i++) {
    5.       str += this;
    6.    }
    7.  
    8.    return str;
    9. };
     
    这个问题考查的是开发者对JavaScript继承和prototype属性的了解程度。


     

    问题3: Hoisting

    下面这段代码的输出结果是什么?

    
    
    1. function test() {
    2.    console.log(a);
    3.    console.log(foo());
    4.     
    5.    var a = 1;
    6.    function foo() {
    7.       return 2;
    8.    }
    9. }
     
    1. test();
     
    答案

    undefined和2。

    上面的代码和下面这段是等效的:

    1. function test() {
    2.    var a;
    3.    function foo() {
    4.       return 2;
    5.    }
    6.  
    7.    console.log(a);
    8.    console.log(foo());
    9.     
    10.    a = 1;
    11. }
    12.  
    13. test();
     
     

    问题4: 在JavaScript中如何执行

    通过下面的代码给出结果,解释一下你的答案:

    
    
    1. var fullname = 'John Doe';
    2. var obj = {
    3.    fullname: 'Colin Ihrig',
    4.    prop: {
    5.       fullname: 'Aurelio De Rosa',
    6.       getFullname: function() {
    7.          return this.fullname;
    8.       }
    9.    }
    10. };
    11.  
    12. console.log(obj.prop.getFullname());
    13.  
    14. var test = obj.prop.getFullname;
    15.  
    16. 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()也会产生同样的结果:

    1. console.log(test.call(obj.prop));
     
     
    大家好,我是达内科技-昆明分公司的项目经理-蒙蒙,qq号:2823060927,欢迎大家加我好友一起交流有关于JAVA、PHP、UID、网络营销的知识。
  • 相关阅读:
    Proj THUDBFuzz Paper Reading: PMFuzz: Test Case Generation for Persistent Memory Programs
    入围 WF 后训练记
    算法竞赛历程
    2021 多校 杭电 第十场
    2021 多校 杭电 第九场
    2021 多校 牛客 第十场
    2021 多校 牛客 第九场
    2021 多校 杭电 第八场
    2021 多校 杭电 第六场
    2021 多校 杭电 第七场
  • 原文地址:https://www.cnblogs.com/geeek/p/4064682.html
Copyright © 2011-2022 走看看