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

腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第1张图片
Unsplash

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

腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第2张图片
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: CSS 引入的方式有哪些?

答案: CSS 与 HTML 文档结合的 4 种方法:
① 使用 link 元素链接到外部的样式文件
② 在 head 元素中使用 style 元素来指定
③ 使用 CSS @import 标记来导入样式表单
④ 在 内部的元素中使用 style 属性来定义样式

问题 2: 行内元素有哪些?块级元素有哪些?CSS 的盒模型?

答案: 块级元素:div,p,h1,h2,h3,h4,form,ul,ol
行内元素: a,b,br,i,span,input,select
CSS 盒模型: content,padding,border ,margin

问题 3: link 和 @import 的区别是?

答案: 本质上,这两种方式都是为了加载 CSS 文件,但还是存在着细微的差别。
① 老祖宗的差别。link 属于 XHTML 标签,而 @import 完全是 CSS 提供的一种方式。link 标签除了可以加载 CSS 外,还可以做很多其它的事情,比如定义 RSS,定义 REL 连接属性等,@import 就只能加载 CSS 了
② 加载顺序的差别。当一个页面被加载的时候(就是被浏览者浏览的时候),link 引用的 CSS 会同时被加载,而 @import 引用的 CSS
会等到页面全部被下载完再被加载
③ 兼容性的差别。由于 @import 是 CSS2.1 提出的,所以老的浏览器不支持,@import 只有在 IE 5 以上的才能识别,而 link 标签无此问题
④ 使用 DOM 控制样式时的差别。当使用 JavaScript 控制 DOM 去改变样式的时候,只能使用 link 标签,因为 @import 不是 DOM 可以控制的

问题 4:"==" 和 "===" 的不同

答案: 前者会自动转换类型,后者不会

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

1、你之前自认为做得最好的,最具有挑战的一项需求是什么,为什么?现在回头去看,还有哪些地方可以值得优化?

2、说一下 H5 中的离线存储有哪些?

3. 在线编程任务

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

题目 1:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

思路:在大多数面试题目中,固定思路就是先想这道题符合哪种数据结构,大多数是栈,队列,链表什么的。就是先确定一个固定框架,至于细节则是根据题目慢慢分析了。粗看这道题,题目并不难,当然作为笔试题,解法越多,耗时越短为好。

一种解法为:观察这个二维数组的结构,从左到右递增,从上到下递增,理所应当,第一列最下端是一个比较合适的起始位置,这个还是比较容易理解的,如果 target 比之小,则向上移,如果 target 比之大,则向右移。

function Find(target, array)
{
    var rowCount = array.length-1;
  
    for(var i=rowCount,j=0; i>=0 && j array[i][j]){
            j++;
            continue;
        }else if(target < array[i][j]){
            i--;
            continue;
        }
    }
    return false;
}

题目 2:请实现一个函数,将一个字符串中的空格替换成 “%20”。例如,当字符串为 We Are Happy.则经过替换之后的字符串为 We%20Are%20Happy。

思路:调用 replace 函数

function replaceSpace(str)
{
    var newstr;
    newstr=str.replace(/\s+?/g,"%20")
    return newstr;
}

题目 3:输入一个链表,从尾到头打印链表每个节点的值。

思路:定义一个数组,将链表的节点依次 push 进数组,将数组倒序输出

function printListFromTailToHead(head)  
{
    if(!head){return 0;}else{  
         var arr=new Array();  
         for(var q=head;q;q=q.next){  
             arr.push(q.val);  
         }  
     arr.reverse();  
     return arr;  
    }  
}

题目 4:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列 {1,2,4,7,3,5,6,8} 和中序遍历序列 {4,7,2,1,5,3,8,6},则重建二叉树并返回。

思路:前序遍历的第一个节点就是根节点,中序遍历根节点的左边在根节点的左子树,右边在根节点的右子树。

function reConstructBinaryTree(pre, vin)
{
        if(pre.length==0||vin.length==0){
                return null;
        };
        //前序第一个为根节点 也是中序左右子树的分割点
        var index=vin.indexOf(pre[0]);
        var left=vin.slice(0,index);//中序左子树
        var right=vin.slice(index+1);//中序右子树
        return {
            val:pre[0],
            //递归左右子树的前序,中序 
            left:reConstructBinaryTree(pre.slice(1,index+1),left),
            right:reConstructBinaryTree(pre.slice(index+1),right)
        };
}

题目 5:用两个栈来实现一个队列,完成队列的 Push 和 Pop 操作。 队列中的元素为 int 类型。

思路:JS用数组实现比较简单,因为JS的数组是变长的,可以一个负责在尾部入栈,一个在头部出栈

var arr=new Array();

function push(node)
{
    var i=arr.length;
    arr[i]=node;
}

function pop()
{   
    var i=arr.length;
    if(i<=0){return ;}
    var k=arr[0];
    for(i=0;i

题目 6:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组 {3,4,5,1,2} 为 {1,2,3,4,5} 的一个旋转,该数组的最小值为 1。

NOTE:给出的所有元素都大于 0,若数组大小为 0,请返回 0。

思路:采用二分法解答这个问题,需要考虑 3 种情况。
1、数组为空
2、部分旋转,例如由(1,2,3,4,5)旋转为(3,4,5,1,2),此时只需要遍历数组,找到当前数比前面的数小的数即可。
3、完全旋转,例如由(1,2,3,4,5)旋转为(1,2,3,4,5),此时第一个数最小。

function minNumberInRotateArray(rotateArray)
{
  if(rotateArray.length===0){
        return 0;
    }
    if(rotateArray.length===1){
        return rotateArray[0];
    }    
    var index=parseInt(Math.floor((rotateArray.length)/2));
    var left=rotateArray.slice(0,index);
    var right=rotateArray.slice(index);
    var recuArray;//rotateArray[index-]>=rotateArray[0]?right:left;
    if(rotateArray[index-1]

—— 题目来源 剑指 offer ——

4. 鹅厂求职直播课:A little chat-简历应该怎么写_花叔导师

腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第3张图片
关于面试的理解
腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第4张图片
我们希望你是这样的人
腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第5张图片
梦想、实力、潜力
腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第6张图片
能力要求
腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第7张图片
能力提升
腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第8张图片
UIE工程师分类
腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第9张图片
视觉、后端、全栈能力所占的比例
腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第10张图片
搞清楚自己的定位
腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第11张图片
成群结队的学习
腾讯课堂 IMWeb 七天前端求职提升营 Day 1_第12张图片
简历

关于直播课的完整 PPT,大家可到花叔的个人公众号去查看 一次闲聊-腾讯课堂课件

End of File

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

你可能感兴趣的:(腾讯课堂 IMWeb 七天前端求职提升营 Day 1)