美文网首页Web前端之路让前端飞@IT·互联网
腾讯课堂 IMWeb 七天前端求职提升营 Day 2

腾讯课堂 IMWeb 七天前端求职提升营 Day 2

作者: Nian糕 | 来源:发表于2017-05-26 14:05 被阅读352次
    Unsplash

    本次的系列博文主要是针对 腾讯课堂七天前端求职提升营 课程中,所推送的面试题目及编程练习的一次汇总,期间还包括三次直播课的分享,均由腾讯导师给大家讲解,该系列博文的发布已得到 IMWeb 前端学院助教的许可

    IMWeb 前端学院 授权转发

    0. 课程目录

    腾讯课堂 IMWeb 七天前端求职提升营 Day 1
    腾讯课堂 IMWeb 七天前端求职提升营 Day 2
    腾讯课堂 IMWeb 七天前端求职提升营 Day 3
    腾讯课堂 IMWeb 七天前端求职提升营 Day 4
    腾讯课堂 IMWeb 七天前端求职提升营 Day 5
    腾讯课堂 IMWeb 七天前端求职提升营 Day 6
    腾讯课堂 IMWeb 七天前端求职提升营 Day 7

    1. 经典前端面试题

    问题 1: XHTML 和 HTML 有什么区别?

    答案: HTML 是一种基本的 WEB 网页设计语言,XHTML 是一个基于 XML 的置标语言
    最主要的不同:
    ① XHTML 元素必须被正确地嵌套
    ② XHTML 元素必须被关闭
    ③ 标签名必须用小写字母
    ④ XHTML 文档必须拥有根元素

    **问题 2: Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? **

    答案: 用于声明文档使用那种规范 (HTML/XHTML),一般为严格模式和过度模式,基于框架的 HTML 文档
    加入 XML 声明可触发,解析方式更改为 IE 5.5 拥有 IE 5.5 的 BUG

    问题 3: 写出几种 IE 6 BUG 的解决方法

    答案: ① 双边距 BUG,float 引起的,使用 display
    ② 3 像素问题,使用 float 引起的,使用 dislpay:inline -3px
    ③ 超链接 hover,点击后失效,使用正确的书写顺序
    link,visited,hover,active
    z-index 问题,给父级添加 position:relative
    ⑤ png 图片透明失效,使用 JS 代码进行修改
    min-height 最小高度,使用 !important 解决
    select 在 IE 6 下遮盖,使用 iframe 嵌套
    ⑧ 为什么没有办法定义 1 px 左右的宽度容器?(IE 6 默认的行高造成的,使用 overflow:hidden | zoom:0.08 | line-height:1px

    问题 4: IE 和 DOM 事件流的区别

    答案: ① 执行顺序不一样
    ② 参数不一样
    ③ 事件加不加 on
    ④ this 指向问题

    2. 前端常见题目个人思考题

    1、谈一谈你做过的一个项目,业务逻辑模块如何划分的?

    2、什么是 xss 漏洞,怎么防御?

    3. 在线编程任务

    —— 所有 AC 代码均在 JavaScript(V8 6.0.0)下提交通过 ——

    题目 7:大家都知道斐波那契数列,现在要求输入一个整数 n,请你输出斐波那契数列的第 n 项。n <= 39。

    思路:使用动态规划,自底向上

    function Fibonacci(n){
        var val = [];
        if(n<=0){
            return 0;
        }else if(0<n && n<=2){
            return 1;
        }else{
            val[1]=1; //n为2
            val[2]=2; //n为3
            for(var i=3; i<n; ++i){
                val[i] = val[i-1] + val[i-2];
            }
            return val[n-1];
        }
    }
    

    题目 8:一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法?

    思路:给出 n,第一次有两种情况跳 2 那么剩下 f(n-2) 种跳法,跳 1 剩下 f(n-1) 种跳法,总的是 f(n-1) + f(n-2) 可以往下一直递归,直接用递归应该会超过内存限制

    function jumpFloor(number)
    {
    
        if(number == 1){
           return 1;
        }
        if(number == 2){
           return 2;
        }
        n1 = 1;
        n2 = 2;
        while(number > 2){
           tmp = n2;
           n2 = n1+n2;
           n1 = tmp;
           number--;
        }
        return n2;
    }
    

    题目 9:一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级……它也可以跳上 n 级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法?

    思路:在草纸上列了一下几个具体的 n 值找到了递归的思路,发现
    f(1) = 1, f(2) = 2, f(3) = 1 + f(2) + f(1) ...

    f(3) 可以这样考虑:分跳 3 (本身值直接 +1 ),跳 1,跳 2 三种情况,跳 1 之后还剩 f(3-1) 种跳法,跳 2 之后,还有 f(3-2) 种跳法,所以 f(3)
    可以等于这三种分法相加。类推 f(n) = 1 + f(1) + f(2) + ... + f(n-1)

    代码实现的时候直接递归就行了,放一个暂存累加变量 tmp

    function jumpFloorII(number)
    {
        if(number == 1){
            return 1;
        }
        if(number == 2){
            return 2;
        }
        tmp = 0;
        while(number > 1){
            tmp+=jumpFloorII(number-1);
            number--;
        }
        return tmp+1; 
    }
    

    题目 10:我们可以用 2 * 1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2 * 1 的小矩形无重叠地覆盖一个 2 * n 的大矩形,总共有多少种方法?

    思路:还是斐波那契数列,f(n) = f(n-1) + f(n-2), f(1) = 1; f(2) = 2;

    function rectCover(number)
    {
        if(number == 0)
            return 0;
        if(number == 1)
            return 1;
        if(number == 2)
            return 2;
        first = 1;
        secend = 2;
        while(number>2){
            thrid = first + secend;
            first = secend;
            secend = thrid;
            number --;
        }
        return thrid;
    }
    

    题目 11:输入一个整数,输出该数二进制表示中 1 的个数。其中负数用补码表示。

    思路:如果是负数,对其进行位操作

    function NumberOf1(n) 
      { 
          if(n<0){
              n = n>>>0;
          }
          var res = n.toString(2); 
          var count = 0; 
          flag = 1; 
          for(var i = 0; i <res.length; i++){ 
              if(res[i] == 1){ 
                  count++  
              } 
          } 
          return count; 
      }
    

    题目 12:给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent。求 base 的 exponent 次方。

    思路:JavaScript用这样就通过啦

    function Power(base, exponent)
    {
        return base**exponent;
    }
    

    —— 题目来源 剑指 offer ——

    End of File

    行文过程中出现错误或不妥之处在所难免,希望大家能够给予指正,以免误导更多人,最后,如果你觉得我的文章写的还不错,希望能够点一下喜欢关注,为了我能早日成为简书优秀作者献上一发助攻吧,谢谢!^ ^

    相关文章

      网友评论

        本文标题:腾讯课堂 IMWeb 七天前端求职提升营 Day 2

        本文链接:https://www.haomeiwen.com/subject/tkqxfxtx.html