南京(荣耀软通外包)前端机考题

456 阅读3分钟

考题类型:

  1. 单选题 (13道或者14)
  2. 不定项选择题 (3道或者4道)
  3. 问答题三道
  4. 编程题一道 (编程题中不带方法名提示,只能手敲,可以有一次外切屏的机会)

编程题

编程题一般不会考算法,只是一些简单的js功能的实现

重点:

数组常用方法的作用要记得,比如: split ,splice join sort

对象的一些常见api比如检查对象是否存在某些属性,数组生成对象的去重操作等

问答题

//
   // map与forEach的区别?
   // 1、forEach方法,是最基本的方法,就是遍历与循环,默认有3个传参:分别是遍历的数组内容item、数组索引index、和当前遍历数组Array
   // 2、map方法,基本用法与forEach一致,但是不同的,它会返回一个新的数组,所以在callback需要有return值,如果没有,会返回undefined


   // 说一说CSS尺寸设置的单位?
   // 得分点:px、rem、em、vw、vh。

// 回答:
//     px:pixel像素的缩写,绝对长度单位,它的大小取决于屏幕的分辨率,是开发网页中常常使用的单位。
//
//     em:相对长度单位,在font-size中使用是相对于父元素的字体大小,在其他属性中使用是相对于自身的字体大小,如width;如当前元素的字体尺寸未设置,由于字体大小可继承的原因,可逐级向上查找,最终找不到则相对于浏览器默认字体大小。
//
//     rem:相对长度单位,相对于根元素的字体大小,根元素字体大小未设置,使用浏览器默认字体大小。
//
//     vw:相对长度单位,相对于视窗宽度的1%。
//
//     vh:相对长度单位,相对于视窗高度的1%。


   // 说一说样式优先级的规则是什么?

   // 得分点:!important、行内样式、嵌入样式、外链样式、id选择器、类选择器、标签选择器、复合选择器、通配符选择器、继承样式。

// 回答:CSS样式的优先级可以分为五大类。

   // 第一类!important,无论以何种方式引入,何种选择器,它的优先级都是最高的。
   //
   // 第二类引入方式,行内样式的优先级要高于嵌入和外链,若嵌入和外链使用的选择器相同就看它们在页面中插入的顺序,后面插入的覆盖前面的。
   //
   // 第三类选择器,选择器的优先级为id选择器 >(类选择器 | 伪类选择器 | 属性选择器)>(后代选择器 | 伪元素选择器)>(子选择器 | 相邻选择器)> 通配符选择器。
   //
   // 第四类继承样式,是所有样式中优先级比较低的。
   //
   // 第五类浏览器默认样式,优先级最低。

    // 说一说样vue2的响应式原理与缺陷?
    // 1. vue2是通过Object.defineProperty进行数据劫持,并且通过订阅发布模式中的get和set进行响应,一旦有人读取数据会触发get函数,修改数据的时候则会触发set函数。
    // 2. vue2响应式原理的缺陷:无法检测到引用数据类型,比如数组,对象中内部长度的变化,也无法通过角标的形式去追踪。


    // 说一说样三栏布局的视线方式?

    // 1.float+margin
    //
    // 思路:中间的div留出左右div的位置,左右div各自向左右浮动。

    // 2.利用BFC的定义
    //
    // 让中间的div通过overflow:hidden触发BFC,左右div左右浮动,这个也比较简单。

//     3.flex布局
//
//     flex的三栏布局有很多种玩法,这里只写一种。我们先写最基础的代码:
//
// CSS:
//
//     header{
//         height: 80px;
//         width: 100%;
//     }
//     body{
//         min-width: 900px;
//     }
//     *{
//         margin: 0;
//         padding: 0;
//     }
//     .container{
//         display: flex;
//     }
//     .middle{
//         height: 300px;
//         background: red;
//     }
//     .left{
//         height: 300px;
//         background-color: blue;
//     }
//     .right{
//         height: 300px;
//         background: yellow;
//     }
//     HTML:
//
//         <div class="container">
//             <div class='middle'>中间</div>
//             <div class="left">左边</div>
//             <div class="right">右边</div>
//         </div>